用SQL 语句定义一个基本表

211 阅读2分钟

我正在参加「掘金·启航计划」

定义表

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)
)

运行结果

Snipaste_2022-10-12_22-27-32.png

Snipaste_2022-10-12_22-28-14.png

这样学生表就建好了,后续用insert语句来插入信息就可以了。