数据库实验内容--答案

上传人:飞*** 文档编号:47746727 上传时间:2018-07-04 格式:PDF 页数:9 大小:10.99KB
返回 下载 相关 举报
数据库实验内容--答案_第1页
第1页 / 共9页
数据库实验内容--答案_第2页
第2页 / 共9页
数据库实验内容--答案_第3页
第3页 / 共9页
数据库实验内容--答案_第4页
第4页 / 共9页
数据库实验内容--答案_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数据库实验内容--答案》由会员分享,可在线阅读,更多相关《数据库实验内容--答案(9页珍藏版)》请在金锄头文库上搜索。

1、实验内容:实验一:数据库的操作使用 Management Studio 和 sql 语句分别完成以下操作:1.创建一个名为“SM”的数据库,数据文件初始大小为3MB,最大为 50MB,数据库自动增长,增长方式按10%;日志文件初始大小为2MB,数据大小不受限制,按1MB 增长。create database sm on ( name=smdata, filename=e:smdata.mdf, size=3, maxsize=50, filegrowth=10%) log on (name=smlog, filename=e:smlog.ldf, size=2, maxsize=unlimit

2、ed, filegrowth=1) 2.修改数据库“ SM” ,将数据文件名改成“sm_data”,初始大小改成5MB alter database sm modify file ( name=smdata, newname=sm_data, size=5) 3.分别查看数据库“SM” ,该数据库中的文件和文件组。execsp_helpfilesm execsp_helpfilegroupsm 4.删除数据库“ SM” 。drop database sm 实验二:创建表1. 在数据库 SM 中创建学生表student,课程表 course,选课表 sc student(sid,sno,clno

3、,sname,ssex,sage,sbir) 说明: sidint identity(1,1) 序号sno 为主关系键,为字符类型学号clno 字符类型,班级号sname 字符类型,并不为空ssex字符类型, check 的值的范围为男女sbir 日期类型出生日期sage int;usesm create table student ( sidint identity(1,1), sno char(10) constraint pk_st primary key, clno char(10), sname varchar(20) not null, ssex char(2) constrain

4、t ck_ssex check(ssex in(男 ,女 ), sbirdatetime, sageint ) course(cno,cname,ccredits,ctno,cpno,ctime) 说明: cno 字符类型,主关系键cname 字符类型,唯一键ccredits 学分,精确数值型,精确长度为2,小数位为1 ctno, cpno 字符类型ctime 整型create table course (cno char(4) constraint pk_c primary key, cname varchar(20) constaintuk_cname unique, ccredit de

5、cimal(2,1), ctno char(2), cpno char(4), ctimetinyint ) sc(sno,cno,score) 说明: sno+cno 为主键,并且sno 是 student 的外部键, cno 是 course 的外部键。score 精确数值型,精确长度为4,小数位为1 create table sc ( sno char(10) constraint fk_sno foreign key references student(sno), cno char(4) constriantfk_cno foreign key references course(c

6、no), score decimal(4,1), constraintpk_sc primary key(sno,cno) ) 2.使用 Management Studio 对数据库 SM 中的表插入数据实验三:表的维护1.用 sql 语句修改表course 的列属性 ,将 cname 的长度改为40,且不允许空alter table course drop constraint uk_cname alter table course alter column cname char(40) not null 2.用 sql 语句向表student 中增加列email,且要求输入的电子邮件地址必

7、须包括“ alter table student add email varchar(20) constraint ck_email check(email like %) 3.用 sql 语句删除表student 中的列 sbir alter table student drop column sbir 4.删除 sname 列上的约束。alter table student alter column sname varchar(20) null 5.删除表 student drop table student 实验四:简单数据查询在实验二的基础上,再在sm 数据库中新建表teacher,包

8、括如下数据项teacher(tno,tname,age,sal,dno) tno 为教职工编号,tname 姓名, age 年龄, sal 为月薪, dno 为部门号在 student,course,sc,teacher 四张表中进行下列查询1,查询所有0002 部门职工的信息;select * from teacher where dno=0002 2,查询 1984 年和 1985 年出生的女生的信息;select * from student where year(sbir) in(1984,1985) and ssex=女 3,查询 0001 部门、 0002 部门或 0003 部门的

9、职工信息;select * from teacher where dno in(0001,0002,0003) 4,查询学号为03004 的同学正在学习的课程;selectcno from sc where sno=03004 5,查询不姓王或李的同学的信息。select * from student where sname like 王李 % 6,查询有多少名学生的物理课成绩不及格;select count(sno) fromsc,course where o=o and cname= 物理 and score60 and o=o group by sno 实验五复杂查询(自连接和外连接不考

10、)1. 查询体育课成绩不及格的男生名单selectsname fromstudent,course,sc wherestudent.sno=sc.sno and o=o and cname=体育 and ssex=男 and score04001 and sage0 execsp_bindrule rule1,teacher.sal 实验九存储过程1.在学生表中,根据姓名查询并显示该同学的信息,否则显示“查无此人”(使用 if,else语句)create proc p2(sname varchar(20) -创建存储过程as if exists( select * from student w

11、here sname=sname) select * from student where sname=sname else print 查无此人 exec p2 刘燕 -执行存储过程2. 查看并显示选修指定课程的人数。create proc p3(cno char(4) as declare n int select n=count(sno) from sc where cno=cno print 有+convert(varchar(10),n)+ 个人选修这门课 exec p3 1001 3. 1+2+.+100(使用 while 语句)declare iint,s int set i=1

12、 set s=0 while (i=90 then 一等 when avg=80 then 二等 when avg=70 then 三等 else 补考 end exec p4 201320180305 实验十触发器s(sno,sname,ssex,sbirthday) c(cno,cname,credit,ctime,cnum) sc(sno,cno,score) 1.不允许向数据表s 添加数据create trigger tr1 on s for insert as print 任何人不得添加数据 rollback create trigger tr1 on s instead of in

13、sert as select * from s 2.不允许修改数据表s 中李四的数据inserted 表格中保存了即将被添加的记录行,结构与原表相同deleted 表格中保存即将被删除的记录行,结构与原表相同修改数据相当于删除旧记录添加新记录create trigger tr2 on s for update as if exists(select * from deleted where sname=李四 ) rollback 3.删除学生信息的同时删除该生的选课信息create trigger tr3 on s for delete as delete from sc wheresno i

14、n (select sno from deleted) 4.每添加一条选课记录,课程表中相应课程的选修人数加1 * create trigger tr4 onsc for insert as update c set cnum=cnum+1 o = (select cno from inserted) 5. 每当添加、删除、修改s 表中数据 ,相应班级人数进行更新* s(sno,sname,ssex,sbirthday,clno) class(clno,cnum)- 班级表(班级号,班级人数) create trigger tr5 on s forinsert,delete,update as update class set cnum=cnum+1 whereclass.clno=(select clno from inserted) update class set cnum=cnum-1 whereclass.clno=(select clno from deleted) 备注:查找的具体数据可以根据你所创建的具体表做相应调整

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号