资源描述
西南石油大学实验报告课程名称:数据库原理插入你的照片实验项目名称:实验3 SQL数据定义语言 专业年级班级、姓名、学号:电子邮件地址:实验所用机器名:实验时间地点:2015.12.11 明理楼实验指导教师:孙瑜成绩批改人批改日期注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。一、实验课时: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数据库包含的所有表EMPLOYEECREATE 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);JOBHISTORYCREATE TABLE JOBHISTORY(EMPNO SMALLINT NOT NULL,POSITION VARCHAR(50) NOT NULL,STARDATE DATE NOT NULL,ENDDATE DATE NULL,SALARY INT NOT NULL);COURSECREATE TABLE COURSE(COURSENO SMALLINT NOT NULL,CNAME VARCHAR(50) NOT NULL,CDATE DATE NOT NULL);DEPARTMENTCREATE TABLE DEPARTMENT(DEPNO SMALLINT NOT NULL,DNAME VARCHAR(50) NOT NULL,LOCATION VARCHAR(10) NOT NULL,HEAD SMALLINT NOT NULL);EMPCOURSECREATE TABLE EMPCOURSE(EMPNO SMALLINT NOT NULL,COURSENO SMALLINT NOT NULL);3使用Transact-SQL语句创建JOBS数据库包含表的主键、外键约束条件创建每个表的主键:ALTER TABLE EMPLOYEE ADD CONSTRAINT PK_EMPLOYEEPRIMARY KEY (EMPNO);ALTER TABLE JOBHISTORY ADD CONSTRAINT PK_JOBHISTORYPRIMARY KEY (EMPNO,POSITION,STARDATE);ALTER TABLE COURSE ADD CONSTRAINT PK_COURSEPRIMARY KEY (COURSENO);ALTER TABLE DEPARTMENT ADD CONSTRAINT PK_DEPARTMENTPRIMARY KEY (DEPNO);ALTER TABLE EMPCOURSE ADD CONSTRAINT PK_EMCOURSEPRIMARY KEY (EMPNO,COURSENO);创建关系:ALTER TABLE JOBHISTORY ADD CONSTRAINT FK_JOBHISTORY_EMPLOYEEFOREIGN KEY (EMPNO)REFERENCES EMPLOYEE (EMPNO);ALTER TABLE EMPCOURSE ADD CONSTRAINT FK_EMPCOURSE_EMPLOYEEFOREIGN KEY (EMPNO)REFERENCES EMPLOYEE (EMPNO);ALTER TABLE EMPCOURSE ADD CONSTRAINT FK_EMPCOURSE_COURSEFOREIGN KEY (COURSENO)REFERENCES COURSE (COURSENO);ALTER TABLE EMPLOYEEADD CONSTRAINT FK_EMPLOYEE_DEPARTMENTFOREIGN KEY (DEPNO)REFERENCES DEPARTMENT (DEPNO);ALTER TABLE DEPARTMENTADD CONSTRAINT FK_DEPARTMENT_EMPLOYEEFOREIGN 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)ASSELECT DISTINCT EMPNOFROM EMPCOURSE;(插入查询该视图的SQL窗口及结果)(2) 创建一个名为“secondview”的视图,列出所有empno小于5的员工信息(插入定义该视图的SQL窗口)CREATE VIEW secondview(EMPNO,SUPNAME,FORENAMES,DOB,ADDRESS,TELNO,DEPNO)ASSELECT *FROM EMPLOYEEWHERE EMPNO 1960-01-01;SELECT * FROM EMPLOYEE;(分别附上修改以前和修改之后的数据图)(3) 删除数据删除所有员工以前的工作历史。修改以前:修改以后:DELETE FROM JOBHISTORYWHERE ENDDATE IS NOT NULL;SELECT * FROM JOBHISTORY;(分别附上删除以前和删除之后的数据图)六、收获,体会及问题(请详细书写,写得越详细、越个性化、越真实越好,否则我不知道你做这个实验的心路历程,也就无法充分地判断你是否是独立完成的这个实验、你是否在做这个实验时进行了认真仔细地思考、通过这个实验你是否在实践能力上得到了提高)通过对sql的DDL的学习让我更加明白如何用sql语言来实现一个数据库的创建,给创建的数据库进行添加数据,更新数据,删除数据。在添加数据以前要先添加关系,避免自己录入的是垃圾数据。在录入数据时,可能因为刚才录入了关系而不准添加。可先将其中一个参照关系的录入值为NULL,等到把主键录入完了,再把外键更新即可。视图的创建实质是一张虚表,当关闭sql server时,会自动消除。他实际是处在用户层。不过自己虽然会做题,但对于一些语句还不是很熟悉,需要对照着PPT,在期末以前自己还要加深理解,加强记忆。
展开阅读全文