数据库上机实验报告7807.docx
《数据库上机实验报告7807.docx》由会员分享,可在线阅读,更多相关《数据库上机实验报告7807.docx(11页珍藏版)》请在冰豆网上搜索。
数据库上机实验报告7807
辽宁科技大学
课程设计说明书
设计题目:
数据库设计实验
学院、系:
装备制作学院
专业班级:
09计算机1班
学生姓名:
卓越
指导教师:
白秋颖
成绩:
2012年10月10日
实验1常用工具的使用及数据库的创建和管理
实验目的:
1.掌握SQLserver的安装方法及其常用工具的使用方法
2.掌握SQLserver数据库的创建和管理
实验内容:
1.熟悉SQLserver常用工具。
2.使用企业管理器创建名为student的数据库,并设置数据库主文件名为syudent_data,大小为10MB;日志文件为student_log,大小为2MB.其他参数取默认值。
3.使用Transact—SQL语言创建一个student1数据库,主文件逻辑名为student1_data,物理文件名为student1.mdf,为10MB,增长速度为10%;数据库的日志文件逻辑名为syudent1_log,物理文件名为student1.ldf,初始化大小为1MB,最大尺寸为5MB,增长速度为1MB;文件存放路径为c:
\data文件夹下。
Createdatabasestudent1
Onprimry
(name=student1_data,
filename=c:
\data\student1.mdf,size=10,maxsize=unlimited,filegrowth=10%)
logon
(name=student1_log,filename=c:
\data\student1.ldf,size=1,maxsize=5,filegrowth=1)
4.用企业管理器,查看pubs数据库中authors表与employee表的数据信息。
5.用查询分析器中,查看pubs数据库中authors表的数据信息。
Usepubs
Go
Select*fromauthors
6.用企业管理器中,把student数据库备份与恢复。
7.把C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\data\student_data,student_log文件复制到自己U盘,然后再把该数据库文件恢复。
实验结果:
实验2表的创建与操作
实验目的:
1.掌握SQLserver表的创建与修改
2.掌握添加、修改表格数据
3.掌握索引的建立与主键、外键建立
实验内容:
1.在student数据库中创建一个名为pupil的表,要求:
(snochar(6)notnull,snamechar(10)notnull,ssexchar
(2)notnull,birthdaydatetimenotnull,politychar(20)),其中表中字段满足:
sno设置为主键,sname字段设置惟一性约束;
答:
createtablepupil
(snochar(6)notnullprimarykey,
snamechar(10)notnullunique,
ssexchar
(2)notnull,
birthdaydatetimenotnull,
politychar(20)
)
2.将pupil表的ssex和birthday设置检查性约束,要求ssex只能为‘男’或‘女’,birthday应该大于‘1987-1-1’,polity字段设置默认约束,值为‘群众’
答:
createtablecourse
(cnochar(6)notnull,
cnamechar(10)notnull,
teacherchar(10),
classchar(10)
)
3.在student数据库中创建一个名为course的表(cno,cname,teacher,class)。
,
4.创建一个学生选课表sc(snochar(6)notnull,cnochar(10)notnull,gradereal).将sc表创建外键约束,把sc表的sno和pupil表的sno关联起来,在这两个表之间创建一种制约关系。
答:
createtableSC
(snochar(9),
cnochar(4),
gradeamallint,primarykey(sno,cno),
foreignkey(sno)
feferencesstudent(sno)
);
5.利用insert语句向其中插入一条新的记录:
(‘0007’,‘张三’,‘男’,‘1982-3-21’,‘团员’,’计算机系’)
答:
insertintosc
values(‘0007’,‘张三’,‘男’,‘1982-3-21’,‘团员’,’计算机系’);
6.利用update语句将编号为‘0004’的学生polity改为‘党员’:
答:
updatesc
Setpolity=‘党员’
Wheresno=’0004’;
7.利用delete语句将‘1986-1-1’以后出生的女同学记录删除。
答:
Delete
Fromstudent
Where(ssex=’女’,birthday>‘1986-1-1’)
8.在pub数据库的authors表中,删除所有来自California州的作家。
答:
deleteauthors
Wherecity=’California’
9.将pub数据库的authors表中前10个作者的state列的数据更改为ZZ。
Usepubs
Go
Updateauthors
Setstate=’ZZ’from(SelectTOP10*fromauthorsorderbyau_lname)ast1
Whereauthors.au_id=t1.au_id
Go
通过from子句把Select结果当成一个新表,用别名来代替。
实验结果:
实验3数据的简单查询
实验目的:
1.掌握SELECT语句的基本语法
2.掌握子查询及orderby子句用法
3.掌握SELECT语句的统计函数的作用和使用方法
实验内容:
1.针对pupil表查询所有学生的基本信息,并按出生日期升序排列。
答:
Select*
Fromstudent
OrderbybirthdayDESC;
2.针对pupil表查询女同学的信息和女同学的人数。
答:
Select*,count(*)
Frompupil
Wheressexlike‘女’
3.在pupil表中查询所有男同学的年龄。
答:
Select2012-sage
Fromstudent
Wheressexlikenan
4.在pupil表中,
(1)查询‘刘’姓学生的信息;
(2)查询polity为’团员’或’党员’的学生信息。
答:
Select*
Fromstudent
Wheresnamelike刘
5.在sc表中,
(1)查询各门课程的选课人数;
(2)查询缺少成绩的学生的学号及课程号。
答:
Selectcon,count(sno)
Fromsc
Groupbycno;
6.查询与‘刘成’同一个系的学生情况。
答:
Select*
Fromstudent
Wheresnamelike刘成||
7.查询选修了课程名为‘MIS’的学生的学号和姓名
答:
Selectsno,sname
Fromstudent
Wherecno=’MIS’;
8.查询pubs数据库的Publishers表中居住在Boson或不住在Paris的出版商信息。
答:
select*
Frompubs
Wherecitynotlike‘Boson’
Union
Select*
Frompubs
Wherecitynotlike’Paris’;
9.查询pubs数据库的salers表中saleID为s01,s05,s07的销售人员的信息。
答:
select*
Fromsalers
WheresaleID=’s01’ANDsaleID=’s05’ANDsaleID=’s07’;
10.查询pubs数据库的authors表中作者居住的城市和州。
答:
selectcity,address
Fromauthors
11.在Northwind数据库的Products表中查询出价格在5-10元之间的产品信息。
答:
Select*
FromProducts
WherepriceBETWEEN5AND10;
12.在Northwind数据库的orders表中的数据,先按CustomerID的升序排列,当CustomerID相同时再按照SaleID的降序排列。
答:
select*
Fromorders
WhereORDER BYCustomerIDASC;
13.在Northwind数据库的Products表中,查询价格最高的6种商品。
实验4数据的高级查询
实验目的:
1.掌握表中数据的查询方法及操作方法
2.掌握连接查询与嵌套查询的方法
3.掌握SELECT语句的GROUPBY和COMPUTEBY子句使用方法
实验内容:
1.在student数据库中,分别用等值连接与自然连接查询计算机系选课的学生的所有信息。
答:
Selectstudent.*,sc.*
Fromstudent,sc
Wherestudent.sno=sc.sno;
自然连接
Selectstudent.sno,sname,ssex,sage,sdept,cno,crade
Fromstudent,sc
Whererstudent.sno=sc.sno;
2.针对pupil、sc、course三张表所有选课学生的姓名、选修课程名及成绩
答:
Selectstudent.sno,sname,cname,grade
Frompupil,sc,course
Wherestudent.sno=sc.snoando=o
3.在pupil、sc、course三张表中,查出不及格学生的姓名。
答:
Selectstudent.sno,,sname
Fromepupil,sc,course
Wherestudent.sno=sc.snoandsc.grade<60;
4.在Northwind数据库的OrderDetails表中,使用COMPUTE子句对所有订单订购产品数量进行明细汇总。
5.在Northwind数据库的OrderDetails表中,用COMPUTEBY子句按订单号汇总出OrderDetails表中每个订单订购产品的数量。
6.用UNION子句将Customers表中顾客ID、姓名及Salers表中销售人员的ID、姓名组合在一个结果集中。
答:
Selectsidsname
Fromcustomers
Union
Selectsidsname
Fromsalers
7.在Northwind数据库的Products表中显示所有价格高于平均价格的产品。
8.将Products表中的数据按CategoryID进行分组,然后分别统计每一组产品的平均价格及总库存。
9.在Northwind数据库的Products表中,对所有价格大于5元且组平均价格大于15元的价格表目,列出所有的产品的类型、平均价格及总库存。
10.查询比张三的所有成绩都高的学生的档案信息(嵌套查询)。
Selectsno(*
Fromsc
Wheresname=’张三’
结果
Selectsno,sname,sdept
Fromestudent
Wheresno>结果
11.查询显示来自某州的作家的全部作品和作家的代号(嵌套查询)。
Select*
Fromepupil
Wherezou=’’
结果
Selectzuopindaihao
FromcourseWherezou=结果;
补充:
在查询的基础上创建新表,例如:
将查询结果保存到新表temp_orders。
SELECT*INTOtemp_orders
FROMordersORDERBYCustomerID,SaleIDDESC
实验心得:
在老师和同学的帮助下,完成了此次实验。
使我对数据库系统概论知识有了更深的了解,将书本上的知识运用到实践当中。