这一节介绍MySQL中的DDL(数据定义语言),内容主要包括数据定义语言之库的管理、表的管理、数据类型以及常见的约束(下节单独介绍)等内容。
创建(create)、修改(alter)、删除(drop)
语法
create database 【if not exists】库名【character set 字符集名】;
语法
alter database 库名 character set 字符集名;可以更改库的字符集:
ALTER DATEBASE books CHARACTER SET gbk;
语法
drop database 【if exists】 库名;
创建(create)、修改(alter)、删除(drop)
语法
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 | 1 |
smallint | 2 |
mediumint | 3 |
int/integer | 4 |
bigint | 8 |
特点
①都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号
②如果超出了范围,会报out or range 异常,插入临界值
③长度可以不指定,默认会有一个长度
长度代表显示的最大宽度,如果不够则左边用0填充,但需要搭配zerofill ,并且默认变为无符号整型
②浮点型
定点数 | decimal(M,D) |
---|---|
浮点数 | float(M,D) double(M,D) |
特点
①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 比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间
这一节主要介绍了MySQL中的数据定义语言,其中常见的约束这一部分内容较多,将在下一节单独展开介绍,欢迎小伙伴们关注并学习!