本部分内容是mysql系列的第四部分 ,若想查看前面的系列的内容,请见:SQL语言分类有哪几种?分别都对应着哪些关键字?都整理在这里了
这一部分主要介绍创建表时所填写的每一部分信息 。
创建表创建表完整语法:
create table 表名(
字段名称1 数据类型[(长度) 约束条件 注释],
字段名称2 数据类型[(长度) 约束条件 注释]
) [编码 注释]
# 1. 必选项 :
表名 字段名称 数据类型
# 2. 可选项 :
长度 约束条件 注释 编码
# 3.示例:
create table students(
id int(20) primary key auto_increment COMMENT '学生编号',
name varchar(20) not null comment '学生姓名',
grade varchar(5) not null comment '学生年级',
sex enum('男','女') default '男' comment '性别'
) charset='utf-8' comment '学生表'
在上面创建表时,给每个字段指定了具体的数据类型 ,但实际数据类型要包含的多,我们可以将其进行简单的分类,比如 :
- 字符文本类型
- 数字类型
- 日期类型
字符文本类型
类型 |
说明 |
大小 |
char |
定长字符串 |
0-255 bytes |
varchar |
变长字符串 |
0-65535 bytes |
tinytext |
短文本字符串 |
0-255 bytes |
text |
文本字符串 |
0-65535 bytes |
longtext |
长文本字符串 |
0-4 294967295 bytes |
数字类型
类型 |
说明 |
范围(有符号) |
范围(无符号) |
TINYINT |
微整数 |
(-128,127) |
(0,255) |
SMALLINT |
小整数 |
(-32 768,32 767) |
(0,65 535) |
MEDIUMINT |
中整数 |
(-8 388 608,8 388 607) |
(0,16 777 215) |
INT或INTEGER |
整数 |
(-2 147 483 648,2 147 483 647) |
(0,4 294 967 295) |
BIGINT |
大整数 |
(-9,223,372,036,854,775,808,9 223 372 036 854 775 807) |
(0,18 446 744 073 709 551 615) |
FLOAT |
单精度 浮点数值 |
(-3.402 823 466 E 38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E 38) |
0,(1.175 494 351 E-38,3.402 823 466 E 38) |
DOUBLE |
双精度 浮点数值 |
(-1.797 693 134 862 315 7 E 308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308) |
0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308) |
DECIMAL |
小数值 |
依赖于M和D的值 |
依赖于M和D的值 |
日期类型
类型 |
说明 |
范围 |
格式 |
DATE |
日期 |
1000-01-01/9999-12-31 |
YYYY-MM-DD |
TIME |
时间 |
'-838:59:59'/'838:59:59' |
HH:MM:SS |
YEAR |
年 |
1901/2155 |
YYYY |
DATETIME |
日期和时间 |
1000-01-01 00:00:00/9999-12-31 23:59:59 |
YYYY-MM-DD HH:MM:SS |
选项类型
类型 |
说明 |
举例 |
enum |
枚举,多个值中选择一个 |
enum('男','女') |
set |
集合 - 多个值中选择一个或多个值 |
SET('值1','值2','值3'...,'值n') |
格式:
create table 表名(
字段名 数据类型 约束,
字段名 数据类型 约束
...
)
其中约束主要包括:
这里需要区分几个约束,
- 主键约束 : 唯一且不能为空
- 唯一约束 : 值唯一
- 为空约束 : 值不能为空
其中主键约束 = 唯一约束 为空约束
注释有时候我们看到表的后面都有注释 ,通过注释我们能快速地找到对应表 ,比如下面表的注释 。
当然,此注释有两种设置方式,一种就是通过客户端工具创建/修改表时添加注释信息 ,具体操作可参考:mysql系列之一文详解Navicat工具的使用(二)
初次之外,也可以SQL语句添加注释 。具体如下 :
create table students(
id int(20) primary key auto_increment comment '学生编号',
name varchar(20) not null comment '学生姓名',
grade varchar(5) not null comment '学生年级',
sex enum('男','女') default '男' comment '性别'
) comment '学生表'
这里使用的comment就是添加的注释信息,添加的注释不仅可以在字段上进行备注 ,也可以在表名上进行备注 。
,