sql列级约束(数据库列级约束表级约束)
sql数据库中,表约束,和列约束是什么意思,简单说说
约束,主要为了维护数据库的完整性而定义的一些规则,列约束作为列定义的一部分只作用于此列本身。表约束作为表定义的一部分,可以作用于多个列。在这里举几个例子。
1.主键约束
主关键字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。每个表中只能有一列被指定为主关键字,且IMAGE 和TEXT 类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL 属性。
多列组成的主键叫联合主键,联合主键就是表级约束,单列主键就是列级约束。
2.唯一性约束
某一列的值,在这个表中,只能出现一个,比如身份证号码等
3.外键约束
外关键字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联
等等,不一一列举了。
sql 怎么添加列级约束
不对
alter table 成绩表
alter column C3 原数据库类型 not null
在SQL中,列级完整性约束和表级完整性约束分别分为几种情况?请列举。
建表的同时通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件.如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级.
例1 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成.其中学号不能为空,值是唯一的,并且姓名取值也唯一.
CREATE TABLE Student
(Sno CHAR(5)NOT NULL UNIQUE,/*列级完整性约束条件,Sno取值唯一,
Sname CHAR(20)UNIQUE,不许取空值*/
Ssex CHAR(1),
Sage INT,
Sdept CHAR(15));
常用完整性约束:
主码约束:PRIMARY KEY
唯一性约束:UNIQUE
非空值约束:NOT NULL
参照完整性约束