数据库原理与应用实验3-1
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
insert into student values('95003','张三','男
',24,'CS','42222919901012903X')
insert into student values('95001','李四','女
',21,'CS','422229199510129031')
下面的语句用来验证“sc”表中的实体完整性:
sage>=20 )
3)参照完整性
9.将“student”表和“sc”表中的“sno”字段设为参照:
alter table sc add constraint FP_sno foreign key (sno) references student(sno )
完整性验证
1.实体完整性:在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出现错误或者在命令窗口输入下面两条命令也会出现错误提示:
2)域完整性
4.将“ssex”字段设置为只能取“男”,“女”两值:
alter table student add constraint CK_Sex check (ssex in ('男' ,'女'))
5.设置学号字段只能输入数字:
alter table student add constraint CK_Sno_Format check (sno like
实验3.1数据完整性管理
一、实验目的
掌握域完整性的实现方法。
掌握实体完整性的实现方法。
掌握参照完整性的方法。
二、实验内容
数据库的完整性设置。
三、实验步骤
可视化:
1)实体完整性
2)域完整性
3)参照完整性
命令方式:
1)实体完整性
1.将“student”表的“sno”字段设为主键:
alter table student add constraint pk_sno primary key (sno)
like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))
7.设置18位身份证号的第7位到第10位为合法的年份(1900-2050)
alter table student add constraint CK_ID_Format2 check (len(id)=18 and
( (convert(smallint,substring(id,7,4) )>=1900) and(convert(smallint,substring(id,7,4) )<=2050)) )
8.设置男生的年龄必须大于22,女生的年龄必须大于20.
Alter table student add constraint CK_age check (ssex='男' and sage>=22 or ssex='女' and
Income>=0 and Income<=9999
唯一约束:
Departments: alter table Departments add constraint UNIQUE_Department UNIQUE (DepartmentID)
Employee: alter table Employee add constraint UNIQUE_Employee UNIQUE (DepartmentID)Salary: alter table Salary add constraint UNIQUE_Salary UNIQUE (EmployeeID)
外键约束:
Salary: alter table salary add constraint FK_EmployeeID foreign key (EmployeeID) references Employee(Employeeid)
Employee: alter table employee add constraint FK_EMPLOYEE_DEPARTMENT foreign key (DepartmentID) references Departments(DepartmentID))
3.参照完整性:
使用下面的语句“验证”sc表中的“sno”字段的域完整性(假设student表中没有学号为“95998”的学生记录):
insert into sc values('98998', '10',98)
四、实验任务:
1、建立课程的实体完整性,和课程号cno的参照完整性;
2、对HRM数据库,练习建立三个表的主外键约束、唯一约束、取空值约束、用户自定义
insert into sc values('95002', '10',65)
insert into sc values('95002', '10',90)
2.域完整性:
使用下面的语句验证“ssex”字段的域完整性:
insert into student values('95009','张匀','大',20,'CS',‘42222919901012904X’)
表Salary:
alter table Salary alter column EmployeeID char(6) not null
alter table Salary alter column Income Float(8) not null
alter table Salary alter column OutCome Float(8) not null 用户自定义约束:
2.添加一身份证号字段,设置其惟一性.(注:操作前Baidu Nhomakorabea删除表中的所有记录)
Alter table student add id char(18) unique (id)
3.将“sc”表的“sno”和“cno”设置为主键:
alter table sc add constraint PK_SnoCno primary key (sno,cno)
'[0-9][0-9][0-9][0-9][0-9]')
6.设置身份证号的输入格式:
alter table student add constraint CK_ID_Format check ((id like
'[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_') OR (id
非空约束:
Employee:
alter table Employee alter column EmployeeID char(6) not null
alter table Employee alter column Name char(10) not null
alter table Employee alter column Birthday Datetime not null
alter table Employee alter column Sex Bit not null
alter table Employee alter column DepartmentID char(3) not null
表Departments:
alter table Departments alter column DepartmentID char(3) not null
alter table Employee add constraint CK_Sex check (sex in ('男' ,'女'))
3、建立salary表的Income字段限定在0-9999之间。
alter table Salary add constraint CK_salary check(
的约束(参考HRM数据库表定义图中说明);
主键约束:
Departments:alter table departments add constraint FK_DEPARTMENTID primary key (departmentid)
Employee:alter table employee add constraint FK_EMPLOYEEID primary key (employeeid)
',24,'CS','42222919901012903X')
insert into student values('95001','李四','女
',21,'CS','422229199510129031')
下面的语句用来验证“sc”表中的实体完整性:
sage>=20 )
3)参照完整性
9.将“student”表和“sc”表中的“sno”字段设为参照:
alter table sc add constraint FP_sno foreign key (sno) references student(sno )
完整性验证
1.实体完整性:在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出现错误或者在命令窗口输入下面两条命令也会出现错误提示:
2)域完整性
4.将“ssex”字段设置为只能取“男”,“女”两值:
alter table student add constraint CK_Sex check (ssex in ('男' ,'女'))
5.设置学号字段只能输入数字:
alter table student add constraint CK_Sno_Format check (sno like
实验3.1数据完整性管理
一、实验目的
掌握域完整性的实现方法。
掌握实体完整性的实现方法。
掌握参照完整性的方法。
二、实验内容
数据库的完整性设置。
三、实验步骤
可视化:
1)实体完整性
2)域完整性
3)参照完整性
命令方式:
1)实体完整性
1.将“student”表的“sno”字段设为主键:
alter table student add constraint pk_sno primary key (sno)
like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))
7.设置18位身份证号的第7位到第10位为合法的年份(1900-2050)
alter table student add constraint CK_ID_Format2 check (len(id)=18 and
( (convert(smallint,substring(id,7,4) )>=1900) and(convert(smallint,substring(id,7,4) )<=2050)) )
8.设置男生的年龄必须大于22,女生的年龄必须大于20.
Alter table student add constraint CK_age check (ssex='男' and sage>=22 or ssex='女' and
Income>=0 and Income<=9999
唯一约束:
Departments: alter table Departments add constraint UNIQUE_Department UNIQUE (DepartmentID)
Employee: alter table Employee add constraint UNIQUE_Employee UNIQUE (DepartmentID)Salary: alter table Salary add constraint UNIQUE_Salary UNIQUE (EmployeeID)
外键约束:
Salary: alter table salary add constraint FK_EmployeeID foreign key (EmployeeID) references Employee(Employeeid)
Employee: alter table employee add constraint FK_EMPLOYEE_DEPARTMENT foreign key (DepartmentID) references Departments(DepartmentID))
3.参照完整性:
使用下面的语句“验证”sc表中的“sno”字段的域完整性(假设student表中没有学号为“95998”的学生记录):
insert into sc values('98998', '10',98)
四、实验任务:
1、建立课程的实体完整性,和课程号cno的参照完整性;
2、对HRM数据库,练习建立三个表的主外键约束、唯一约束、取空值约束、用户自定义
insert into sc values('95002', '10',65)
insert into sc values('95002', '10',90)
2.域完整性:
使用下面的语句验证“ssex”字段的域完整性:
insert into student values('95009','张匀','大',20,'CS',‘42222919901012904X’)
表Salary:
alter table Salary alter column EmployeeID char(6) not null
alter table Salary alter column Income Float(8) not null
alter table Salary alter column OutCome Float(8) not null 用户自定义约束:
2.添加一身份证号字段,设置其惟一性.(注:操作前Baidu Nhomakorabea删除表中的所有记录)
Alter table student add id char(18) unique (id)
3.将“sc”表的“sno”和“cno”设置为主键:
alter table sc add constraint PK_SnoCno primary key (sno,cno)
'[0-9][0-9][0-9][0-9][0-9]')
6.设置身份证号的输入格式:
alter table student add constraint CK_ID_Format check ((id like
'[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_') OR (id
非空约束:
Employee:
alter table Employee alter column EmployeeID char(6) not null
alter table Employee alter column Name char(10) not null
alter table Employee alter column Birthday Datetime not null
alter table Employee alter column Sex Bit not null
alter table Employee alter column DepartmentID char(3) not null
表Departments:
alter table Departments alter column DepartmentID char(3) not null
alter table Employee add constraint CK_Sex check (sex in ('男' ,'女'))
3、建立salary表的Income字段限定在0-9999之间。
alter table Salary add constraint CK_salary check(
的约束(参考HRM数据库表定义图中说明);
主键约束:
Departments:alter table departments add constraint FK_DEPARTMENTID primary key (departmentid)
Employee:alter table employee add constraint FK_EMPLOYEEID primary key (employeeid)