《管理数据库原理与开发》实验报告.doc

上传人:爱问知识人 文档编号:5017044 上传时间:2020-01-28 格式:DOC 页数:16 大小:143KB
返回 下载 相关 举报
《管理数据库原理与开发》实验报告.doc_第1页
第1页 / 共16页
《管理数据库原理与开发》实验报告.doc_第2页
第2页 / 共16页
《管理数据库原理与开发》实验报告.doc_第3页
第3页 / 共16页
《管理数据库原理与开发》实验报告.doc_第4页
第4页 / 共16页
《管理数据库原理与开发》实验报告.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《《管理数据库原理与开发》实验报告.doc》由会员分享,可在线阅读,更多相关《《管理数据库原理与开发》实验报告.doc(16页珍藏版)》请在三一文库上搜索。

1、管理数据库原理与开发实验报告 学号: 姓名: 学院: 经济管理学院专业: 信息管理与信息系统实验一:DDL语言实验目的:学会并熟练应用数据定义语言DDL,学习创建数据库,表,索引实验地点:生物楼805实验内容: 熟悉SQL Server SQL 即结构化查询语言,其特点是:综合统一,高度非过程化,面向集合的操作方式,以同一种语法结构提供多种使用方式,语言简单,易学易用。一, 定义模式Create schema authorization 例如:定义一个学生-课程模式S-Tcreate schema “s-t” authorization WANG;二, 删除模式Drop schema 三, 定

2、义基本表建立一个“学生”表studentCreate table student (sno char(9) primary key, Sname char(20) unique, Ssex char(2), Sage smallint, Sdept char(20) );命令完成后四, 修改基本表Alter tableadd 完整性约束drop alter column ;如:向student表增加“入学时间”列,其数据类型为日期型。 Alter table student add s_entrance date;五, 删除基本表 Drop table restrict/cascade;如:删

3、除学生表 Drop table student cascade六, 建立索引Create unique cluster index On ( , );Unique-索引值只对应唯一的数据记录Cluster-索引是聚簇索引 如:在student表的sname列上建立一个聚簇索引create cluster index stusname on student (sname)七, 删除索引 Drop index ;如:删除student表的stusname索引 Drop index stusname;实验心得:通过这次的实验,我熟悉了有关DDL的一系列操作,包括定义,修改,删除基本表。不过对修改基本

4、表的操作还不太熟悉,今后要多练习,加强这方面的基本功。实验二:数据查询实验目的:熟悉应用select语句。实验地点:生物楼805实验内容:一 单表查询1查询指定列例:查询全体学生的学号与姓名 Select sno,snameFrom student2 查询全部列例:查询全体学生的详细记录Select *From student = select sno,sname,ssex,sage,sdept From student3 查询经过计算的值例:查询全体学生的姓名及其出生年份Select sname,2004-sageFrom student二 选择表中的若干元组1 消除取值重复的行 可以用di

5、stinct 取消例:select distinct sno From sc 执行结果为:2 查询满足条件的元组可以通过where 子句实现(1)比较大小运算符包括:= = = != ! !例:查询所有年龄在20岁以下的学生姓名及其年龄Select sname,sageFrom studentWhere sage20 (2)确定范围用betweenand和not betweenand例:查询年龄在2030岁之间的学生姓名、系别和年龄Select sname,sdept,sage From studentWhere sage between 20 and 23 (3)确定集合用in 和not i

6、n例:select * from student where sdept in (cs,ma);(4)字符匹配用like 进行字符串的匹配例:查询学号为200215121的学生的详细情况Select * From studentWhere sno like 200215121例:查询所有姓刘的学生的姓名、学号和性别Select sname,sno,ssex From studentWhere sname like 刘%;(5)涉及空值的查询例:select * from student where sdept is null;(6)多重条件的查询逻辑运算符and和or可用来连接多个查询条件例:

7、select*from student where sdept=cs and sage24;三、order by 子句可以用order by 子句对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,缺省值为升序例:select * from sc where cno=3 order by grade desc;四:聚集函数(count sum avg max min)例:查询选课成绩小于该课程平均成绩的学生学号、课程及成绩select sno,cno,grade from sc scx where grade903.4.3 嵌套查询将一个查询块嵌入另一个查询块的where子句

8、或having短语的条件中的查询称为嵌套查询一, 带有in谓词的子查询 例:查询与刘晨在同一个系的学生Select sno,sname,sdept From studentWhere sdept in(select sdept From student Where sname=刘继平);二、带有比较运算符的子查询例:找出每个学生超过他选修课平均成绩的课程号Select sno,cnoFrom sc xWhere grade=(select avg(grade) From sc y Where y.sno=x.sno);三, 带有any(some)或all谓词的子查询例:查询其他系中比计算机科学

9、系某一学生年龄小的学生姓名和年龄Select sname,sage From studentWhere sageany(select sage From student Where sdept=cs) And sdept cs;四, 带有exists谓词的子查询带有exists 谓词的子查询不返还任何数据,只产生逻辑真值true或false其目标列表达式通常都用*例:查询所有选修了1号课程的学生姓名Select snameFrom studentWhere exists (select * From sc Where sno=student.sno and cno=1);例:查询选修了全部课程

10、的学生姓名Select snameFrom studentWhere not exists (select * from course Where not exists (select * from sc Where sno=student.sno And cno=o);3.4.4 集合查询集合操作主要包括并操作union、交操作intersect和差操作except例:查询计算机科学系的学生及年龄不大于19岁的学生Select *From studentWhere sdept=csUnion Select* from student Where sage =19;实验心得:通过几节课的学习和

11、练习,我逐渐掌握了select语句.select语句是数据库中很重要的一节内容,没掌握它就没掌握数据库。在学习过程中我也体会到它的灵活性和便捷性。实验三:数据更新,视图定义实验目的:学会更新3种操作:向表中添加若干行数据、修改表中的数据和删除表中的若干行数据。掌握对视图的定义,查询,删除及试图更新(增,删,改)实验地点:生物楼805实验内容: 插入数据一 插入元组 Insert Into(属性列) Values()例:将一个新学生元组(学号:200215128;姓名:陈东;性别:男;所在系:IS;年龄:18)插入到student表中。Insert Into student (sno,sname

12、,ssex,sdept,sage)Values(200215128,陈东,男,IS,18);二、插入子查询结果例:对每一个系,求学生的平均年龄,并把结果存入数据库-Create table Dept_age (sdept char(15) Avg_age smallint);Insert Into Dept_age(sdept,avg_age)Select sdept,avg(sage)From studentGroup by sdept; 修改数据Update Set =Where一 修改某一个元组的值例:将学生200215129的年龄改为22岁Update student Set sage

13、=22Where sno=200215129例:将数学成绩加10Update sc Set grade=grade+10Where 数学=(select cname from course where o=o) 删除数据一 删除某一个元组的值Delete Fromwhere;例:删除学号为200215128的学生记录Delect From studentWhere sno=200215128;二 删除多个元组的值例:删除所有的学生选课记录Delect From sc定义视图一 建立视图Create viewAswith check option例:建立信息系学生的视图Create view I

14、S_studentAsSelect sno,sname,sageFrom studentWhere sdept=IS;二 删除视图Drop viewcascade查询视图例:在信息系学生的视图中找出年龄小于22岁的学生Select sno,sage From IS_stduent Where sage22更新视图更新视图是指通过视图来插入(insert)、删除(delete)修改(update)数据。例:将信息系学生视图IS_student 中学号为200215122的学生姓名改为“刘辰”Update IS_studentSet sname=刘辰Where sno=200215122;实验心得

15、:数据更新让我们能够对于已有的数据进行修改,保证了数据库数据的时效性。其中包括插入,修改和删除。并不是很复杂。在视图部分的操作和对基本表的操作相似,承前启后,把两部分内容联系起来,学习就变得容易些。实验四:授权实验目的:掌握SQL中的grant语句和revoke语句,对用户和角色进行授权。实验地点:生物楼805实验内容:一、 grant 形式为:grantOnTowith grant option;(可以把相应权限或其子集传递授予给其他用户)例:把查询student表的权限授给用户zhangsanGrant selectOn table studentTo zhangsan 例:把对SC的所有

16、操作权利授给zhangsangrant all privileges on sc to zhangsan例:将修改sno,查询student 的权利授给zhangsangrant update(sno),select on student to zhangsan例:张三可以把相应权利授给他人grant insert on course to zhangsan with grant option二、 revoke例:把用户zhangsan对student的查询权限收回Revoke selectOn table studentFrom zhangsan;例:将zhangsan修改sno的权利收回r

17、evoke update (sno)on student from zhangsan实验心得:此节内容主要是讲述对具体用户的权限进行授权,以保证数据库的安全性。Grant语句和前面的语句也没有很大差别,我们可以根据具体需要给用户分配查询或修改权限,加上with grant option还可以将权限传给下一人。我们还可以用revoke from将权限收回。实验五:数据库完整性实验目的:通过具体操作使数据库满足实体完整性,参照完整性,以及用户自定义的完整性,还可用constraint对完整性约束命名。实验地点:生物楼805实验内容:一 实体完整性例:将course表中cno设为主码alter ta

18、ble course add constraint c1 primary key (cno)二 参照完整性例:定义sc中的参照完整性create table sc (sno char (9) 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);三 用户自定义完整性例:定义表中的ssex只允许取“男”或“女”。create table ye (sn

19、o char (9) primary key,sname char (8) not null,ssex char(2) check (ssex in(男,女),sage smallint,sdept char (20);四 完整性约束命名子句CONSTRAINT 完整性约束条件名PRIMARY KEY 短语、FOREIGN KEY 短语、CHECK 短语例:修改表中的完整性限制,要求学号在0999999999之间。alter table student add constraint c1 check (sno between 0and 999999999)例:修改表中的完整性限制,要求年龄在30岁以下。alter table student add constraint c2 check (sage30)实验心得:通过本节内容学习,我学会了运用primary key和foreign key来定义完整性约束。保证数据库的插入,删除正常。也学会了用constraint对完整性命名。但是还不能熟练运用constraint,以后还要多练习

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1