二、数据库与数据表--3、数据表的创建
1、创建数据表
(1)建表语法
(2)列的特征包含的内容
是否为空(NULL):再输入数据时,数据库的列允许为空时,可以不输入数据,否则必须输入;列是否为空要根据数据库设计的具体要求决定,对于关键列必须禁止为空。
是否标识列(自动编号)
是否有默认值:如果数据表某列在用户不输入数据的时候,希望提供一个默认的内容,则需要设置默认值
是否为主键:主键是实体的唯一标识,保证实体不被重复,一个表必须有主键才有意义。否则更新和删除实体都可能出现异常。
例:
PS:
GO是批处理的标志,表示SQL Server将这些SQL语句编译为一个执行单元,提高执行效率。
一般是将一些逻辑相关的业务操作语句放在同一批中,这完全由业务需求和代码编写者决定。
GO是SQL Server的批处理命令,只有代码编辑器才能识别并处理,编辑其他应用程序就不能使用该命令。由于每个批处理之间时独立的,因此,在一个批处理出现错误时,并不会影响其他批处理中SQL代码的运行
执行结果:
2、标识列的特殊说明
(1)标识列使用的意义
有时候,一个数据表存储的实体,很难找到不重复的列作为主键列,比如学员成绩表中存储着学生的多次考试成绩,则学号也很容易重复,其他列更无法做到不重复。
SQLServer提供了一个“标识列”,也叫“自动增长列”或“自动编号”,它本身没什么具体意义,但也可以让它表示特定的意义。比如学生成绩表中的自动标识列Id,不表示实体属性;但学员信息表中的StudentId也是标识列,但它表示学生的实体属性(学号)。
(2)标识列的使用要求
该列必须是整数类型或没有小数的精确类型
标识种子:标识列的起始大小
标识增量:标识列每次递增的(自动增加)值
(3)注意问题
有标识列的数据表被删除一行后,该行会空缺,不会填补
标识列由系统维护,用户既不能自己输入数据,也不能修改数值
标识列可以同时定义为主键,也不可不定义为主键,根据需要决定