• MySQL基础(2):DDL语言


    一、DDL语言

    1、库操作

    1)删除:drop database if exists 旧库名;
    (2)创建:create databaseif not exists】新库名;
    (3)修改:alter database 库名 character set gbk;  #修改字符集

    2、表操作

    1)删除:drop table if exists 旧表名;
    (2)创建:
        create tableif not exists】新表名(
        列名  列类型【(长度)  约束】,
        ...
        列名  列类型【(长度)  约束】
      )
    (3)修改:
         #修改列名:alter table 表 change column 旧列名 新列名 类型;
         #修改列的类型或约束:alter table 表 modify column 列名 类型;
         #添加新列:alter tableadd column 列名 类型;
         #删除列:alter tabledrop column 列名;
         #修改表名:alter table 旧表名 rename to 新表名;
    (4)复制,可以跨库
         #仅复制表结构:create table 到表 like 从表;
         #复制表结构+数据:create table 到表 select * from 从表 where 条件;

    二、数据类型

    1、数值型

    (1)整型:  

      tinyint、smallint、mediumint、int/integer、bigint

        1字节      2字节       3字节            4字节      8字节    1字节=8位  

      默认有符号,添加unsigned可设置为无符号

      平时定义的INT(7)中7规定的不是范围,和zerofill搭配用于补0,加上zerofill后默认不支持负数,范围是由类型决定

       

    (2)小数:

      浮点型:float (M, D)、double (M, D)

                  4字节       8字节

      定点型:decimal (M, D)

              M+2字节

      M:总位数 D:小数点后的位数

      decimal默认精度(10,0),定点型比浮点型更精确

    2、字符型

      短文本:char、varchar

      固定长度的意思是假如声明char(10),但插入的为2个字符,所存长度还是10。而声明varchar(10),插入的大小是2个字符,所存大小就是2个字符。1个字母和1个汉字都代表一个字符。

       

      较长文本:text、blob(较大二进制)

      *其他:binary、varbinary保存较短二进制,enum保存枚举(不区分大小写,一次只能选一个成员),set保存集合(与枚举不同的是一次可以选择多个成员)

    3、日期型

      datetime  日期+时间 8字节 1000-9999 不受时区影响,只能反映插入时的当地时区

      timestamp  日期+时间 4字节 1970-2038 受时区、SQLMode、mysql版本影响,更能反映当前时区的真实时间

      例子:timestamp更能准确反映当前插入时间,但支持的范围小

       

      

      插入数据后如果修改时区

       

      timestamp会根据时区的改变而改变

       

    三、约束

    六大约束:not null、default、primary key、unique、foreign key、check(mysql不支持)

    1、列级约束:not null、default、primary key、unique

      直接加在字段后,一个列可同时添加多个约束,无顺序要求

        

    2、表级约束:primary key、unique、foreign key

       

    3、主键、唯一键对比:

       

      unique可以为null,但也只能有一个null

      外键:

      - 主表的关联列必须是一个key(一般是主键或唯一键)

      - 插入数据时,先插主表,再插从表。

      - 删除数据时,先删从表,再删主表。

      添加外键

      

      添加外键时级联删除

       

      添加外键时级联置空

       

      主键、外键、唯一键都会自动生成索引,查看索引:show index from 表

    4、自增长列

      AUTO_INCREMENT

      (1)不一定和主键搭配,但要求是一个key

      (2)一个表最多只有一个自增长列

      (3)只能是数值型

  • 相关阅读:
    全文本搜索神器
    唯一索引和普通索引怎么选择
    程序员应不应该搞全栈
    c 的陷阱
    抽象能力
    电影电视剧推荐
    系统故障诊断
    一次web网站被入侵的处理记录
    Spark RDD 操作
    (转)Mysql哪些字段适合建立索引
  • 原文地址:https://www.cnblogs.com/zjxiang/p/9113054.html
Copyright © 2020-2023  润新知