实列数据库1 下载本文

内容发布更新时间 : 2024/12/23 9:45:11星期一 下面是文章的全部内容请认真阅读。

2. 删除上列中创建的UNIQUE约束。

【思考与练习】使用T-SQL命令创建一个新表,使用一个复合列作为主键,作为表的约束,并为其命名

使用ALTER TABLE 语句为表Employees5添加一个新列Address,并为该列定义UNIQUE约束

使用界面方式为一个新表定义主键和UNIQUE约束,并了解如何使用图形向导方式删除主键和UNIQUE约束

3.创建新表student,只考虑“号码”和“性别”两列,性别只能包含男或女

【思考与练习】向该表插入数据,“性别”列插入“男”和“女‘以外的字符,查看会发生什么情况

4.创建新表salary2,结构与salary相同,但salary2表不允许Outcome列大于Income列

【思考与练习】a.向表中插入数据,查看outcome值大于income值会发生什么情况。 b.创建一个新表Employees6,只考虑“学号”和“出生日期”两列,出生日期必须晚于1980年1月1日

5.对YGGL数据库的Employees表进行修改,为其增加“DepartmentID”字段的CHECK约束

【思考与练习】测试CHECK约束的有效性

6.创建一个规则对象,用以限制输入到该规则所绑定的列中的值只能说该规则中列出的值

【思考与练习】a.建立一个规则对象,限制值在0~20,然后把它绑定到Employees表的workyear字段上

b.删除上述建立的规则对象

7.创建一个表salary3,要求所有salary3表上的EmployeeID列的值都要出现在salary中,利用参照完整性约束实现,要求当删除或修改salary表上的EmployeeID列时,salary3表中的EmployeeID值也会随之变化

【思考与练习】a.创建salary3表后,初始化该表的数据与salary表相同。删除salary表中一行数据,再查看salary3的内容,看看会发生什么情况。

b.使用ALTER TABLE 语句向salary表中的EmployeeID列上添加一个外键,要求当Employees表中要删除或修改与EmployeeID值有关的行时,检查salary表有没有与该EmployeeID值相关的记录,如果存在,则拒绝更新Employees表

c.在对象资源管理器中建立Departments,Employees和salary3表之间的参照关系

实验7 存储过程和触发器

(1)存储过程

1.创建存储过程,使用Employees 表中的员工人数来初始化一个局部变量,并调用这个存储过程

执行该存储过程,并查看结果

2.创建存储过程,比较两个员工的实际收入,若前者比后者高就输出0,否则输出1

执行该存储过程,并查看结果

3.创建添加职员记录的存储过程EmployeeAdd

执行该存储过程

4.创建存储过程,使用游标确定一个员工的实际收入是否排在前3名。结果为1表示是,结果为0表示否。

执行该存储过程,并查看结果

【思考与练习】a.创建存储过程,要求当一个员工的工作年份大于6年时将其转到经理办公室。

b.创建存储过程,根据每个员工的学历将收入提高500元。

c.创建存储过程,使用游标计算本科及以上学历的员工在总员工数中所占的比例 d.使用命令方式修改存储过程的定义。 (2)触发器

1.向employee表插入或修改一个记录时,通过触发器检查记录的departmentID 值在department表中是否存在,若不存在,则取消插入或修改操作