MySQL——DDL语言

136 阅读2分钟

库的管理

创建库 

create database 【if not exists】 库名【 character set 字符集名】; 

修改库 

alter database 库名 character set 字符集名; 

删除库 

drop database 【if exists】 库名;

表的管理

创建表

 create table 【if not exists】 表名( 

    字段名 字段类型 【约束】, 

    字段名 字段类型 【约束】,

    。。。 字段名 字段类型 【约束】 

 )

修改表  

  • 添加列 

alter table 表名 add column 列名 类型 【first|after 字段名】; 

  • 修改列的类型或约束 

alter table 表名 modify column 列名 新类型 【新约束】; 

  • 修改列名 

alter table 表名 change column 旧列名 新列名 类型; 

  • 删除列 

alter table 表名 drop column 列名; 

  • 修改表名 alter table 表名 rename 【to】 新表名; 

删除表 

drop table【if exists】 表名;  

复制表 

  • 复制表的结构 

create table 表名 like 旧表; 

  • 复制表的结构+数据 

create table 表名 select 查询列表 from 旧表【where 筛选】;

数据类型

数值型 

  • 整型 

tinyint、smallint、mediumint、int/integer、bigint 

1            2              3                    4                  8 

特点: 

①都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号 

②如果超出了范围,会报out or range异常,插入临界值 

③长度可以不指定,默认会有一个长度 

    长度代表显示的最大宽度,如果不够则左边用0填充,但需要搭配zerofill,并且默认变为无符号整型 

  • 浮点型

定点数:decimal(M,D) 

浮点数: 

    float(M,D) 4 

    double(M,D) 8 

特点: 

①M代表整数部位+小数部位的个数,D代表小数部位 

②如果超出范围,则报out or range异常,并且插入临界值 

③M和D都可以省略,但对于定点数,M默认为10,D默认为0 

④如果精度要求较高,则优先考虑使用定点数  

字符型 

char、varchar、binary、varbinary、enum、set、text、blob  

char:固定长度的字符,写法为char(M),最大长度不能超过M,其中M可以省略,默认为1 

varchar:可变长度的字符,写法为varchar(M),最大长度不能超过M,其中M不可以省略 

日期型 

year年 

date日期 

time时间 

datetime 日期+时间              8 

timestamp 日期+时间           4        比较容易受时区、语法模式、版本的影响,更能反映当前                                                          时区的真实时间

注:本文借鉴了尚硅谷公开课的内容,若有错误或不妥之处还望提醒。