实验五答案SQL语句查询

合集下载

3数据库查询实验(1)

3数据库查询实验(1)

实验三数据库查询实验(1)数据库的简单查询和连接查询实验课时安排:2课时一、实验目的和要求使学生掌握SQL Server查询分析器的使用方法.加深对SQL和Transact-SQL语言的查询语句的理解。

熟练掌握简单表的数据查询、数据排序和数据联结查询的操作方法。

二、实验内容1 简单查询操作该实验包括投影、选择条件表达、数据排序、使用临时表等。

2 连接查询操作该实验包括等值连接、自然连接、求笛卡尔积、一般连接、外连接、内连接、左连接、右连接和自连接等。

三、实验方法1 将查询需求用Transact-SQL语言表示。

2 在SQL Server查询分析器的输入区中Transact-SQL查询语句。

3 设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。

4 发布执行命令,查看查询结果.如果结果不正确,进行修改.直到正确为止。

5 查询分析器及使用方法。

查询分析器是在开发数据库应用系统时使用最多的工具。

查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储).查询分析功能主要通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。

在查询生成器中的左边窗口是对象测览器,其中按树结构列出了数据库对象;右上方是SQL代码区域.用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果、对于T-SQL语句的执行结果,在结果区中可以有4种不同的输出形式:标准执行将结果直接显示在结果区网格执行将结果以表格形式显示在结果区.计划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。

上述输出形式,可以通过菜单或按钮选择。

四、实验步骤1 基本操作实验(1)简单查询实验l)用Transact-SQL语句表示下列操作.在学生选课库中实现其数据查询操作.①求数学系学生的学号和姓名。

存储过程和触发器(数据库实验5)

存储过程和触发器(数据库实验5)

数据库基础与实践实验报告实验五存储过程和触发器班级:惠普测试142学号:**********姓名:***日期:2016-11-141 实验目的:1)掌握SQL进行存储过程创建和调用的方法;2)掌握SQL进行触发器定义的方法,理解触发器的工作原理;3)掌握触发器禁用和重新启用的方法。

2 实验平台:操作系统:Windows xp。

实验环境:SQL Server 2000以上版本。

3 实验内容与步骤利用实验一创建的sch_id数据库完成下列实验内容。

1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。

存储过程定义代码:CREATE PROCEDURE JSXX_PROCASSELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND o=o存储过程执行语句与执行结果截图:EXECUTE JSXX_PROC2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。

存储过程定义代码:CREATE PROCEDURE XM_PROC @sname VARCHAR(100)ASBEGINIF EXISTS(SELECT NULL FROM S WHERE sn=@sname)SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE o=o AND SC.sno=S.sno ANDS.sn=@snameELSEPRINT'无该姓名的同学。

'END运行截图:3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业),统计并显示该专业各年龄段男、女生人数。

如果没有该专业,则显示“无此专业”。

存储过程定义代码:CREATE PROCEDURE XBNL_PROC@departName VARCHAR(30)='计算机',@begin INT,@end INTASDECLARE @numOfBoys INTDECLARE @numOfGirls INTDECLARE @d# VARCHAR(3)DECLARE @result VARCHAR(50)BEGINSELECT @d# = dno FROM D WHERE dn=@departNameIF @d# IS NOT NULLBEGINSELECT @numOfBoys =COUNT(sno)FROM S WHERE age BETWEEN @begin AND @end AND dno=@d# AND sex='男'SELECT@numOfGirls =COUNT(sno)FROM S WHERE age BETWEEN@begin AND@end AND dno=@d# AND sex='女'SET @result = @departName+'专业年龄在'+CAST(@begin AS VARCHAR(3))+'-'+CAST(@end AS VARCHAR(3))+'之间的男生有'+CAST(@numOfBoys AS VARCHAR(3))+'人,'+'女生有'+CAST(@numOfGirls AS VARCHAR(3))+'人'ENDELSESET @result='无此专业。

《金仓数据库应用技术》实验操作手...

《金仓数据库应用技术》实验操作手...

《金仓数据库应用技术》实验操作手册北京人大金仓信息技术股份有限公司电话*************版本号:V1.2目录实验(一):KingbaseES数据库的安装配置及启动停止 4 任务1:图形界面方式安装 4任务2:命令行方式安装 5任务3:启动和停止数据库服务 6任务4:展示KingbaseES数据库主要功能组件8实验(二):SQL语句方式与图形界面方式的创建实现12任务1:SAM数据库创建13任务2:SAM数据库中创建SCOT模式13任务3:表的创建14任务4:利用SQL语句向以上各表中插入数据16实验(三):数据备份与数据还原19任务1:KingbaseES数据库的数据备份(图形界面方式) 19 任务2:KingbaseES数据库的数据备份(命令行方式) 23 任务3:KingbaseES数据库还原(图形界面方式) 23任务4:KingbaseES数据库还原(命令行方式) 24实验(四):表空间扩展实验 24任务1:准备工作(问题出现) 25任务2:解决方案一(增加数据文件) 25任务3:解决方案二(增加数据文件的大小) 26实验(五):SQL语句的查询实现 26任务1:利用SQL语句进行单表查询27任务2:利用SQL语句进行多表查询27任务3:利用SQL语句进行子查询28任务4:分页查询29任务5:查询强化训练30实验(六):权限授予与权限传播34任务1:授权与回收34实验(七):用户权限管理案例37任务1:用户对表的操作权限。

37任务2:用户权限的级联回收。

38思考题(01):一个用户同时具有几个用户授予的权限,但其中一个用户回收它的权限,它是否仍然具有其它用户授予的权限? 40思考题(02):权限的授予是否会产生循环授权? 40实验(八):角色权限管理案例40任务1:一个用户含有多个角色,只有当前角色生效。

41任务2:角色的级联回收。

42任务3:角色的授予不会产生循环授权。

43实验(九):数据的完整性44任务1. 实体完整性44任务2. 参照完整性。

SQL数据库实验报告 (1)

SQL数据库实验报告  (1)

资源与环境科学学院实验报告一、上机实习名称:SQL Server的安装及数据库的建立二、实验目的:1、通过对某个商用数据库管理系统的使用,了解DBMS的工作原理和系统构架。

2、熟悉对DBMS的操作3、熟悉如何使用SSMS和SQL建立数据库和表,并加深对于完整性的理解。

三、实验内容:1、根据安装文件的说明安装数据库管理系统。

2、学会启动和停止数据库服务,思考可以用哪些方式来完成启动和停止。

3、掌握管理工具的使用(1)SQL Server Management Studio的使用➢连接服务器的方法➢查询分析器的使用(2)配置管理器的使用4、了解数据库系统的逻辑组件:它们主要是数据库对象,包括基本表、视图、触发器、存储过程、约束等。

今后将学习如何操作这些数据库对象。

5.在SSMS中创建数据库和表四、实验步骤1. SQL Server 2008的体系结构和特点介绍SQL Server 是一个关系数据库管理系统。

由微软公司2008年第三季度正式发布, SQL Server 2008是一个重大的产品版本,在安全性、可用性、易管理性、可扩展性、商业智能等方面有了更多的改进和提高,对企业的数据存储和应用需求提供了更强大的支持和便利,使得它成为迄今为止最强大和最全面的SQL Server版本。

SQL Server 2008 版本体系:根据不同的用户类型和使用需求,微软公司推出了5种不同的SQL Server版本,包括企业版(Enterprise)、标准版(Standard)、工作组版(Workgroup)、学习版(Express)和移动版(Compact)Microsoft SQL Server 2008系统由4个主要部分组成。

这4个部分被称为4个服务,这些服务分别是数据库引擎、分析服务、报表服务和集成服务。

2. SQL Server管理工作室的启动打开windows控制面板—管理—服务,启动SQL Server 服务,如下图(1)开始→程序→Microsoft SQL Server 2008→SQL Server Management Studio(如图1.1所示)。

SQL实验二:数据库查询实验报告

SQL实验二:数据库查询实验报告

实验二数据库的查询实验实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。

(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

实验内容和原理在实验一定义的“学生成绩数据库”中,使用T-SQL 语句完成以下查询:(1 )求计算机系学生的学号和姓名。

(2)求选修了数学的学生学号、姓名和成绩。

(3)求选修01 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

(4)查找选修课程的平均成绩位于前三名的学生的学号。

(5)查询计算机系的姓刘且单名的学生的信息。

(6)查询至少选修两门课程的学生学号。

(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。

(8)查询选修“数据库”课程,且成绩在80 分以上的学生的学号和成绩。

(9)查询所有姓“王”的同学没有选修的课程名。

(请分别用exists和in完成该查询) (10)查询选修了全部课程的学生的姓名。

(请至少写出两种查询语句)(11)求选修了学生“ 95001”所选修的全部课程的学生学号和姓名。

(12)查询每一门课的间接先修课。

(13)列出所有学生所有可能的选课情况。

(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。

(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。

(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。

(17)对被两名以上学生所选修的课程统计每门课的选课人数。

要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。

(18)列出选修课程超过 3 门的学生姓名及选修门数。

(19)检索至少选修课程号为01 和03 的学生姓名。

(20)检索至少选修课程“数学”和“操作系统”的学生学号。

(21 )查询‘操作系统'课程的最高分的学生的姓名、性别、所在系(22)查询数据结构的成绩低于操作系统的成绩的学生姓名及该生的这两门课的成绩(23)所有成绩都在70 分以上的学生姓名及所在系。

数据库实验1:SQL查询操作

数据库实验1:SQL查询操作

数据库实验1:SQL查询操作题目:设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)。

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。

工程项目表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。

今有若干数据如下:S表:SNO SNAME STATUS CITYS1 精益20 天津S2 盛锡10 北京S3 东方红30 北京S4 丰盛泰20 天津S5 为民30 上海P表:PNO PNAME COLOR WEIGHTP1 螺母红12P2 螺栓绿17P3 螺丝刀蓝14P4 螺丝刀红14P5 凸轮蓝40P6 齿轮红30J表:JNO JNAME CITY J1 三建北京J2 一汽长春J3 弹簧厂天津J4 造船厂天津J5 机车厂唐山J6 无线电厂常州J7 半导体厂南京SPJ表:SNO PNO JNO QTY S1 P1 J1 200S1 P1 J3 100S1 P1 J4 700S1 P2 J2 100S2 P3 J1 400S2 P3 J2 200S2 P3 J4 500S2 P3 J5 400S2 P5 J1 400S2 P5 J2 100S3 P1 J1 200S3 P3 J1 200S4 P5 J1 100S4 P6 J3 300S4 P6 J4 200S5 P2 J4 100S5 P3 J1 200S5 P6 J2 200S5 P6 J4 500首先进行创建数据库、表,插入数据等操作。

数据查询实验报告总结

数据查询实验报告总结

数据查询实验报告总结一、引言数据查询是信息技术领域中一项重要的技术,通过查询可以快速获取所需的数据,帮助人们做出准确的决策。

为了加深对数据查询的理解,我们进行了一系列的实验研究。

本报告旨在总结实验过程、结果和收获,并提出一些建议和展望。

二、实验内容本次实验我们采用了关系数据库查询语言SQL(Structured Query Language)来进行数据查询的实践。

具体实验内容如下:1. 数据库建立与数据录入:我们首先设计并建立了一个关系数据库,并录入了1000条实验数据,包括姓名、年龄、性别、身高、体重等信息。

2. SQL基本查询:我们通过使用SQL语句实现了一些基本的数据查询操作,如SELECT、FROM、WHERE、ORDER BY等关键词的使用,掌握了基本的查询语法和操作。

3. 条件查询:我们进一步学习了SQL的条件查询,通过使用WHERE子句结合比较运算符、逻辑运算符和通配符,能够根据特定条件查询出需要的数据。

4. 聚合查询:我们学习了SQL的聚合函数,如SUM、AVG、COUNT等,从而能够进行数据的统计和计算。

5. 多表查询:我们探索了SQL的多表查询,通过JOIN操作和关联条件,实现了多个表之间的数据连接和查询。

三、实验结果通过上述实验,我们获得了以下结果:1. 数据库建立与数据录入:我们成功建立了一个包含1000条记录的数据库,并录入了实验所需的数据。

2. SQL基本查询:我们能够使用基本的SQL语句实现数据查询,如SELECT语句用于选取需要的列,FROM语句用于指定表,WHERE 语句用于设定条件,ORDER BY语句用于排序等。

3. 条件查询:通过使用WHERE子句和运算符,我们可以根据不同的条件查询出满足要求的数据,提高了查询的精确性和效率。

4. 聚合查询:我们可以使用聚合函数对数据进行统计和计算,比如求和、平均值、总数等,实现了对数据的快速分析和汇总。

5. 多表查询:通过使用JOIN操作,我们可以将多个表连接起来进行联合查询,从而获得更丰富的信息和更全面的分析结果。

实验五 安全性

实验五 安全性

任务2 操作步骤
1、启动SQL Server Management Studio,在“对象资源管理器”窗 口中选择服务器,展开”数据库︱学生课程︱安全性︱用户“,右击 用户名”Susan”,在弹出的快捷菜单中选择“属性”命令,如左图所 示。打开“数据库用户Susan”对话框,选择“安全对象”页,单击 “添加”按钮,如右图所示。
知识说明
登录 1) 登录是账户标识符,用于连接到SQL SERVER 2005账户都称为登录。其作 用是用来控制对SQL Server 2005的访问权限。SQL Server 2005只有在首 先验证了指定的登录账号有效后,才完成连接。但登录账号没有使用数据库 的权力,即SQL Server 2005登录成功并不意味着用户已经可以访问SQL Server 2005上的数据库。 2) SQL Server 2005的登录账户相应有两种:SQL 账户和Windows账户 例如,添加 Windows登录帐户 EXEC sp_grantlogin ‘training\S26301’ --域名\用户名 添加 SQL登录帐户 EXEC sp_addlogin ‘zhangsan’, ‘1234’ --用户名,密码 3) SQL Server 2005中有两个默认的登录账户:BUILTIN\Administrators和sa。 BUILTIN\Administrators提供了对所有Windows 2005管理员的登录权限,并 且具有在所有数据库中的所有权限。系统管理员(sa)是一个特殊的登录账户, 只有在SQL Server 2005使用混合验证模式时有效,它也具有在所有数据库 中的所有权限。
知识说明
用户 1)在数据库内,对象的全部权限和所有权由用户账户控制。 2)在安装SQL Server后,默认数据库中包含两个用户:dbo和guest, 即系统内置的数据库用户 dbo代表数据库的拥有者(database owner)。每个数据库都有dbo 用户,创建数据库的用户是该数据库的dbo,系统管理员也自动被映 射成dbo。 3)guest用户帐号在安装完SQL Server系统后被自动被加入到master、 pubs、tempdb、和northwind数据库中,且不能被删除。用户自己 创建的数据库默认情况下不会自动加入guest帐号,但可以手工创建。 guest用户也可以像其他用户一样设置权限。当一个数据库具有 guest用户帐号时,允许没有用户帐号的登录者访问该数据库。所以 guest帐号的设立方便了用户的使用,但如使用不当也可能成为系统 安全隐患。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、列出所有不姓刘的所有学生
select sname,sno
from student
where sname not like'刘%'
2、列出姓“沈“且全名为3个汉字的学生
select sname
from student
where sname like'沈____'
3、显示在1985年以后出生的基本信息
select sno学号,sname姓名,出生年份=year(getdate())-sage
from student
where year(GETDATE())>1985
4、按照“性别、学号、姓名、年龄、院系“的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男生,性别为女显示为女生,其它显示为”条件不明“
select ssex=
case
when ssex='男'then'男生'
when ssex='女'then'女生'
else'情况不明'
end,sno,sname,sage,sdept
from student
5、查询出课程名含有‘数据‘字串的所有课程基本信息
select sno,o,cname,grade,ccredit
from sc,course
where cname like'数据%'and o=o
6、显示学号第八位或者第九位是1、2、3、4或9的学生的学号、姓名、性别、年龄、及院系select sno,sname,ssex,sage,sdept
from student
where sno like'2005150[1-4]%'or sno like'2005150[0-9][1-4]'
or sno like'20051509%'or sno like'2005150[0-9]9'
7、列出选修了‘1‘课程的学生,按成绩的降序排列
select student.sno,sname,grade
from student,sc
where Cno='1'
order by Grade desc
8、列出同时选修‘1‘号课程和’2‘号课程的所有学生的学号
select sno,Cno
from sc
where cno=1 or cno=2
9、列出课程表中全部信息,按先选修课的升序排列
select*
from course
order by cpno asc
10、列出年龄超过平均值的所有学生名单,按年龄的降序显示
select sno,sname
from student
where sage>(select AVG(sage)from student)
order by sage desc
11、按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为“学号、姓名、性别、出生年份、院系“
select sno学号,sname姓名,ssex性别,出生年份=year(GETDATE())-sage,sdept 院系
from student
order by YEAR(GETDATE())-sage asc
12、按照院系降序显示所有学生的“院系、学号、姓名、性别、年龄“等信息,其中院系按照以下规定显示:院系为CS显示为计算机,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明
select sno,sname,ssex,sage,sdept=
case
when sdept='CS'then'计算机系'
when sdept='IS'then'信息系'
when sdept='MA'then'数学系'
when sdept='EN'then'外语系'
when sdept='CM'then'西医系'
when sdept not in('CS','IS','MA','EN','CM')then'院系不明'
end
from student
13、显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模“,其中若该院系人数>=5则该字段值为”规模很大“,若该院系人数大于等于4小于5则该字段为”规模一般“,该院系人数大于等于2小于4则该字段值为”规模稍小“,否则显示“规模很小”select sdept,sdept=
case
when COUNT(distinct sno)>=5then'规模很大'
when COUNT(distinct sno)>=4and COUNT(distinct sno)<5 then'规模一般' when COUNT(distinct sno)>=2and COUNT(distinct sno)<4 then'规模小' when COUNT(distinct sno)<2 then'规模很小'
end
from student
group by sdept
14、按照课程号、成绩降序显示课程成绩在70——80之间的学号、课程号及成绩
select sno,cno,grade
from sc
where Grade>=70 and Grade<=80
order by Cno desc,Grade desc
15、显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄“
select学生总人数=COUNT(distinct sno),平均年龄=AVG(sage)
from student
16、显示选修的课程数大于3的各个学生的选修课程数
select sno,选修的课程数=COUNT(Cno)
from sc
group by sno
having COUNT(Cno)>3
17、按照课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均年龄
select cno,总人数=COUNT(distinct sno),最高成绩=MAX(grade),最低成绩
=MIN(grade),平均成绩=AVG(grade)
from sc
group by cno
order by cno desc
18、显示平均成绩大于“200515001“学生平均成绩的各个学生的学号、平均成绩
select sno,平均成绩=AVG(grade)
from sc
group by sno
having AVG(Grade)>(select AVG(Grade)from sc where sno='200515001') 20、显示选修课程数最多的学号及选修课程数最少的学号
select sno,选课数=
case
when MAX(Cno)=COUNT(Cno)then'课程数最多'
when MIN(Cno)=COUNT(Cno)then'课程数最少'
end
from sc
group by sno
having MAX(Cno)=COUNT(Cno)or MIN(Cno)=COUNT(Cno)
22、列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩
select sno,平均成绩=AVG(grade)
from sc
where Grade<60
group by sno
having COUNT(*)>=2
19、显示选修各个课程的及格人数及几个比率
21、显示各个院系男女生人数,其中在结果集中列标题分别为“院系名称、男生人数、女生人数“
select sdept院系名称,
男生人数=sum(case when ssex='男'then 1 else 0 end),
女生人数=sum(case when ssex='女'then 1 else 0 end)。

相关文档
最新文档