创建表的完整语法
# 语法
create table 表名 (
字段名1 类型(宽度) 约束条件,
字段名2 类型(宽度) 约束条件,
字段名3 类型(宽度) 约束条件
)
# 注意
1. 在同一张表中字段名不能重复
2. 宽度和字段约束条件可写可不写,但字段类型是必须的,约束条件可以写多个
3. 最后一行不能有逗号
# 宽度
一般情况下指的是对存储数据的限制
create table t1(name char); # 默认宽度为1
insert into t1 value("aoteman"); # 报错
insert into t1 value(Null); # 关键词 null
针对不同版本会出现不同的结果
5.6 版本默认没有开启严格模式,规定只能存一个字符串你给了多个字符串,不会报错,而是自动截取并存入。
5.7 及以上版本默认开启严格模式,超过规定的字符串长度,就会报错
# 约束条件 Null not null 该字段不能为空
create table t1(
id int not null,
name char(8) not null
);
# 宽度和约束条件
宽度是用来限制数据的存储
约束条件是在宽度的基础上增加的额外的约束
整型字段
分类
- tinyint
- samllint
- meduimint
- bigint
作用
存储年龄、等级、id、号码等
是否有符号
默认情况下是带符号的(即有政府)
超出会如何
非严格模式下超出限制只存储最大可接受值,严格模式下报错
create table t1(id tinyint);
insert into t9 values(-129),(256); # 严格模式下报错
# 约束条件 unsigned 无正负符号
create table t1(id tinyint unsigned);
# 整型默认情况下都是带正负号的
# 针对整型括号内 宽度 的作用
create table t1(id int(8));
insert into t1 values(123456789); # 不报