SQL语句大全 及实验内容.docx
- 文档编号:5980273
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:9
- 大小:20.42KB
SQL语句大全 及实验内容.docx
《SQL语句大全 及实验内容.docx》由会员分享,可在线阅读,更多相关《SQL语句大全 及实验内容.docx(9页珍藏版)》请在冰豆网上搜索。
SQL语句大全及实验内容
1、查询全体学生的学号和姓名。
selectSNO,SNfromS
2、查询全体学生的所有基本信息(仅针对Student表)。
select*fromS
3、对SC表查询全体学生的选课记录,在显示结果中为“Grade”列增加分。
selectSNO,CNO,SCORE+5asSCOREfromsc
4、查询全体学生的学号和姓名,将原来的英文列名设置中文别名。
SELECTSNOas学号,SNas姓名,SEXas性别,AGEas年龄,DEPTas系别fromS
5、显示所有选课学生的学号,去掉重复结果。
selectdistinctsnofromsc
6、查询成绩在分以上的学生选课记录。
select*fromscwherescore>80
7、查询计算机系所有学生的学号和姓名。
selectSNO,SNfromswhereDEPT='计算机'
8、查询成绩在~分的学生选课记录。
select*fromscwherescorebetween80and90
9、查询年龄不在~的学生记录。
select*fromSwhereagenotbetween20and30
10、查询所有姓“李”的学生记录。
select*fromSwheresnlike'李%'
11、查询无考试成绩(成绩为空值)的学号、课程号。
selectdistinctsnofromscwherescoreisnull
12、查询考试成绩非空值的学号、课程号。
selectsno,cnofromscwherescoreisnotnull
13、查询自动化系年龄小于岁的学生记录。
select*fromswheredept='自动化'andage<20
14、查询选修了“C1”或“C2”课程的选课记录。
select*fromscwherecno='C1'orcno='C2'
15、查询学生总人数。
selectCOUNT(*)froms
16、查询选修了课程的学生人数。
selectcount(distinctsno)fromscwherecnoisnotnull
17、查询选修了“c1”课程的学生的平均成绩。
selectAVG(score)fromscwherecno='C1'
18、查询学号为“s3”的学生的考试总成绩。
selectSUM(score)fromscwheresno='S3'
19、查询“c1”课程的最高分和最低分。
selectMAX(score),MIN(score)fromscwherecno='c1'
20、查询每门课程的选课人数。
selectCNO,COUNT(SNO)as人数fromscgroupbyCNO
21、查询每个学生的学号、选课数、平均成绩和总成绩。
selectsno,count(CNO),AVG(score),SUM(score)fromscgroupbySNO
22、查询选课数超过的学生学号及其选课数。
selectsno,COUNT(cno)fromscgroupbySNOhavingCOUNT(CNO)>2
23、查询所有学生信息,查询结果按年龄降序排列。
(针对Student表操作)
select*fromsorderbyAGEdesc
24、查询所有学生信息,查询结果按系名升序,同系学生按年龄降序排列。
select*fromSorderbyDEPTasc,AGEdesc
25、查询选课数超过的学生学号及其选课数,查询结果按选课数降序排列。
selectsno,COUNT(cno)fromscgroupbySNOhavingCOUNT(CNO)>2orderbyCOUNT(CNO)desc
实验数据库的多表查询
一、实验目的
继续熟练SQL-SELECT语句的使用;理解多表查询的概念;掌握多表连接查询中各个子句的用法,特别要比较内连接和外连接的结果。
掌握非相关子查询、相关子查询的用法,理解它们的执行过程;学会在SQLServer中用Exists实现交运算,用NotExists实现差运算。
二、实验环境
WindowsXP操作系统,SQLServer2005软件。
三、实验课时
2课时。
四、实验内容
(一)、在已建立的数据库和数据表的基础上,用Select语句的连接查询完成下列操作。
1、查询每个学生的基本信息及其选课情况。
select*fromS,SCwheres.sno=sc.sno
2、查询选修“C8”课程的学生学号、姓名和成绩。
selects.sno,s.sn,sc.scorefroms,scwheres.sno=sc.snoando='C8'
3、查询与“谢斌”在同一个系学习的学生记录。
select*fromswheredept=(selectdeptfromswheresn='谢斌')
4、查询与“刘莎莎”年龄相同的学生记录。
select*fromswhereage=(selectagefromswheresn='刘莎莎')
5、查询选修课程名为“数据库”的选课记录。
select*fromscwherecnoin(selectcnofromcwherecn='数据库')
6、查询选修课程名为“数据库”的学生记录。
select*fromswheresnoin(selectsnofromscwherecnoin(selectcnofromcwherecn='数据库'))
7、查询选修“c8”课程且成绩≥的学号、姓名和成绩。
selects.sno,s.sn,sc.scorefroms,scwheres.sno=sc.snoando='C8'andsc.score>=90
8、查询“谢斌”的所有选课记录。
select*fromscwheresno=(selectsnofromswheresn='谢斌')
9、查询计算机系学生选修的课程号,要求结果中去掉重复记录。
selectdistinctofroms,scwheres.sno=sc.snoands.dept='计算机'
selectdistinctcnofromscwheresnoin(selectsnofromswheredept='计算机')
10、查询计算机系选修课程数≥的学号、姓名及平均成绩,查询结果按平均成绩降序。
selectxs.XH,xs.XM,cj.KCH,cj.CJfromXSBasxsleftjoinCJBascjonxs.XH=cj.XH
selects.sno,s.sn,sc.scorefromsleftjoinscons.sno=sc.snowheres.dept='计算机'
selects.sno,s.sn,sc.scorefroms,scwheres.sno=sc.snoands.dept='计算机'groupby
selects.sno,s.sn,sc.scorefroms,scwheres.sno=sc.sno
selects.sno,s.sn,sc.scoreform
11、查询每个学生的学号、选修课程号、课程名及成绩。
12、查询所有学生的选修情况(包括选课和未选课的学生),要求显示学号、姓名、课程号和成绩。
(二)、在已建立的数据库和数据表的基础上,用Select语句的嵌套查询完成下列操作。
1、查询选修“”课程且成绩≥的学号、姓名。
2、查询“李平”的所有选课记录。
3、查询与“李平”在同一个系学习的学生记录。
4、查询与“李平”年龄相同的学生记录。
5、查询选修课程名为“数据库原理”的选课记录,输出结果包括学号和成绩。
6、查询选修课程名为“数据库原理”的学生记录,输出结果包括学号、姓名和所在系。
7、查询学号为“”学生的选修课程号和课程名。
8、查询没有选修“”课程的学生学号和姓名。
9、查询选修“”课程或“”课程的学生姓名。
10、查询选修“”课程和“”课程的学生学号。
11、查询选修“”课程但没选修“”课程的学生学号。
12、查询没有选修任何课程的学生记录,输出结果包括学号、姓名和所在系。
13、查询数学系学生选修的课程号,要求结果中去掉重复记录。
14、查询选修课程至少包含“”选修课程的学生学号。
实验数据库更新、视图定义及使用
一、实验目的
掌握Insert、Update、Delete语句的使用;对于Insert语句,要求理解默认值约束、空值约束在插入记录时所起的作用。
理解视图的概念,掌握CreateView、DropView语句的使用;掌握基于视图的查询语句的使用。
二、实验环境
WindowsXP操作系统,SQLServer2005软件。
三、实验课时
2课时。
四、实验内容
(一)、在已建立的数据库和数据表的基础上,向数据库中添加一个临时表ST,其结构比Student表结构多一个score字段。
用Insert语句向临时表输入数据,输入有误时用Update语句进行修改。
再用三个更新语句完成下列操作。
1、向Student表添加若干新记录,内容自定。
(观察已定义的表的约束情况)
2、向SC表添加新记录,内容自定,不低于条(注意不能违反参照完整性)。
3、为临时表ST添加记录。
4、把Student表的所有行一次性地加到临时表ST中。
5、在ST表中把所有学生的成绩加分。
6、在ST表中把所有学生的年龄增加。
7、在ST表中把“李平”的所在系改为“计算机”。
8、在ST表中将选修课程“数据库原理”的学生成绩加分。
9、在SC表中删除所有成绩为空值的选修记录。
10、删除计算机系选修成绩不及格的选课记录。
(二)、在已建立的数据库和数据表的基础上,完成下列操作。
1、建立数学系学生的视图MAST。
2、建立计算机系选修课程名为“数据库原理”的学生视图,视图名:
CSTVIEW,该视图中应包括属性列:
学号、姓名、成绩。
3、创建一个名为STSUMVIEW的视图,包括所有学生的学号和总成绩。
4、建立学生选课视图SCVIEW,包括所有学生的学号、姓名、课程号、课程名和成绩。
5、通过MAST视图查询学生基本信息。
6、通过SCVIEW查询成绩大于分的学生的学号和成绩。
7、查询计算机系选修课程名为“数据库原理”并且成绩大于分的学生的学号和成绩。
8、通过MAST视图将学号为“”学生的年龄修改为岁。
9、通过MAST视图将学号为“”学生所在系改为“经济”,是否能成功执行?
若不能成功请说明理由;若修改成功,请再次通过MAST视图查询学生基本信息,是否能查询到该生?
若不能查询请说明理由。
10、通过SCVIEW视图将学号为“”学生的总成绩修改为分,是否能成功执行?
若不能成功请说明理由。
实验数据库的安全与保护
一、实验目的
理解SQLServer的用户与权限管理机制,掌握用对象资源管理器创建服务器登录帐号,并同时建立用户。
掌握如何为给定的用户分配权限。
二、实验环境
WindowsXP操作系统,SQLServer2005软件。
三、实验课时
2课时。
四、实验内容
用户与权限管理
()打开“SQLServerManagementStudio”窗口,使用对象资源管理器创建两个服务器登录帐号Test1和Test2,并在“sample_st”数据库中创建两个对应的同名用户。
设置Test1用户和Test2用户的默认架构为guest。
()使用Test1身份登录,并为Test2分配创建数据表的权限;用Test2身份登录来验证权限分配成功。
()使用Test1身份登录,收回刚刚分配给Test2的创建数据表的权限;用Test2身份登录来验证权限回收成功。
五、实验步骤
1、使用对象资源管理器创建两个服务器登录帐号。
以系统管理员身份登录SQLServer。
打开“SQLServerManagementStudio”窗口,在对象资源管理器列表中,打开展开“安全性”文件夹,选择“登录名”图标,单击鼠标右键,在弹出的菜单中选择“新建登录名”。
在打开的对话框中依次建立Test1和Test2,选择“SQLServer身份验证”,同时还要输入密码,默认数据库为“sample_st”。
()在“用户映射”中列出了当前登录帐号可以选择访问的数据库如“sample_st”,在其左侧的复选框中打勾,表示当前登录帐号可以访问对应的数据库,默认用户名与登录帐号相同。
()单击“确定”按钮完成创建。
2、创建新的数据库用户。
在对象资源管理器中选中要访问操作的数据库,展开“安全性”文件夹,在“用户”文件夹中查找是否已建立与登录名Test1和Test2同名的数据库用户,若已建立,则在属性中修改其默认架构为guest;否则右击鼠标在菜单中选择“新建用户”选项,出现“数据库用户-新建”对话框,建立相应的用户。
最后,在sample_st数据库的“安全性架构guest属性权限”中,为test1和test2用户分配相应权限。
3、用Grant、Revoke命令实现对用户的授权和收权。
4、用Create命令创建数据表验证授权和收权是否成功。
5、以系统管理员身份登录SQLServer。
使用:
“GRANTSELECTONSCTOTest1WITHGRANTOPTION”命令,再分别以Test1和Test2身份登录,进行授权及查询数据表,验证“WITHGRANTOPTION”能否成功执行。
6、以系统管理员身份使用“REVOKE”命令回收上述授权。
实验数据库的完整性
一、实验目的
通过实验掌握数据库完整性概念,掌握利用SQLServer2005实现数据库完整性的基本方法和步骤。
二、实验环境
WindowsXP操作系统,SQLServer2005软件。
三、实验课时
2课时。
四、实验内容
1、建立关系模式。
完成教材P164第题,用SQL语言定义“职工”和“部门”两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),职工号为主码
部门(部门号,名称,经理名,电话),部门号为主码
要求在模式中完成以下完整性约束条件的定义:
()定义每个模式的主码;
()定义参照完整性;
()定义职工年龄不得超过岁;
()定义部门名称必须取值唯一。
2、验证完整性约束。
使用InsertValues语句向两个表中各插入~条记录,对下列内容进行验证。
()验证主键约束:
“职工”和“部门”两个表中是否能接受主码值相同的记录,通过实例验证。
()验证唯一约束:
“部门”表中是否能接受名称相同的两个不同记录?
为什么?
()验证检查约束:
“职工”表中能否接受年龄不满足条件的记录?
为什么?
()验证参照完整性:
若“部门”表中不存在部门号为“”的记录,是否能在“职工”表中插入部门号为“”的职工记录?
若删除“”部门的所有信息,正确的操作步骤是什么?
实验数据库设计实验
一、实验目的
通过实验掌握数据库设计的基本方法和步骤。
二、实验环境
WindowsXP操作系统,SQLServer2005软件。
三、实验课时
2课时。
四、实验内容
1、选定实验题目,为某个单位或部门设计数据库应用系统,比如:
学生成绩管理、机房上机管理、职工档案管理、商品库存管理、图书管理、工资管理等。
2、根据选定的题目进行需求分析,重点分析数据需求和功能需求。
3、概念结构设计:
画出E-R图。
4、逻辑结构设计:
设计数据库和数据表的具体结构,指出各表的属性名称、数据类型;说明各表的主码及表之间的关联情况;说明本设计是否已达到NF要求。
5、简要评价系统设计的优点和不足。
五、实验要求
1、提交设计报告,涵盖实验内容的全部信息,不低于字。
2、提交建立应用系统数据库的代码,所有数据表中的记录总数不低于条。
(请参照实验的附录建立数据库)
实验存储过程实验
一、实验目的
通过实验熟悉使用存储过程进行数据库应用程序设计的方法
二、实验环境
WindowsXP操作系统,SQLServer2005软件。
三、实验课时
2课时。
四、实验内容
对sample_st数据库,编写存储过程,完成下面功能
1、统计任意一门课程的平均成绩
2、统计所有课程的平均成绩
3、统计任意一门课程的成绩分布情况,即按照分数段统计人数(即<60、-69、-79、-89、以上)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL语句大全 及实验内容 SQL 语句 大全 实验 内容