2022年数据库实验三.pdf
数据库实验三西南石油大学实验报告课程名称 :数据库原理插入您的照片实验项目名称 :实验 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 DatabaseJOBS_DengZhiPeng;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 24 页 - - - - - - - - - - 数据库实验三2. 使用 Transact-SQL 语句创建 JOBS数据库包含的所有表EMPLOYEE CREATE TABLE EMPLOYEE ( EMPNOSMALLINTNOT NULL, SUPNAME VARCHAR ( 50)NOT NULL, FORENAMESVARCHAR ( 50 )NOT NULL, DOB DATE NOT NULL, ADDRESS VARCHAR ( 50)NOT NULL, TELNO CHAR ( 10)NOT NULL, DEPNO SMALLINTNOT NULL );精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 24 页 - - - - - - - - - - 数据库实验三JOBHISTORY CREATE TABLE JOBHISTORY( EMPNOSMALLINTNOT NULL, POSITIONVARCHAR ( 50)NOT NULL, STARDATE DATE NOT NULL, ENDDATE DATE NULL, SALARY INTNOT NULL );COURSE CREATE TABLE COURSE ( COURSENOSMALLINTNOT NULL, CNAME VARCHAR ( 50)NOT NULL, CDATE DATE NOT NULL );DEPARTMENT 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 24 页 - - - - - - - - - - 数据库实验三CREATE TABLE DEPARTMENT ( DEPNO SMALLINTNOT NULL, DNAME VARCHAR ( 50)NOT NULL, LOCATION VARCHAR ( 10)NOT NULL, HEAD SMALLINTNOT NULL );EMPCOURSE CREATE TABLE EMPCOURSE ( EMPNOSMALLINTNOT NULL, COURSENOSMALLINTNOT NULL); 3. 使用 Transact-SQL 语句创建 JOBS数据库包含表的主键、外键约束条件创建每个表的主键 : ALTER TABLE EMPLOYEEADD CONSTRAINT PK_EMPLOYEE PRIMARY KEY ( EMPNO ); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 24 页 - - - - - - - - - - 数据库实验三ALTER TABLE JOBHISTORYADD CONSTRAINT PK_JOBHISTORY PRIMARY KEY ( EMPNO , POSITION , STARDATE);ALTER TABLE COURSEADD CONSTRAINT PK_COURSE PRIMARY KEY ( COURSENO ); ALTER TABLE DEPARTMENTADD CONSTRAINT PK_DEPARTMENT PRIMARY KEY ( DEPNO );精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 24 页 - - - - - - - - - - 数据库实验三ALTER TABLE EMPCOURSEADD CONSTRAINT PK_EMCOURSE PRIMARY KEY ( EMPNO , COURSENO ); 创建关系 : ALTER TABLE JOBHISTORYADD CONSTRAINT FK_JOBHISTORY_EMPLOYEE FOREIGN KEY ( EMPNO ) REFERENCES EMPLOYEE ( EMPNO );ALTER TABLE EMPCOURSEADD CONSTRAINT FK_EMPCOURSE_EMPLOYEE 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 24 页 - - - - - - - - - - 数据库实验三FOREIGN KEY ( EMPNO ) REFERENCES EMPLOYEE ( EMPNO );ALTER TABLE EMPCOURSEADD CONSTRAINT FK_EMPCOURSE_COURSE FOREIGN KEY ( COURSENO ) REFERENCES COURSE ( COURSENO );ALTER TABLE EMPLOYEE ADD CONSTRAINT FK_EMPLOYEE_DEPARTMENT FOREIGN KEY ( DEPNO ) REFERENCES DEPARTMENT( DEPNO ); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 24 页 - - - - - - - - - - 数据库实验三ALTER TABLE DEPARTMENT ADD CONSTRAINT FK_DEPARTMENT_EMPLOYEE FOREIGN KEY ( HEAD ) REFERENCESEMPLOYEE ( EMPNO ); 具体关系 : EXECUTE sp_helpconstraintDEPARTMENT ;EXECUTE sp_helpconstraintEMPCOURSE ;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 24 页 - - - - - - - - - - 数据库实验三EXECUTE sp_helpconstraintJOBHISTORY;EXECUTE sp_helpconstraintEMPLOYEE ;(所有 JOBS中表的约束图。 注意:必须如上图所示清楚完整显示约束的constraint_type 、constraint_name 、constraint_keys等信息。 ) 4. 备份 JOBS数据库 5. 使用 Transact-SQL 语句在 JOBS数据库里创建视图 ( 注意: 在以下各个小题中 , 后续题目可以利用前面题目创建的视图) (1) 创建一个名为“firstview ”的视图 ,列出不重复的所有选修了课程的empno (插入定义该视图的SQL 窗口) CREATE VIEW firstview( EMPNO ) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 24 页 - - - - - - - - - - 数据库实验三AS SELECT DISTINCTEMPNO FROM EMPCOURSE ;(插入查询该视图的SQL 窗口及结果 ) (2) 创建一个名为“ secondview”的视图 ,列出所有 empno小于 5的员工信息(插入定义该视图的SQL 窗口) CREATE VIEW secondview( EMPNO , SUPNAME , FORENAMES , DOB , ADDRESS , TELNO, DEPNO ) AS SELECT * FROM EMPLOYEE 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 24 页 - - - - - - - - - - 数据库实验三WHEREEMPNO 1960-01-01; SELECT *FROM EMPLOYEE ;(分别附上修改以前与修改之后的数据图) (3) 删除数据删除所有员工以前的工作历史。修改以前 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 22 页,共 24 页 - - - - - - - - - - 数据库实验三修改以后 : DELETE FROM JOBHISTORY WHEREENDDATE ISNOT NULL; SELECT *FROM JOBHISTORY; (分别附上删除以前与删除之后的数据图) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 23 页,共 24 页 - - - - - - - - - - 数据库实验三六、收获 ,体会及问题(请详细书写 ,写得越详细、越个性化、越真实越好,否则我不知道您做这个实验的心路历程 ,也就无法充分地判断您就是否就是独立完成的这个实验、您就是否在做这个实验时进行了认真仔细地思考、通过这个实验您就是否在实践能力上得到了提高 )通过对 sql的 DDL 的学习让我更加明白如何用sql 语言来实现一个数据库的创建,给创建的数据库进行添加数据,更新数据 ,删除数据。在添加数据以前要先添加关系,避免自己录入的就是垃圾数据。在录入数据时,可能因为刚才录入了关系而不准添加。可先将其中一个参照关系的录入值为NULL, 等到把主键录入完了 ,再把外键更新即可。视图的创建实质就是一张虚表,当关闭 sql server时,会自动消除。她实际就是处在用户层。不过自己虽然会做题 ,但对于一些语句还不就是很熟悉,需要对照着 PPT,在期末以前自己还要加深理解 ,加强记忆。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 24 页,共 24 页 - - - - - - - - - -