《管理数据库原理与开发》实验报告.doc_第1页
《管理数据库原理与开发》实验报告.doc_第2页
《管理数据库原理与开发》实验报告.doc_第3页
《管理数据库原理与开发》实验报告.doc_第4页
《管理数据库原理与开发》实验报告.doc_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

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

文档简介

管理数据库原理与开发实验报告 学号: 姓名: 学院: 经济管理学院专业: 信息管理与信息系统实验一:ddl语言实验目的:学会并熟练应用数据定义语言ddl,学习创建数据库,表,索引实验地点:生物楼805实验内容: 熟悉sql server sql 即结构化查询语言,其特点是:综合统一,高度非过程化,面向集合的操作方式,以同一种语法结构提供多种使用方式,语言简单,易学易用。一, 定义模式create schema authorization 例如:定义一个学生-课程模式s-tcreate schema “s-t” authorization wang;二, 删除模式drop schema 三, 定义基本表建立一个“学生”表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;如:删除学生表 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的一系列操作,包括定义,修改,删除基本表。不过对修改基本表的操作还不太熟悉,今后要多练习,加强这方面的基本功。实验二:数据查询实验目的:熟悉应用select语句。实验地点:生物楼805实验内容:一 单表查询1查询指定列例:查询全体学生的学号与姓名 select sno,snamefrom student2 查询全部列例:查询全体学生的详细记录select *from student = select sno,sname,ssex,sage,sdept from student3 查询经过计算的值例:查询全体学生的姓名及其出生年份select sname,2004-sagefrom student二 选择表中的若干元组1 消除取值重复的行 可以用distinct 取消例: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 in例: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可用来连接多个查询条件例: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子句或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谓词的子查询例:查询其他系中比计算机科学系某一学生年龄小的学生姓名和年龄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);例:查询选修了全部课程的学生姓名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;实验心得:通过几节课的学习和练习,我逐渐掌握了select语句.select语句是数据库中很重要的一节内容,没掌握它就没掌握数据库。在学习过程中我也体会到它的灵活性和便捷性。实验三:数据更新,视图定义实验目的:学会更新3种操作:向表中添加若干行数据、修改表中的数据和删除表中的若干行数据。掌握对视图的定义,查询,删除及试图更新(增,删,改)实验地点:生物楼805实验内容: 插入数据一 插入元组 insert into(属性列) values()例:将一个新学生元组(学号:200215128;姓名:陈东;性别:男;所在系:is;年龄:18)插入到student表中。insert into student (sno,sname,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=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 is_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;实验心得:数据更新让我们能够对于已有的数据进行修改,保证了数据库数据的时效性。其中包括插入,修改和删除。并不是很复杂。在视图部分的操作和对基本表的操作相似,承前启后,把两部分内容联系起来,学习就变得容易些。实验四:授权实验目的:掌握sql中的grant语句和revoke语句,对用户和角色进行授权。实验地点:生物楼805实验内容:一、 grant 形式为:grantontowith grant option;(可以把相应权限或其子集传递授予给其他用户)例:把查询student表的权限授给用户zhangsangrant selecton table studentto zhangsan 例:把对sc的所有操作权利授给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的权利收回revoke update (sno)on student from zhangsan实验心得:此节内容主要是讲述对具体用户的权限进行授权,以保证数据库的安全性。grant语句和前面的语句也没有很大差别,我们可以根据具体需要给用户分配查询或修改权限,加上with grant option还可以将权限传给下一人。我们还可以用revoke from将权限收回。实验五:数据库完整性实验目的:通过具体操作使数据库满足实体完整性,参照完整性,以及用户自定义的完整性,还可用constraint对完整性约束命名。实验地点:生物楼805实验内容:一 实体完整性例:将course表中cno设为主码alter table 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 (sno 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 短语

温馨提示

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

最新文档

评论

0/150

提交评论