为了增强表的安全性(在数据库中创建的用户表必须安全),需要对表中的每列数进行约束。
约束方式有两种:
1、 建表时设置约束
2、 建表后追加约束
当应用程序访问数据库时,还要注意的是,如果是数据库设计方面的操作,一定要在数据库中完成,而不能借用其他形式(如在应用程序中操作);
单表的五类约束:
多表的一类约束:
第一类约束:可空、非空约束
null,默认可空,用来约束列的,标明这列数据可有可无;
not null,非空,用来约束列的,标明这列数据必须有;
第二类单表约束:
主键约束:primary key
它的作用是用来标记行的唯一性,即某行记录与其他所有行记录不同。
要求对于任何一个表,都要设计主键约束,而且一个表中只有一个主键约束。
对于表中的多列,如何选择主键约束到哪一列上?
按照生活中的实际逻辑关系进行选择。
表中作为主键的列,可以是单列,也可以是多列(称为复合主键或联合主键),在sqlserver中不建议使用复合主键。
约束的要素:
1、 约束名称,可以由用户定义,如果用户不定义,则由服务器自动命名;
2、 约束类型
与not null约束存在时没有任何变化。
表中符合主键约束列的条件:
1、 唯一
2、 非空
主键列的几种形式:
1、 字符型主键列数据,其内容需要用户输入,无论是否包括中文;
a) 如果不包括中文,则使用单字节字符编码
b) 如果数据中有中文存在,则一定要使用双字节编码
c) 如果是变长的数据,也以按照以上两点执行。
2、 整数自增型数据作为主键
a) sqlserver中的自增属性,此技术在mysql(increment)和oracle(sequence)也都存在;用法为提供一个种子和一个增量,每添加一行记录,此列就会增大或减小。
b) 在数据值数据中,只有整型数据可以作主键,实数不行。
c) 整数作主键,只是唯一非空即可,不一定非自增。
主键约束的另一种操作形式,建表后向表中追加。
如果表中已经存在了主键约束,就不能继续向表中追加了;当追加约束时,如果表中已经有了记录,如果记录中有不符合主键约束的条件,仍然追加不上。
向表中追加约束的过程,相当于修改了表的结构,使用关键字alter