数据库系统原理.doc_第1页
数据库系统原理.doc_第2页
数据库系统原理.doc_第3页
数据库系统原理.doc_第4页
数据库系统原理.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统原理实验报告指导教师: 学生姓名: 学生学号:实验项目实验四实验五实验六实验七实验八实验成绩实验四 数据查询操作(一)SQL单表查询语句实验实验目的与要求:目的是熟练掌握开发环境的功能和使用方法,掌握在开发环境下SQL语言中数据操纵的语句,掌握程序下对表中数据的操作。实验内容:(说明:需写实验报告(1))select语句中各种查询条件的实验并写出查询结果。 例1 查询全体学生的学号与姓名。SELECT Sno,SnameFROM Student;查询结果为:例2 查询全体学生的姓名、学号、所在系。SELECT 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;查询结果为:实验五 数据查询操作(二)SQL连接查询语句实验一、.实验目的与要求:标准SQL连接查询、嵌套查询,规则、形式较多,需要学生多记,多练,在练习中加强理解、记忆。二、.实验内容:(说明:需写实验报告(2))SQL连接查询、嵌套查询并写出查询结果。SQL中连接查询的主要类型 广义笛卡尔积、 等值连接(含自然连接)、非等值连接查询、自身连接查询、外连接查询、复合条件连接查询1、广义笛卡尔积 不带连接谓词的连接很少使用例: SELECT Student.* , SC.* FROM Student, SC查询结果为: 2、等值与非等值连接查询 等值连接、自然连接、非等值连接例1 查询每个学生及其选修课程的情况。 SELECT 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 查询每一门课的间接先修课(即先修课的先修课) SELECT 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(*);查询结果为: 在表名后面加外连接操作符(*)或(+)指定非主体表,非主体表有一“万能”的虚行,该行全部由空值组成,虚行可以和主体表中所有不满足连接条件的元组进行连接,由于虚行各列全部是空值,因此与虚行连接的结果中,来自非主体表的属性值全部是空值 左外连接:外连接符出现在连接条件的左边 右外连接:外连接符出现在连接条件的右边 5、复合条件连接WHERE子句中含多个连接条件时,称为复合条件连接 例6 查询每个学生的学号、姓名、选修的课程名及成绩。 SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course WHERE Student.Sno = SC.Sno and SC.Cno = Course.Cno;查询结果为: 嵌套查询嵌套查询概述一个SELECT-FROM-WHERE语句称为一个查询块将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询 SELECT Sname外层查询/父查询 FROM Student WHERE Sno IN (SELECT Sno 内层查询/子查询 FROM SCwhere Cno=2); 查询结果为: 实验六 数据更新操作SQL数据更新语句实验一、实验目的与要求:目的是熟练掌握开发环境的功能和使用方法,掌握在开发环境下SQL语言中数据操纵的语句,掌握程序下对表中数据的操作。二、实验内容:(说明:需写实验报告(3))update、delete、insert 语句的练习并写出结果。数据更新描述: 数据更新包括三种操作: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 ( 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岁。 UPDATE 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 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表权限授给用户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用户,并允许他再将此权限授予其他用户 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 ,.;功能:从指定用户那里收回对指定对象的指定权限例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属性定定义为码。 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 Course(Cno);实验八 数据库连接技术客户端访问数据库实验1、实验目的1. 学会利用ADO对象编写数据库访问程序2. 学会采用C/S模式开发数据库应用的方法1、 实验工具数据库系统为Sql Server2000,开发工具选择Visual Basic(Delphi、C# 或者Power Builder)等。3、实验内容系统结构说明:通常,一个数据库应用系统是由前后3部分组合而成的:前端程序、中间的数据库组件、后端的数据库。如图所示:前端程序(VB)中间的数据库组件(ADO)后端的数据库(SQL Server 2000)目前多数的RAD工具都直接提供了数据库组件如VB中的ADO、VB.net中的ADO.net等,可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论