任务三 用户定义的完整性
知识点
1.什么是用户定义的完整性?
答:用户定义的完整性是根据用户实际的完整性要求来定义的,在执行数据插入、更新等操作时,DBMS会检查数据是否满足限定条件,避免不符合条件的操作,以确保数据存储的准确性。用户定义的完整性包括非空约束、自增约束和默认值约束等。用户定义的完整性属于域完整性约束,针对表中特定字段的值进行限制。
2.什么是非空约束?非空约束有什么特点?
答:非空约束(NOT NULL)属于域完整性约束,要求字段(列)的值不能为空,但可以重复。设置了非空约束的字段在插入数据时必须提供值,如果取空值则会出现错误。NULL值意味着"没有值"或"未知值",不同于零、空白或长度为零的字符串。
3.如何在创建表时添加非空约束?
答:在CREATE TABLE语句中,在字段定义后添加NOT NULL。语法格式为:
CREATE TABLE 表名(
列名 数据类型 NOT NULL
)
例如:CREATE TABLE student5(stuname varchar(20) NOT NULL);
此时student5数据表内的姓名字段不能取空值。
4.如何为已创建的表添加和取消非空约束?
答:添加非空约束(使用ALTER TABLE CHANGE):
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 NOT NULL
例如:ALTER TABLE student CHANGE Stuname Stuname varchar(20) NOT NULL;
取消非空约束(去掉NOT NULL即可):
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型
例如:ALTER TABLE student CHANGE Stuname Stuname varchar(20);
也可以在Navicat中通过"设计表"来设置:右键点击表选择"设计表",在字段的"不是null"选项中勾选或取消非空约束。
5.什么是默认值约束?默认值约束有什么作用?
答:默认值约束(DEFAULT)是给某个字段(某列)指定默认值。一旦设置默认值,在插入数据时如果此字段没有显式赋值,则自动赋值为默认值。例如给成绩字段设置默认值为0,当没有给该学生成绩赋值时,默认成绩为0分。
6.如何在创建表时添加默认值约束?
答:在CREATE TABLE语句中,在字段定义后添加DEFAULT关键字和默认值。语法格式为:
CREATE TABLE 表名(
字段名1 数据类型,
字段名2 数据类型,
...
字段名n 数据类型 DEFAULT 字段默认值
)
例如:CREATE TABLE score_2(id int, stuname varchar(20), sc int DEFAULT 0);
7.如何为已创建的表添加和删除默认值约束?
答:添加默认值约束(使用ALTER TABLE MODIFY):
ALTER TABLE 表名 MODIFY 字段名 数据类型 DEFAULT 默认值
例如:ALTER TABLE course MODIFY classhour INT DEFAULT 40;
删除默认值约束(去掉DEFAULT即可):
ALTER TABLE 表名 MODIFY 字段名 数据类型
例如:ALTER TABLE course MODIFY classhour INT;
8.非空约束和默认值约束的添加和删除方式有什么共同点?
答:非空约束和默认值约束的添加和删除方式类似: (1)都可以在创建表时直接在字段定义中添加。 (2)都可以通过ALTER TABLE语句添加和删除。 (3)删除时都是把约束语句(NOT NULL或DEFAULT)删掉即可。 (4)添加非空约束使用ALTER TABLE CHANGE语句,添加默认值约束使用ALTER TABLE MODIFY语句。 (5)添加约束后可以在数据表中输入相应数据观察表结构的变化。