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)只能是数值型

原文地址:https://www.cnblogs.com/zjxiang/p/9113054.html