我正在参加「掘金·启航计划」
定义表
sql语句中create table语句来实现定义基本表,一般格式是这样的:
create table<表名>(
<列名> <数据类型> [列级完整性约束定义]
{,<列名> <数据类型> [列级完整性约束定义]……}
[,表级完整性约束定义])
- <表名>是所有定义的基本表的名字
- <列名>是表中所包含的属性列的名字,<数据类型>指明列的数据类型,一个表可以包含多个列。
- []方括号表示其内容是可选的,花括号{}与省略号(……)一起,|竖杠表示在多个短语中选择一个,竖杠也能用方括号中,表示可以选择由竖杠分隔的子句中的一个,但整个句子又是可选的。
定义约束
- not null:限制列取值非空
- default:指定列的默认值
- unique:限制列的取值不能重复
- check:限制列的取值范围
- primary key:定义主码
- foreign key:定义外码
定义主码约束
- 定义主码约束
如果是在列级完整性约束处定义主码,则语法格式:
<列名>数据类型[constraint 约束名]primary key[(<列名> [,……n])]
如果是在表级完整性约束处定义主码,则语法格式:
[constraint 约束名]primary key[(<列名> [,……n])]
- 定义外码约束
一般情况下外码都是单列的,它可以定义在列级完整性约束处,也可以定义在表级完整性约束处。语法格式:
[constraint 约束名][foreign key(<列名>)]references<外表名>(<外表列名>)
定义表
要求:创建一个学生表,
- 学号:要求普通编码定长字符串,长度7,是主码
- 姓名:要求普通编码定长字符串,长度10,非空
- 性别:要求普通编码定长字符串,长度2
- 年龄:微整型
- 所在系:要求普通编码定长字符串,长度20
脚本内容
create table student(
sno char(7) primary key,
sname char(10) not null,
ssex char(2),
sage tinyint,
sdept char(20)
)
运行结果
这样学生表就建好了,后续用insert语句来插入信息就可以了。