版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库技术与管理上机实验指导书太原理工大学经济管理学院戴宏一、实验目的数据库技术与管理是研究、解决有效获取数据和处理数据的问题,其主要任务是根据信息处理的要求,通过E-R图方法、概念设计、逻辑设计等能够进行需求分析,运用数据库管理系统完成实际功能设计。上机实验课是本课程重要的教学环节,其目的是通过上机实践,配合课堂教学内容加深对数据库的基本概念和基本技术的理解,使学生掌握基本的数据库实验技能,掌握数据库系统设计的基本思想和基本步骤,熟练掌握关系数据库的标准语言SQL的应用,为学生熟练掌握数据库应用系统的开发打下一个很好的实践基础。二、实验的基本要求1、由指导教师讲清实验基本原理、操作平台、基本
2、操作方法;2、每个学生单独进行实验,记录实验过程和方法;3、对实验过程和方法进行分析并写出实验报告。报告应分析实验结果,讨论实验中的问题。三、实验主要内容序号实验名称目的要求、内容提要1SQL Server管理工具熟悉Sql Server环境下数据库、表的管理2SQL语言(一):基本表的定义、删除、修改,建立和删除索引熟悉利用SQL语言中的DDL来完成基本表的定义、删除、修改,以及对索引的建立和删除3SQL语言(二):查询、数据更新熟悉利用SQL语言来完成查询、数据更新。4SQL语言(三):视图熟悉利用SQL语言进行视图建立和删除。5SQL语言(四): 数据库控制熟悉利用SQL语言进行数据库完
3、整性约束及控制。四、考核方式和成绩评定办法1、实验报告必须包括:实验时间;实验平台;实验内容;操作方法和结果。2、实验考核方式包括:实验操作情况;实验报告内容。3、评分方法:实验结束后由指导老师给出实验成绩,成绩不合格者不能参加结课考试五、实验报告参考格式数据库技术与管理上机实验报告专业: 学号: 姓名: 班级:实验时间实验地点实验内容实验结果实验指导书目录 TOC o 1-1 h z u HYPERLINK l _Toc308185603 实验一 SQL Server管理工具 PAGEREF _Toc308185603 h 6 HYPERLINK l _Toc308185604 实验二 数据
4、定义 PAGEREF _Toc308185604 h 13 HYPERLINK l _Toc308185605 实验三 数据更新 PAGEREF _Toc308185605 h 27 HYPERLINK l _Toc308185606 实验四 数据查询 PAGEREF _Toc308185606 h 29 HYPERLINK l _Toc308185607 实验五 视图 PAGEREF _Toc308185607 h 35 HYPERLINK l _Toc308185608 实验六 数据完整性 PAGEREF _Toc308185608 h 37 HYPERLINK l _Toc3081856
5、09 实验七 数据控制 PAGEREF _Toc308185609 h 39实验一 SQL Server管理工具一、目的与要求1掌握SQL Server服务器的安装2掌握企业管理器的基本使用方法3掌握查询分析器的基本使用方法4掌握服务管理器的基本使用方法5了解数据库及其对象6. 学会使用SQL Server联机丛书和Transact-SQL帮助二、实验准备1了解SQL Server各种版本安装的软、硬件要求2了解SQL Server支持的身份验证模式3了解SQL Server各组件的主要功能4对数据库、表和数据库对象有一个基本了解5了解在查询分析器中执行SQL语句的方法三、实验内容1安装SQL
6、 Server 2000 根据软硬件环境,选择一个合适版本的SQL Server 2000。2利用企业管理器访问系统自带的pubs数据库。(1)启动SQL Server服务管理器。通过“开始=程序=Microsoft SQL Server=服务管理器”打开“SQL Server服务管理器”,启动“SQL Server服务管理器”,并记录当前运行的服务器名。(2)启动企业管理器。通过“开始=程序=Microsoft SQL Server=企业管理器”打开“SQL Server Enterprise Manager”(3)在企业管理器的树形目录中展开数据库,找到pubs并展开,则列出该数据库的所有
7、对象,如表、视图、存储过程、默认和规则等。(4)选中“表”,将列出pubs数据库的所有表(包括系统表和用户表),在此以用户表titles为例,选中该表,单击鼠标右键,弹出快捷菜单,执行“打开表返回所有行”菜单项,打开该表,查看其内容。(5)选中表titles,单击鼠标右键,弹出快捷菜单,执行“设计表”菜单项,查看其结构,并记录该表的结构。(6)用同样的方法查看pubs数据库中的其它用户表,并记录这些表的结构。3利用查询分析器访问系统自带的pubs数据库的表(1)启动SQL Server查询分析器通过“开始=程序=Microsoft SQL Server=查询分析器”打开“SQL Server
8、查询分析器”,并以系统管理员sa的身份连接到SQL Server。(2)使用系统存储过程(sp_tables和sp_help )查看系统自带的pubs数据库中的表titles的结构信息在查询分析器的命令窗口中键入如下SQL批命令:use pubsgosp_tables titlesgosp_help titlesgo按“F5”键执行SQL查询(3)利用SQL命令查看系统自带的pubs数据库中的表titles的行信息select * from titlesgo4在查询分析器中打开“帮助”菜单,使用SQL Server联机丛书和Transact-SQL帮助实验二 数据定义一、目的和要求1了解SQL
9、 Server数据库的逻辑结构和物理结构。2了解表的结构特点。3了解SQL Server的基本数据类型。4学会在企业管理器中创建数据库和表。5学会使用T-SQL语句创建数据库和表。二、实验准备1要明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。2创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长及增长的方式)和存储数据的文件。3确定数据库包含哪些表以及包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。4了解常用的创建数据库和表的方法。三、实验内容设有一学籍管
10、理系统,其数据库名为“STUDENT”,初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf。日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”。各数据表的结构如下: 表2.1 student表(学生信息表)字段名称类 型宽 度允许空值主 键说 明snochar8NOT NULL是学生学号snamechar8NOT NULL学生姓名sexchar2NULL学生性别nat
11、ivechar20NULL籍贯birthdaysmalldate4NULL学生出生日期dnochar6NULL学生所在院系编号(外键)spnochar8NULL专业代码(外键)classnochar4NULL班级号entimesmalldate4NULL学生入校时间homevarchar40NULL学生家庭住址telvarchar40NULL学生联系电话表2.2 course表(课程信息表)字段名称类 型宽 度允许空值主 键说 明cnochar10NOT NULL是课程编号spnochar8NULL专业代码(外键)cnamechar20NOT NULL课程名称ctnotinyint1NULL课
12、程类型编号(外键)experimenttinyint1NULL实验时数lecturetinyint1NULL授课学时semestertinyint1NULL开课学期credittinyint1NULL课程学分表2.3 student_course表(学生选课成绩表)字段名称类 型宽 度允许空值主 键说 明snochar8NOT NULL是学生学号tcidsmallint2NOT NULL是上课编号scoretinyint1NULL学生成绩表2.4 teacher表(教师信息表)字段名称类 型宽 度允许空值主 键说 明tnochar8NOT NULL是教师编号tnamechar8NOT NULL
13、教师姓名sexchar2NULL教师性别birthdaysmalldate4NULL教师出生日期dnochar6NULL教师所在院系编号(外键)pnotinyint1NULL教师职务或职称编号homevarchar40NULL教师家庭住址zipcodechar6NULL邮政编码telvarchar40NULL联系电话emailvarchar40NULL电子邮件表2.5 teacher_course表(教师上课课表)字段名称类 型宽 度允许空值主 键说 明tcidsmallint2NOT NULL是上课编号tnochar8NULL教师编号(外键)spnochar8NULL专业代码(外键)clas
14、snochar4NULL班级号cnochar10NOT NULL课程编号(外键)semesterchar6NULL学期schoolyearchar10NULL学年classtimevarchar40NULL上课时间classroomvarchar40NULL上课地点weektimetinyint1NULL每周课时数四、实验步骤1创建数据库(1) 使用企业管理器创建数据库在Data上点击鼠标右键,选择新建数据库输入数据库名称,并点击数据文件和事务日志选项卡,分别输入相应信息。注意此处的数据库默认存放位置,将其记录下来,在后面事件分析器中使用SQL语句创建数据库时需要用到。点击确定后可以看到在SQ
15、L Server的数据库中新增加了student数据库。(2) 使用SQL语句创建数据库CREATE DATABASE studentnewON (NAME=studentnew_data,FILENAME=C:Program FilesSQL ServerMSSQLDatastudentnew_data.mdf ,/*此处的文件位置参考企业管理器创建数据库时默认的文件位置*/SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5%)LOG ON(NAME=student_log,FILENAME= C:Program FilesSQL ServerMSSQLDatastude
16、ntnew_log.ldf ,/*此处的文件位置参考企业管理器创建数据库时默认的文件位置*/SIZE=2MB,MAXSIZE=5MB,FILEGROWTH=1MB)2. 创建表(1) 使用企业管理器创建表第一步:在student数据库展开点击表,在所有表的展开上点击右键选择新建表第二步:按照要求依次输入student表的列名、数据类型、长度、是否允许空以及对这一列的描述。第三步:点击鼠标右键,将sno设置为主键第四步:将所有列信息输入完成后点击保存,输入文件名。第一张表student创建完成。可以在表展开中查看到新建的表第五步:按照上述方法将其他表新建完成。(2) 使用SQL语句创建表第一步:
17、打开事件分析器,输入SQL语句CREATE TABLE student(snochar(8) PRIMARY KEY, -学号(主键)snamechar (8) NOT NULL,-姓名sexchar(2),-性别nativechar(20),-籍贯birthdaysmalldatetime,-出生日期dnochar(6),-所在院系编号(外键)spnochar(8),-专业代码(外键)classnochar(4),-班级号 entimesmalldatetime,-入校时间 homevarchar (40),-家庭住址 telvarchar (40)-联系电话)点击F5运行SQL语句第二步:
18、保存建好的表可以通过SELECT语句查看建好的表第三部:按照上述步骤,建立其他的表CREATE TABLE course(cnochar (10) PRIMARY KEY,-课程编号(主键) cnamechar (20) NOT NULL,-课程名称 spnochar (8),-专业代码 ctnotinyint,-课程类型编号(外键) lecturetinyint,-理论学时 experimenttinyint,-实验时数 semestertinyint,-开课学期 credittinyint-课程学分)CREATE TABLE teacher(tnochar (8) PRIMARY KEY,
19、-教师编号(主键) tnamechar (8) NOT NULL,-教师姓名 sexchar (2),-教师性别 birthdaysmalldatetime,-出生日期 dnochar (6),-所在院系编号(外键) pnotinyint,-职务或职称编号 homevarchar(40),-家庭住址 zipcodechar (6),-邮政编码 telvarchar (40),-联系电话 emailvarchar (40)-电子邮件)CREATE TABLE student_course (snochar(8),-学生学号 tcidsmallint,-上课编号 scoretinyint ,-学生
20、成绩 PRIMARY KEY( sno,-主键 tcid-主键)CREATE TABLE teacher_course ( tcidsmallint PRIMARY KEY,-上课编号(主键) tnochar (8),-教师编号(外键) spnochar (8),-专业代码(外键) classnochar (4),-班级号 cnochar (10) NOT NULL,-课程编号(外键) semesterchar (6),-学期 schoolyearchar (10),-学年 classtimevarchar(40),-上课时间 classroomvarchar(40),-上课地点 weekti
21、metinyint-每周课时数)3. 修改表(1) 使用企业管理器修改表(2) 使用SQL语句修改表ALTER TABLE teacherALTER COLUMN email varchar(50) NULLEXEC sp_rename teacher.email, 电子邮件, COLUMN(3) 使用SQL语句删除表DROP TABLE teacher四、实验作业题1数据库分析(1)创建用于员工考勤的数据库,数据库名为YGKQ, 初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名和物理文件名
22、均采用默认值。(2)数据库YGKQ包含员工的信息和缺勤类型信息,其YGKQ包含下列2个表:JBQK:员工基本情况表;QQLX:缺勤信息表。各表的结构见表 2.1和表2.2所示:表 2.1 JBQK(员工基本情况表结构)字段名字段类型字段宽度说明员工号姓名缺勤时间缺勤天数缺勤类型缺勤理由CHARCHARDATETIMEINTCHARCHAR48420主键表 2.2 QQLX(缺勤类型信息表结构)字段名字段类型字段宽度说明缺勤类型缺勤名称缺勤描述CHARCHARCHAR4820主键各表的数据内容见表 2.3和2.4所示: 表 2.3 JBQK (员工基本情况记录)职工号姓名缺勤时间缺勤天数缺勤类型
23、缺勤理由001李华2006-09-0331事假002张敏2006-09-1222病假003付丽2006-09-0353旷工004张晓华2006-09-1021事假005邓刚2006-09-1612病假表 2.4 QQLX (缺勤类型信息记录)缺勤类别缺勤名称缺勤描述1事假本人必须提前 1天申请,1-2天由部门准许,2天以上由经理批准2病假1-2天由部门准许,2天以上由经理批准3旷工无故不到者按旷工处理4迟到在规定上班时间 1小时后到岗2在企业管理器中创建和删除数据库和数据表(1)在企业管理器中创建的YGKQ数据库。(2)在企业管理器中删除YGKQ数据库。(3)在企业管理器中分别创建表JBQK和
24、QQLX。(4)在企业管理器删除创建的JBQK和QQLX表。3在查询分析器中创建数据库和数据表 (1)用T-SQL语句创建数据库YGKQ。(2)使用T-SQL语句创建JBQK和QQLX表。实验三 数据更新一、目的和要求1学会在企业管理器中对表进行插入、修改和删除数据操作。2学会使用T-SQL语句对表进行插入、修改和删除数据操作。3了解T-SQL语句对表数据库操作的灵活控制功能。二、实验准备1了解表的更新操作,即数据的插入、修改和删除,对表数据的操作可以在企业管理器中进行,也可以由T-SQL语句实现。2掌握T-SQL中用于对表数据进行插入(INSERT)、修改(UPDATE)和删除(DELETE
25、或TRANCATE TABLE)命令的用法。3了解使用T-SQL语句在对表数据进行插入、修改及删除时,比在企业管理器中操作表数据灵活,功能更强大。三、实验内容1在企业管理器中对数据库student中的表进行插入、删除数据的操作。(1)在企业管理器的树形目录中展开数据库student,找到表并展开,则列出该数据库的所有对象,如表、视图、存储过程、默认和规则等。(2)选中“表”,将列出student数据库的所有表(包括系统表和用户表),在此以用户表student为例,选中该表,单击鼠标右键,弹出快捷菜单,执行“打开表返回所有行”菜单项,打开该表,并向表中录入若干条记录。(3) 在企业管理器中删除数
26、据库student中的表数据。在打开的表student中,选定将要删除的行,单击鼠标右键,弹出快捷菜单,执行“删除”菜单项,在打开的删除对话框中回答“是”。2. 使用SQL语句插入、修改和删除表数据首先启动SQL Server查询分析器,并以系统管理员sa的身份连接到SQL Server。依次执行下列SQL语句:INSERT INTO studentVALUES(02080001,李平,男,江西, 1985-1-2,610000,080605,0201, 2002-9-1,江西省南昌市上海路11,8305670)UPDATE studentSET native=湖南WHERE native=江
27、西DELETE studentWHERE native=湖南四、 附表:表1:student学号姓名性别籍贯出生日期所在院系编号专业代码班级号入校时间家庭住址联系电话02080001李平男江西1985-1-261000008060502012002-9-102080002陈蓉女湖南1985-5-2061000008060502012002-9-102080003李勇男广东1985-7-961000008060402032002-9-102080004王敏女山西1986-3-1861000008060402032002-9-102080005张立男江西1987-11-26100000806020
28、2022002-9-102080006刘云女辽宁1985-12-361000008060202022002-9-102080007陈凯男河北1986-2-761000008060502012002-9-102080008张霞女北京1986-7-2361000008060202022002-9-102080009李珊女浙江1986-9-16610000080605020212002-9-1表2:course课程编号专业代码课程名称课程类型编号实验时数授课时数开课学期课程学分H61030006080605数据结构011632二3H61030007080605C语言011648二4H61030008
29、080605编译原理011232一2.5H61030009080605操作系统011232二2.5H61040001080604编译原理A021232二2.5H61040002080604计算机基础021632一3H61050003080602管理信息系统03048二3H61050004080602信息安全03048一3表3:student_course学号上课编号学生成绩02080001175020800021830208000318802080004156020800051790208000616402080007166020800082020800092表4:teacher教师编号姓名性
30、别出生日期所在院系编号职务职称编号住址邮编电话电子邮件101032章向伟男6100001101033马明男6100002101035刘娟女6100002101036王小莉女6100003101038王强男6100004表5:teacher_course上课编号教师编号专业代码班级号课程编号学期学年上课时间上课地点每周课时数11010320806050201H61030006二11010320806050201H61030007二21010320806050201H61030008一11010350806050201H61030009二11010360806040203H61040001二110
31、10380806020202H61050003二五、实验作业题根据某一单位的员工考勤情况,对实验2所创建数据库YGKQ的各表进行数据更新操作。 自己随意编写员工情况,对数据库YGKQ中的各表进行数据的插入、修改和删除至少各5条记录。实验四 数据查询一、目的与要求1掌握SELECT语句的基本语法。2掌握子查询的表示。3掌握连接查询的表示。4掌握SELECT语句的统计函数的作用和使用方法。5掌握SELECT语句的GROUPBY和ORDERBY子句的作用和使用方法。二、实验准备1了解SELECT语句的基本语法格式。2了解SELECT语句的执行方法。3了解子查询的表示方法。4了解SELECT语句的统计
32、函数的作用。5了解SELECT语句的GROUP BY和ORDER BY子句的作用。三、实验内容及步骤首先启动SQL Server查询分析器,并以系统管理员sa的身份连接到SQL Server。以下所有查询都在查询分析器中执行。1. 简单查询SELECT sno,sname,sex,birthday FROM studentSELECT sno,sname,CAST(GETDATE()-birthday AS int)/365 AS age FROM studentSELECT sno,sname,sex,birthdayFROM studentWHERE dno=610000SELECT sn
33、o,sname,birthdayFROM student WHERE spno=080605 AND classno=0201SELECT sno,sname,sex,birthdayFROM studentWHERE birthday1985/01/01SELECT * FROM teacher WHERE pno4SELECT sno,snameFROM studentWHERE sname LIKE 陈%SELECT sno,sname FROM studentWHERE sname LIKE 陈_ _SELECT sno,sname,sex,birthday FROM student
34、WHERE (dno=610000) AND (birthday1985/01/01)SELECT *FROM studentWHERE native NOT LIKE 江西%SELECT *FROM studentWHERE CAST(GETDATE()-birthday AS int) BETWEEN 6570 AND 7300SELECT sno,sname,sex,spnoFROM studentWHERE spno IN (080604,080605,080602)SELECT sno,sname,sex,birthdayFROM studentORDER BY birthday A
35、SCSELECT sno,sname,sex,birthday,dnoFROM studentORDER BY dno,birthday DESCSELECT sno,sname,sex,birthday,dno FROM studentORDER BY 5,4 DESCSELECT DISTINCT nativeFROM studentWHERE dno=610000SELECT sno AS 学号,sname AS 姓名,sex AS 性别 FROM student GoSELECT TOP 3 sno,score FROM student_course WHERE tcid=1 ORDE
36、R BY score DESCSELECT COUNT(*) AS 信工学院学生人数 FROM student WHERE dno=610000SELECT COUNT(*) AS 信工学院女学生人数 FROM student WHERE dno=610000 AND sex=女SELECT AVG(score) AS 平均分,MAX(score) AS 最高分,MIN(score) AS 最低分 FROM student_course WHERE tcid=1SELECT tcid AS 课程号, AVG(score) AS 平均分,MAX(score) AS 最高分,MIN(score)
37、AS 最低分 FROM student_course GROUP BY tcid ORDER BY AVG(score) DESC2. 连接查询SELECT sno,sname,sex,dname,spname FROM student AS st INNER JOIN department AS dt ON st.dno=dt.dno INNER JOIN speciality AS sp ON st.spno=sp.spnoSELECT sc.sno,sname,spname,scoreFROM student AS st,speciality AS sp,student_course A
38、S sc WHERE sc.tcid=1 AND sc.sno=st.sno AND st.spno=sp.spnoSELECT distinct sno FROM student_course WHERE id=1 or id=2SELECT sno FROM student_course WHERE tcid=1UNION SELECT sno FROM student_course WHERE tcid=2SELECT tno,tname, CAST(GETDATE()-birthday AS int)/365 AS age, professionFROM teacher AS tc,p
39、rofession AS pfWHERE (tc.pno=pf.pno AND profession=教授) OR (tc.pno=pf.pno AND profession=副教授 )SELECT tno,tname, CAST(GETDATE()-birthday AS int)/365 AS age, profession FROM teacher AS tc,profession AS pf WHERE tc.pno IN (SELECT pno FROM profession WHERE profession=教授 OR profession=副教授) AND tc.pno=pf.p
40、noSELECT DISTINCT st.sno,sname,dname FROM student AS st,department AS dp, student_course AS sc WHERE st.dno=dp.dno AND st.sno=sc.sno AND score60SELECT sno,sname,dname FROM student AS st,department AS dp WHERE st.sno IN (SELECT DISTINCT sno FROM student_course WHERE score60)AND st.dno=dp.dnoSELECT sc
41、.sno AS 学号,sname AS 姓名,COUNT(*) AS 没有及格的门数 FROM student_course AS sc,student AS st WHERE score60 AND st.sno=sc.sno GROUP BY sc.sno,snameSELECT sc.sno AS 学号,sname AS 姓名, ame AS 不及格课程 FROM student AS st,student_course AS sc,teacher_course AS tc,course AS crWHERE sc.score60 AND sc.sno=st.sno AND sc.tci
42、d=tc.tcid AND o=oSELECT sc.sno AS 学号,sname AS 姓名,COUNT(*) AS 没有及格的门数 FROM student_course AS sc,student AS st WHERE score1SELECT st.sno,st.sname,ame,sc.scoreFROM student AS st,course AS cs,student_course AS sc,teacher_course AS tcWHERE st.sno=sc.sno AND sc.tcid=tc.tcid AND o=oSELECT classno, COUNT(*)
43、 AS 人数FROM student AS st,speciality AS spWHERE sp.spname=计算机科学与技术 AND st.spno=sp.spnoGROUP BY classnoSELECT st.sno,sname,SUM(credit) AS 总学分FROM student AS st,student_course AS sc,course AS cs,teacher_course AS tc WHERE score60 AND st.sno=sc.sno AND sc.tcid=tc.tcid AND o=o GROUP BY st.sno,sname SELEC
44、T st.sno,sname,cname,score,credit FROM student AS st,student_course AS sc,course AS cs,teacher_course AS tcWHERE st.sno=sc.sno AND sc.tcid=tc.tcid AND o=o AND st.sname=李平3. 嵌套查询SELECT sno,sname,birthday FROM student WHERE dno = (SELECT dno FROM student WHERE sname = 李蓉)SELECT sc.sno,sname,score FROM
45、 student AS st,student_course AS sc WHERE sc.tcid IN (SELECT tcid FROM teacher_course WHERE cno=H61030006) AND score=(SELECT AVG(score) FROM student_course WHERE tcid IN (SELECT tcid FROM teacher_course WHERE cno=H61030006) AND st.sno=sc.snoSELECT top 3 with ties sc.sno AS 学号,st.sname AS 姓名 ,AVG(sco
46、re) AS 平均分 FROM student_course AS sc,student AS st WHERE sc.sno IN (SELECT sno FROM student WHERE dno=610000) AND sc.sno=st.sno GROUP BY sc.sno ,st.sname ORDER BY 平均分 DESCSELECT sno,sname FROM student WHERE EXISTS (SELECT * FROM student_course AS sc WHERE sc.sno=student.sno AND tcid=1) AND EXISTS (S
47、ELECT * FROM student_course AS sc WHERE sc.sno=student.sno AND tcid=2)SELECT sno,sname FROM student WHERE NOT EXISTS (SELECT * FROM student_course AS sc WHERE student.sno=sc.sno AND tcid=1)SELECT sno,sname FROM studentWHERE EXISTS(SELECT * FROM student_course AS sc WHERE student.sno=sc.sno AND tcid
48、IN (SELECT tcid FROM teacher_course AS tc WHERE o=(SELECT cno FROM course WHERE cname=数据结构)SELECT sno,snameFROM student AS st WHERE NOT EXISTS (SELECT * FROM student_course AS sc WHERE score80 AND st.sno=sc.sno) AND EXISTS (SELECT * FROM student_course WHERE st.sno=sno)SELECT DISTINCT st.sno,sname F
49、ROM student AS st,student_course AS sc WHERE st.sno=sc.sno AND sc.sno NOT IN (SELECT DISTINCT sno FROM student_course AS sc WHERE score80 )四、实验作业题1SELECT语句的基本使用(1)根据实验2给出的数据表的结构,查询每个职工的职工号、姓名、缺勤天数信息。(2)查询职工号为001的职工的姓名和缺勤天数。(3)查询所有姓“李”的职工的职工号、缺勤理由。(4)找出所有缺勤天数在23天之间的职工号。2SELECT语句的高级查询使用(1)查询缺勤名称为“病假”的
50、职工的职工号和姓名。(2)查找缺勤天数为2天的职工的职工号和缺勤名称。(3)查询“事假”的总人数。(4)求各缺勤类别的人数。(5)将各职工的考勤情况按缺勤天数由高到低排序。3. 尝试将教材中的作业在计算机上完成 需要先建立与作业相对应的数据库(或表),然后进行数据的插入,最后才能执行查询命令。实验五 视图一、目的与要求1掌握创建视图的SQL语句的用法。2掌握使用企业管管理器创建视图的方法。3掌握使用创建视图向导创建视图的方法。4掌握查看视图的系统存储过程的用法。5掌握修改视图的方法。二、实验准备1了解创建视图方法。2了解修改视图的SQL语句的语法格式。3了解视图更名的系统存储过程的用法。4了解
51、删除视图的SQL语句的用法。三、实验内容1. 创建视图(1)使用企业管理器创建视图WHERE student.dno=610000 AND student.spno=speciality.spnoSELECT * FROM ies_student_view(2) 使用SQL语句创建视图CREATE VIEW iec_teacher_view ASSELECT tno,tname,sex,birthday FROM teacher WHERE dno=610000WITH CHECK OPTIONSELECT * FROM iec_teacher_viewCREATE VIEW course1_
52、student_view(sno,sname,speciality,score) AS SELECT sc.sno,sname,spname,scoreFROM student AS st,speciality AS sp,student_course AS sc WHERE sc.tcid=1 AND sc.sno=st.sno AND st.spno=sp.spnoWITH CHECK OPTION SELECT * FROM course1_student_viewCREATE VIEW nopassdecr_student_view(学号,姓名,不及格课程) ASSELECT sc.s
53、no ,sname, o FROM student AS st,student_course AS sc,teacher_course AS tc WHERE sc.score=0 AND score=100。在查询分析器中检验上面所设置的检查约束,可执行下列SQL语句,观察结果。INSERT INTO student_course(sno,tcid,score) VALUES(02080001,2,110)(2)使用SQL语句设置检查约束ALTER TABLE student_courseADD CONSTRAINT CK_course - CK_course为新定义的检查约束名CHECK
54、(course BETWEEN 0 and 100)四、实验作业题1为YGKQ数据库中的JBQK表添加外键约束,要求如下:将缺勤类型设置为外键,其引用表为 QQLX,外键名称为fk_qqlx。实验七 数据控制一、目的与要求1掌握SQL Server的安全机制。2掌握服务器的安全性的管理。3掌握数据库用户的管理。4掌握权限的管理。二、实验准备1了解SQL Server的安全机制。2了解登录账号的创建、查看、禁止、删除方法。3了解更改、删除登录账号属性的方法。4了解数据库用户的创建、修改、删除方法。5了解数据库用户权限的设置方法。三、实验内容1创建以“Windows身份验证”方式访问SQL Ser
55、ver的登录账号和数据库用户设有一Windows用户,其计算机名为“daih”,用户名为“dihong”,密码为“123”,要求将该操作系统用户帐户添加为数据库STUDENT的用户“user1”。其操作步骤为:(1) 以操作系统管理员的身份登录Windows 2000/xp。(2) 在“控制面版”中创建一用户帐户“daihong”,密码为“123”。(3) 以系统管理员sa的身份启动SQL Server的查询分析器。(4) 将Windows的用户账户huxuhuai添加到SQL Server的登录帐号中sp_grantlogin daihdaihong -若计算机名不为daih,则需要替换该计算机名。Go注意:上述SQL Server的登录帐号只有成为某个数据库的用户时,才有对该数据库的访问权限。每个登录帐号在一个数据库中只能有一个用户与之对应。(5) 将SQL Server的登录帐号添加为数据库STUDENT的用户,其用户名为“user1”use studentgosp_grantd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国自动打磨机行业市场现状分析及竞争格局与投资发展研究报告(2024-2030版)
- 2024年中国搅拌臂市场调查研究报告
- 中国纳米铜行业运营现状及投资方向研究研究报告(2024-2030版)
- 中国粘胶短纤行业发展态势及供需趋势预测研究报告(2024-2030版)
- 中国空气格行业市场现状分析及竞争格局与投资发展研究报告(2024-2030版)
- 中国磁盘存储系统行业运行形势与应用前景预测研究报告(2024-2030版)
- 中国硫酸行业前景动态与发展方向预测研究报告(2024-2030版)
- 母亲节油画课程设计
- 化工制图课程设计致谢
- 城市污水管网课程设计
- GB/T 6974.3-2024起重机术语第3部分:塔式起重机
- 绵阳市高中2022级(2025届)高三第一次诊断性考试(一诊)数学试卷(含答案逐题解析)
- 绵阳市高中2022级(2025届)高三第一次诊断性考试(一诊)化学试卷
- 人教版八年级上册生物全册教案(完整版)教学设计含教学反思
- 棋牌室消防应急预案
- 福建省泉州市2023-2024学年高一上学期期末考试地理试题(解析版)
- 2024年学校中层干部考核细则样本(六篇)
- 2024年协商一致解除劳动合同范例(四篇)
- 医美机构转让合同模板
- 工程项目管理信息化方案
- 大学数学《概率论与数理统计》说课稿
评论
0/150
提交评论