《数据库系统原理.doc》由会员分享,可在线阅读,更多相关《数据库系统原理.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流数据库系统原理.精品文档.数据库系统原理实验报告指导教师: 学生姓名: 学生学号:实验项目实验四实验五实验六实验七实验八实验成绩实验四 数据查询操作(一)SQL单表查询语句实验实验目的与要求:目的是熟练掌握开发环境的功能和使用方法,掌握在开发环境下SQL语言中数据操纵的语句,掌握程序下对表中数据的操作。实验内容:(说明:需写实验报告(1))select语句中各种查询条件的实验并写出查询结果。 例1 查询全体学生的学号与姓名。SELECT Sno,SnameFROM Student;查询结果为:例2 查询全体学生的姓名、学号、所在系。SELEC
2、T Sname,Sno,SdeptFROM Student;查询结果为:例3 查询全体学生的详细记录。SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student;或SELECT *FROM Student;查询结果为:例4 查全体学生的姓名及其出生年份。SELECT Sname,2000-SageFROM Student;查询结果为:例5 查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。SELECT Sname,Year of Birth: ,2000-Sage, LOWER(Sdept)FROM Student;查询结果为:实验五 数据查询操
3、作(二)SQL连接查询语句实验一、.实验目的与要求:标准SQL连接查询、嵌套查询,规则、形式较多,需要学生多记,多练,在练习中加强理解、记忆。二、.实验内容:(说明:需写实验报告(2))SQL连接查询、嵌套查询并写出查询结果。SQL中连接查询的主要类型 广义笛卡尔积、 等值连接(含自然连接)、非等值连接查询、自身连接查询、外连接查询、复合条件连接查询1、广义笛卡尔积 不带连接谓词的连接很少使用例: SELECT Student.* , SC.* FROM Student, SC查询结果为:2、等值与非等值连接查询 等值连接、自然连接、非等值连接例1 查询每个学生及其选修课程的情况。 SELEC
4、T Student.*,SC.*FROM Student,SCWHERE Student.Sno = SC.Sno;查询结果为:自然连接等值连接的一种特殊情况,把目标列中重复的属性列去掉。例2 对例32用自然连接完成。 SELECT Student.Sno,Sname,Ssex,Sage, Sdept,Cno,Grade FROM Student,SC WHERE Student.Sno = SC.Sno;结果为:3、自身连接 一个表与其自己进行连接,称为表的自身连接需要给表起别名以示区别由于所有属性名都是同名属性,因此必须使用别名前缀例3 查询每一门课的间接先修课(即先修课的先修课) SEL
5、ECT FIRST.Cno,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno = SECOND.Cno;查询结果为:4、外连接(Outer Join) 例 4 查询每个学生及其选修课程的情况包括没有选修课程的学生-用外连接操作SELECT Student.Sno,Sname,Ssex, Sage,Sdept,Cno,Grade FROM Student,SC WHERE Student.Sno = SC.Sno(*);查询结果为:在表名后面加外连接操作符(*)或(+)指定非主体表,非主体表有一“万能”的虚行,该行全部由空值
6、组成,虚行可以和主体表中所有不满足连接条件的元组进行连接,由于虚行各列全部是空值,因此与虚行连接的结果中,来自非主体表的属性值全部是空值 左外连接:外连接符出现在连接条件的左边 右外连接:外连接符出现在连接条件的右边 5、复合条件连接WHERE子句中含多个连接条件时,称为复合条件连接 例6 查询每个学生的学号、姓名、选修的课程名及成绩。 SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course WHERE Student.Sno = SC.Sno and SC.Cno = Course.Cno;查询结果为: 嵌套查询嵌套查询概述一个
7、SELECT-FROM-WHERE语句称为一个查询块将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询 SELECT Sname外层查询/父查询 FROM Student WHERE Sno IN (SELECT Sno 内层查询/子查询 FROM SCwhere Cno=2); 查询结果为:实验六 数据更新操作SQL数据更新语句实验一、实验目的与要求:目的是熟练掌握开发环境的功能和使用方法,掌握在开发环境下SQL语言中数据操纵的语句,掌握程序下对表中数据的操作。二、实验内容:(说明:需写实验报告(3))update、delete、insert 语句的练
8、习并写出结果。数据更新描述: 数据更新包括三种操作:1. 插入数据 2. 修改数据 3. 删除数据 1 . 插入数据两种插入数据方式:插入单个元组;插入子查询结果1). 插入单个元组语句格式INSERTINTO (,)VALUES ( , )功能 将新元组插入指定表中。例1 将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。 INSERT INTO Student VALUES (95020,陈冬,男,18,IS);结果为:例2 插入一条选课记录( 95020,1 )。 INSERT INTO SC(Sno,Cno) VALUES
9、( 95020 , 1 );新插入的记录在Grade列上取空值结果为:2). 插入子查询结果 例3 对每一个系,求学生的平均年龄,并把结果存入数据库。第一步:建表 CREATE TABLE Deptage (Sdept CHAR(15), /* 系名*/ Avgage SMALLINT); /*学生平均年龄*/结果为:第二步:插入数据 INSERT INTO Deptage(Sdept,Avgage) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;结果为:2. 修改数据1. 修改某一个元组的值例4 将学生95001的年龄改为22岁。 UP
10、DATE Student SET Sage=22 WHERE Sno= 95001 ;结果为:2. 修改多个元组的值例5 将所有学生的年龄增加1岁。 UPDATE Student SET Sage= Sage+1;结果为:3. 删除数据1. 删除某一个元组的值例8 删除学号为95019的学生记录。 DELETE FROM Student WHERE Sno=95019;结果为:2. 删除多个元组的值例9 删除2号课程的所有选课记录。 DELETE FROM SC; WHERE Cno=2;结果为:3. 带子查询的删除语句例11 删除计算机科学系所有学生的选课记录。 DELETE FROM SC
11、 WHERE CS= (SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);结果为:实验七 数据库的安全性和数据库完整性一、实验目的与要求:熟练掌握数据库的安全性和数据库完整性的功能和使用方法,掌握在开发环境下SQL语言中数据库的安全性和数据库完整性的语句操作。二、实验内容:(说明:需写实验报告(4))1数据库的安全性(1). 数据库的授权(GRANT)GRANT语句的一般格式: GRANT ,. ON TO ,. WITH GRANT OPTION;GRANT功能:将对指定操作对象的指定操作权限授予指定的用户。例1 把查询Student表权
12、限授给用户U1 GRANT SELECT ON TABLE Student TO U1;例2 把对Student表和Course表的全部权限授予用户U2和U3 GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;例3 把对表SC的查询权限授予所有用户 GRANT SELECT ON TABLE SC TO PUBLIC;例4 把查询Student表和修改学生学号的权限授给用户U4 GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;例5 把对表SC的INSERT权限授予U5用户,并允许他再
13、将此权限授予其他用户 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;执行例5后,U5不仅拥有了对表SC的INSERT权限, 还可以传播此权限: 例6 GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION; 同样,U6还可以将此权限授予U7: 例7 GRANT INSERT ON TABLE SC TO U7; 但U7不能再传播此权限。 U5- U6- U7(2)收回权限(REVOKE)REVOKE语句的一般格式为: REVOKE ,. ON FROM ,.;功能:从指定用户那里收回对指定对象的指定权
14、限例9 收回所有用户对表SC的查询权限REVOKE SELECT ON TABLE SC FROM PUBLIC; 例10 把用户U5对SC表的INSERT权限收回REVOKE INSERT ON TABLE SC FROM U5;2. 数据库完整性什么是数据库的完整性数据的正确性和相容性防止不合语义的数据进入数据库。例: 学生的年龄必须是整数,取值范围为14-29; 学生的性别只能是男或女; 学生的学号一定是唯一的; 学生所在的系必须是学校开设的系;完整性:是否真实地反映现实世界数据库的完整性分为实体完整性、 参照完整性、用户定义的完整性。例11将student表中在Sno属性定定义为码。
15、CREATE TABLE student ( Sno char(16) PRIMARY KEY, Sname char(10) NOT NULL, Ssex char(2), Sage SMALLINT, Sdept char(20)例11定义SC中的参照完整性。CREATE TABLE SC( Sno char(16) NOT NULL,Cno char(4) NOT NULL,Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY (Sno) REFERENCES student(Sno),FOREIGN KEY (Cno) REFERENCES C
16、ourse(Cno)实验八 数据库连接技术客户端访问数据库实验1、实验目的1. 学会利用ADO对象编写数据库访问程序2. 学会采用C/S模式开发数据库应用的方法1、 实验工具数据库系统为Sql Server2000,开发工具选择Visual Basic(Delphi、C# 或者Power Builder)等。3、实验内容系统结构说明:通常,一个数据库应用系统是由前后3部分组合而成的:前端程序、中间的数据库组件、后端的数据库。如图所示:目前多数的RAD工具都直接提供了数据库组件如VB中的ADO、VB.net中的ADO.net等,可以大大简化我们的开发工作。本次实验要求完成以下内容:1、 设计一个窗体,显示employee数据库中的person表中指定部门号的员工记录,其中部门号通过文本框输入。2、 设计一个窗体,实现部门表的维护,包括部门的浏览,添加,修改,删除和更新等。3、 设计一个应用程序,实现工资数据的查询(要求:通过指定员工姓名查询)、添加、删除和更新操作,工资数据的统计(要求:能够按部门统计,按时间统计,按员工姓名统计)。4、实验报告1、实验各项内容实现的过程。2、系统运行情况(系统运行的界面)3、实验结果分析。