本部分内容是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就是添加的注释信息,添加的注释不仅可以在字段上进行备注 ,也可以在表名上进行备注 。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。