数据库实验三
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。
一、实验课时:4
二、实验目的
(1) 掌握使用T-SQL语句创建、删除数据库的方法。
(2) 掌握使用T-SQL语句创建、修改、删除表的方法。
(3) 掌握使用T-SQL语句创建、删除数据库完整性约束条件的方法。
(4) 掌握使用T-SQL语句对表添加、修改、删除数据的方法。
(5) 掌握使用T-SQL语句创建、修改、删除、查询视图的方法。
三、实验要求
(1) 使用SQL Server 2008查询分析器。
(2) 严格依照操作步骤进行。
(3) 在本地服务器中创建和管理数据库。
四、实验环境
(1) PC机。
(2) SQL Server 2008。
五、实验内容及步骤(请特别注意实验步骤:第6项的第1小项,即“插入数据”操作必须在第4项以前执行)
1.使用Transact-SQL语句创建JOBS数据库,数据库名格式为
JOBS_SunYu(即JOBS_你的中文名字拼音)
CREATE Database JOBS_DengZhiPeng;
2.使用Transact-SQL语句创建JOBS数据库包含的所有表
EMPLOYEE
CREATE TABLE EMPLOYEE(
EMPNO SMALLINT NOT NULL,
SUPNAME VARCHAR(50)NOT NULL,
FORENAMES VARCHAR(50)NOT NULL, DOB DATE NOT NULL,
ADDRESS VARCHAR(50)NOT NULL,
TELNO CHAR(10)NOT NULL,
DEPNO SMALLINT NOT NULL
);
JOBHISTORY
CREATE TABLE JOBHISTORY(
EMPNO SMALLINT NOT NULL,
POSITION VARCHAR(50)NOT NULL,
STARDATE DATE NOT NULL,
ENDDATE DATE NULL,
SALARY INT NOT NULL
);
COURSE
CREATE TABLE COURSE(
COURSENO SMALLINT NOT NULL,
CNAME VARCHAR(50)NOT NULL,
CDATE DATE NOT NULL
);
DEPARTMENT
CREATE TABLE DEPARTMENT(
DEPNO SMALLINT NOT NULL,
DNAME VARCHAR(50)NOT NULL,
LOCATION VARCHAR(10)NOT NULL,
HEAD SMALLINT NOT NULL
);
EMPCOURSE
CREATE TABLE EMPCOURSE(
EMPNO SMALLINT NOT NULL,
COURSENO SMALLINT NOT NULL);
3.使用Transact-SQL语句创建JOBS数据库包含表的主键、外键约束条件
创建每个表的主键:
ALTER TABLE EMPLOYEE
ADD CONSTRAINT PK_EMPLOYEE
PRIMARY KEY (EMPNO);
ALTER TABLE JOBHISTORY
ADD CONSTRAINT PK_JOBHISTORY
PRIMARY KEY (EMPNO,POSITION,STARDATE); ALTER TABLE COURSE
ADD CONSTRAINT PK_COURSE
PRIMARY KEY (COURSENO);
ALTER TABLE DEPARTMENT
ADD CONSTRAINT PK_DEPARTMENT
PRIMARY KEY (DEPNO);
ALTER TABLE EMPCOURSE
ADD CONSTRAINT PK_EMCOURSE
PRIMARY KEY (EMPNO,COURSENO);
创建关系:
ALTER TABLE JOBHISTORY
ADD CONSTRAINT FK_JOBHISTORY_EMPLOYEE FOREIGN KEY (EMPNO)
REFERENCES EMPLOYEE(EMPNO);
ALTER TABLE EMPCOURSE
ADD CONSTRAINT FK_EMPCOURSE_EMPLOYEE FOREIGN KEY (EMPNO)
REFERENCES EMPLOYEE(EMPNO);
ALTER TABLE EMPCOURSE
ADD CONSTRAINT FK_EMPCOURSE_COURSE FOREIGN KEY (COURSENO)
REFERENCES COURSE(COURSENO);
ALTER TABLE EMPLOYEE
ADD CONSTRAINT FK_EMPLOYEE_DEPARTMENT FOREIGN KEY (DEPNO)
REFERENCES DEPARTMENT(DEPNO);
ALTER TABLE DEPARTMENT
ADD CONSTRAINT FK_DEPARTMENT_EMPLOYEE FOREIGN KEY (HEAD)
REFERENCES EMPLOYEE(EMPNO);
具体关系:
EXECUTE sp_helpconstraint DEPARTMENT; EXECUTE sp_helpconstraint EMPCOURSE; EXECUTE sp_helpconstraint JOBHISTORY; EXECUTE sp_helpconstraint EMPLOYEE;
(所有JOBS中表的约束图。注意:必须如上图所示清楚完整显示约束的constraint_type、constraint_name、constraint_keys等信息。)
4.备份JOBS数据库
5.使用Transact-SQL语句在JOBS数据库里创建视图(注意:在以下各个小题中,后续题目可以利用前面题目创建的视图)
(1)创建一个名为“firstview”的视图,列出不重复的所有选修了课程的
empno
(插入定义该视图的SQL窗口)
CREATE VIEW firstview(EMPNO)
AS
SELECT DISTINCT EMPNO
FROM EMPCOURSE;
(插入查询该视图的SQL窗口及结果)
(2)创建一个名为“secondview”的视图,列出所有empno小于5的员工信
息
(插入定义该视图的SQL窗口)
CREATE VIEW secondview(EMPNO,SUPNAME,