数据库SQL上机实验报告.docx
《数据库SQL上机实验报告.docx》由会员分享,可在线阅读,更多相关《数据库SQL上机实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
数据库SQL上机实验报告
数据库上机实验报告
.实验目的
1.掌握企业管理器的基本使用方法
2.掌握查询分析器的使用方法
3.对数据库及其对象有一个基本了解
.实验过程及结果
1、启动服务管理器
选择“开始->程序->MicrosoftSQLSERVER”程序组中的“服务管理器”命令项,进入SQLSERVER服务管理器窗口
2、企业管理器
选择“开始->程序->MicrosoftSQLSERVER”程序组中的“企业管理器”命令项,进入SQLSERVER企业管理器窗口。
3、注册服务器
(1)展开控制台根目录,右键单击“SQLSERVER组”,在弹出的快捷菜单中选择“新建SQLSERVER注册”,打开注册服务器向导窗口。
(2)单击“下一步”按钮,打开选择服务器窗口。
选择或输入可用的服务器,然后单击“添加”按钮,将左边的服务器增加到右边的窗口中。
(3)单击“下一步”按钮,打开选择认证模式窗口。
我们选择“Windows身份验证”。
(4)单击“下一步”按钮,打开选择服务器组窗口。
在这里,采用默认设置。
(5)单击“下一步”按钮,打开连接注册服务器窗口。
单击“完成”按钮,完成服务器的注册。
4、查询分析器
(1、选择“开始->程序->MicrosoftSQLSERVER”程序组中的“查询分析器”命令项,进入SQLSERVER查询分析器窗口。
(2、打开企业管理器,选择菜单中“工具”选项,在弹出的快捷菜单中选择“SQLSERVER查询分析器”。
5.新建数据库表
6.数据表的建立
CreateTableStudent
Snochar(11)primarykey,
Snamechar(20),
Ssexchar
(2),
Sagesmallint,
Sdeptchar(20)
);
CreateTableCourse
Cnochar(4)primarykey,
Cnamechar(40),
Ccreditsmallint,
);
CreatetableSC
Snochar(11),
Cnochar(4),
Gradesmallint,
primarykey(Sno,Cno),
foreignkey(Sno)referencesS_40809010113(Sno),
foreignkey(Cno)referencesC_40809010113(Cno)
);
其中学生表S由学号Sno,姓名Sname,性别Sex,年龄Age,所在系Dept组成。
课程表C由课程号Cno,课程名Cname,学分Ccredit,教师名Tname组成。
选课表SC由学号Sno,课程号Cno,成绩Grade组成。
1.数据表的修改
AlterTableC_40809010113AddCTNAMECHAR(40);
2.数据表的删除
DropTableS_40809010113;(注:
由于表中有外键,所以需先删除表SC,才可删除表S)
3.数据表的索引及建立
CreateindexStuSnoOnS_40809010113(Sno);
4.视图的建立与删除
CreateViewIS_S
AS
SelectSno,Sname,Sage
FromS_40809010113
WhereSdept='IS'
●建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE)
CreateviewCSV
as
selectSno,Sname,Ssex,Sage
fromS_40809010113
whereSdept='计算机'
●查询1983年以后出生的计算机系学生基本信息。
Select*
fromS_40809010113
whereSage<(2010-1983);
●建立一个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。
CreateviewJSGV
as
SelectSC_40809010113.Sno,Cno,Grade
fromSC_40809010113,S_40809010113
whereSdept='计算机'andS_40809010113.Sno=SC_40809010113.Sno
●查询计算机系学生选课多于3门的学生学号。
SelectSno
fromSC_40809010113
groupbySno
HavingCount(*)>3;
7.数据操纵
(1)在学生表中插入一新生信息(‘200213808’,’HUJING’,’女’,22,’计算机’)
insert
intoS_40809010113
values('200213808','HUJING','女',22,'计算机');
(2)删除数据库中学号为’200213801’的退学学生有关信息。
Delete
fromS_40809010113
whereSno='200213801';
(3)将计算机系学生2号课成绩全部提高5%。
Update
SC_40809010113
setGrade=Grade+0.05*Grade
whereCno='0002'andSnoin(
selectSno
fromS_40809010113
whereSdept='计算机'
);
(4)统计有学生选修的课程门数。
SelectCount(Cno)
fromC_40809010113;
(5)统计HU老师所授每门课程的学生平均成绩。
SelectAVG(Grade)
fromSC_40809010113
whereCnoin(
selectCno
fromC_40809010113
whereTname='HU'
);
(6)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。
SelectCno,count(Sno)
fromSC_40809010113
groupbyCno
havingcount(Sno)>20
orderbycount(Sno)DESC,CnoASC;
8.查询数据SQL语句:
(1)检索计算机系女生的学号和姓名。
SelectSno,Sname
fromS_40809010113
whereSsex='女'andSdept='计算机';
(2)检索全体学生姓名、出生年份和所在系。
Select2010-SageSborn,Sname,Sage,Sdept
fromS_40809010113;
(3)检索未选修任何课程的学生学号。
SelectSno
fromS_40809010113
whereSnonotin
(selectsnofromSC_40809010113);
(4)检索所有姓LI同学的基本信息。
Select*
fromS_40809010113
whereSnamelike'LI%';
(5)检索选修‘DATABASE’课程的学生学号。
SelectSno
fromC_40809010113,SC_40809010113
whereC_40809010113.Cname='DATABASE'
andC_40809010113.Cno=SC_40809010113.Cno;
(6)检索年龄介于LIPING同学年龄和28岁之间的学生基本信息。
Select*
FromS_40809010113
WhereSage<28andSage>
(SelectSage
FromS_40809010113
WhereSname='LIPING');
(7)检索至少选修了一门TIAN老师所授课程的学生姓名、学号。
SelectdistinctS-40809010113.Sno
FromS_40809010113,C_40809010113,SC_40809010113
WhereC_40809010113.CnoIN(
SelectCno
FromC_40809010113
WhereC_40809010113.Tname='TIAN'
AndC_40809010113.Cno=SC_40809010113.Cno
AndS_40809010113.Sno=SC_40809010113.Sno;
9.使用企业管理器创建存储过程
在数据库中创建一个查询课程信息的存储过程
10.触发器
CreatetriggerSno
afterinsertonSC_40809010113
foreachrow
asbegin
if(GRADE<60)then
GRADE=61;
endif;
End
11.数据库还原