这一部分紧张先容创建表时所填写的每一部分信息 。
创建表创建表完全语法:
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便是添加的注释信息,添加的注释不仅可以在字段上进行备注 ,也可以在表名上进行备注 。