数据库实验报告
本实验报告旨在掌握数据库的索引、视图和完整性约束的定义方法。实验中,我们将使用T-SQL语句在worker表的“部门号”列上创立一个非聚集索引,删除后重建;在salary表的“职工号”和“日期”列创立聚集索引,并强制唯一性;建立视图view1、view2和view3,查询所有职工的职工号、部门名和2004年2月工资,并按部门名顺序排列。
一、索引的创立和删除
在实验中,我们使用了CREATE INDEX语句来创立索引,例如:
```sql
CREATE INDEX depno ON worker(部门号)
```
这条语句将在worker表的“部门号”列上创立一个非聚集索引。同时,我们也学习了如何删除索引,使用DROP INDEX语句,例如:
```sql
DROP INDEX worker.depno
```
这条语句将删除worker表上的depno索引。
二、视图的创立和使用
在实验中,我们使用了CREATE VIEW语句来创立视图,例如:
```sql
CREATE VIEW view1 AS
SELECT TOP 15 worker.职工号, worker., depart.部门名, salary.工资 AS '2004年月工资'
FROM worker, depart, salary
WHERE worker.部门号 = depart.部门号 AND worker.职工号 = salary.职工号
```
这条语句将创立一个视图view1,查询所有职工的职工号、部门名和2004年2月工资,并按部门名顺序排列。我们也学习了如何使用视图,例如:
```sql
SELECT * FROM view1
```
这条语句将查询view1视图中的所有数据。
三、完整性约束的定义
在实验中,我们学习了如何定义完整性约束,例如:
```sql
CREATE UNIQUE CLUSTERED INDEX no_date ON salary(职工号, 日期)
```
这条语句将在salary表的“职工号”和“日期”列上创立一个聚集索引,并强制唯一性。我们也学习了如何实施worker表的“性别”列默认值为“男”的约束,例如:
```sql
ALTER TABLE worker ADD CONSTRAINT df_sex DEFAULT '男' FOR 性别
```
这条语句将在worker表的“性别”列上设置默认值为“男”。
四、实验步骤
在实验中,我们按照实验步骤来进行实验,例如:
1. 判断是否存在depno索引,并删除之。
2. 创立depno索引。
3. 判断是否存在no_date索引,并删除之。
4. 创立no_date索引。
5. 创立视图view1、view2和view3。
6. 实施worker表的“性别”列默认值为“男”的约束。
7. 实施salary表的“工资”列值限定在0~9999的约束。
8. 实施depart表的“部门号”列值唯一的非聚集索引的约束。
9. 为worker表建立外键“部门号”,参考表depart的“部门号”列。
10. 建立一个规则sex:性别='男' OR 性别='女',将其绑定到“性别”列上。
通过本实验,我们掌握了数据库的索引、视图和完整性约束的定义方法,并了解了T-SQL语句的使用方法。