数据库系统与应用教程(刘金岭)实验五参考答案
- 格式:doc
- 大小:61.00 KB
- 文档页数:4
《数据库技术及应用》课内上机实验指导书实验一:SQL SERVER的可视化操作一、实验内容1、学习启动SQL Server2000。
2、用SQL Server企业管理器建立SQL Server注册及注册属性的修改。
3、熟悉SQL Server的操作环境,了解主要菜单命令的功能和窗口,如新建数据库,数据库表的建立,导入、导出数据等。
4、在某个已注册实例中,认识与体会SQL Server的体系结构。
5、在某个已注册实例的数据库范例中,认识数据库的组成。
二、实验步骤1、启动本机的SQL Server服务;2、利用企业管理器,在本地创建名为edu_d的数据库,并在edu_d数据库中添加学生信息表STU_INFO,并随意在表中添加数据。
3、通过查询分析器,查询步骤2中添加的数据。
4、将本地master库中的表syscharsets导出,再导入到edu_d中。
5、进一步熟悉企业管理器以及查询分析器的其它相关操作。
实验二:用SQL实现单表查询一、实验内容1、对已有的数据库pubs中的表完成以下查询功能:a)查询jobs表中所有属性列信息Select * from jobsb)查询employee表中的雇员号和雇员名信息Select emp_id,fname,lname from employeec)查询employee表中雇员工作年限信息select emp_id,year(getdate())-year(hire_date) from dbo.employee2、对employee数据表完成以下查询a)查询名字首字母为F的雇员信息select * from employee where fname like 'F%'b)查询工种代号为11的所有雇员信息select * from employee where job_id = 11c)查询雇佣年限超过5年的雇员信息select * from employeewhere year(getdate())- year(hire_date) > 5d)查询工种代号在5~8的雇员信息select * from employee where job_id between 5 and 8e)查询名字为Maria的雇员信息select * from employee where fname = 'maria'f)查询姓名中包含字符sh的所有雇员信息select * from employee where fname like '%sh%' or lname like '%sh%'3、查询sales表中1993-1-1前订货的订单信息select * from sales where ord_date < '1993-1-1'或者select * from sales where year(ord_date)< 19934、查询authors表中以下相关信息:a)Johnson white的电话号码select phone from dbo.authors where au_fname = 'johnson' and au_lname = 'white'b)住在oakland的所有作者的姓名以及住址select au_lname,au_fname,address from dbo.authors where city = 'oakland'c)住在10932 Bigge Rd.作者的详细信息select * from dbo.authors where address = '10932 Bigge Rd.'实验三:连接查询一、实验目的1、掌握多表之间的连接查询2、掌握使用集函数完成特殊的查询3、学会对查询结果排序4、联系数据汇总查询二、实验内容1.从edu_d数据库中的stu_info、xk、gdept、gfied、gban、gcourse表中做以下查询:a)查询信息科学与工程学院的学生的学号、姓名、性别select XH,XM,XBM from STU_INFO,GDEPT where STU_INFO.xsh =GDEPT.xsh and xsm='信息科学与工程'b)查询成绩在85分以上的学生的学号、姓名、课程名称select STU_INFO.XH,XM,KCH from STU_INFO,XK whereSTU_INFO.XH = XK.XH and KSCJ>85c)查询学号的前4位是'2001'的学生的学号、姓名、学院名称select XH,XM,XSM from STU_INFO,GDEPT where STU_INFO.XSH =GDEPT.XSH and XH LIKE '2001%'d)查询高等数学(kch=090101)成绩不及格的同学的学号、姓名、课程名称select XK.XH,XM,KSCJ,KMfrom STU_INFO,XK,GCOURSEwhere STU_INFO.xh = XK.xh and XK.kch = GCOURSE.kch and XK.kch ='090101' and kscj < 60e)查询每个同学在2001-2002学年第一学期(kkny=20011)的总分、平均分select xh,sum(kscj) as '总分',avg(kscj) as '平均分'from xkwhere kkny = '20011'group by xhf)查询与李明在同一个专业学习的同学的学号、姓名、性别、班级,并按学号升序排序select xh,xm,XBM,BHfrom STU_INFOwhere zyh in(select zyhfrom stu_infowhere xm = '李明')order by xhg)使用嵌套查询语句查询信息科学与工程学院的男生中年龄最小的学生的信息select *from STU_INFOwhere nl =(select min(nl)from STU_INFO) and xbm=’男’h)查询化学化工学院的各班的人数select bh,count(xh)from STU_INFO,GDEPTwhere STU_INFO.xsh = GDEPT.xsh and xsm = '信息科学与工程'group by bh实验四:嵌套查询一、实验目的1、掌握多表之间的嵌套查询2、掌握使用集函数完成特殊的查询3、学会对查询结果排序4、练习集合查询二、实验内容1.从edu_d数据库中的stu_info、xk、gdept、gfied、gban、gcourse表中做以下查询:a)查询高等数学(kch=090101)成绩不及格的同学的学号、姓名、课程代码select XK.XH,XM,KSCJ,KMfrom STU_INFO,XK,GCOURSEwhere STU_INFO.xh = XK.xh and XK.kch = GCOURSE.kch and XK.kch ='090101' and kscj < 60b)查询每个同学在2001-2002学年第一学期(kkny=20011)的总分、平均分select xh,sum(kscj) as '总分',avg(kscj) as '平均分'from xkwhere kkny = '20011'group by xhc)使用嵌套查询语句查询信息科学与工程学院的男生中年龄最小的学生的信息select *from STU_INFOwhere nl =(select min(nl)from STU_INFO)d)查询化学化工学院的各班的人数select bh,count(xh)from STU_INFOwhere xsh =(select xshfrom GDEPTwhere xsm = '信息科学与工程')group by bh实验五:统计查询一、实验目的二、实验内容1.从edu_d的表stu_info中查询全校共有多少个班级。
数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(DBMS)是一种软件,用于管理和组织数据库。
它允许用户创建,读取,更新和删除数据库中的数据。
常见的数据库管理系统有MySQL,Oracle,SQL Server等。
问题二在实验室环境中,我们将使用MySQL作为我们的数据库管理系统。
以下是MySQL的一些常见特点: - 开源免费 - 跨平台支持 - 可扩展性强 - 有大型的用户社区和丰富的资源支持问题三MySQL的安装步骤如下: 1. 下载MySQL安装文件,可以从MySQL官方网站或者其他可信的下载源获取。
2. 运行安装程序,按照向导的指示进行安装。
3. 选择是否要安装MySQL 服务器和MySQL工具。
4. 设置密码以保护数据库的安全。
5. 完成安装程序并启动MySQL服务。
数据库是一个组织和存储数据的容器。
在关系型数据库中,数据以表的形式存储,每个表包含多个行和列。
每行代表一个记录,每列代表一个字段。
问题五关系型数据库管理系统(RDBMS)是一种DBMS,它使用结构化查询语言(SQL)来操作和处理数据。
常见的关系型数据库管理系统有MySQL,Oracle,SQL Server等。
问题六开放数据库连接(ODBC)是一种标准的数据库访问方法,它允许不同的应用程序通过统一的接口访问不同的数据库管理系统。
ODBC驱动程序充当应用程序和数据库之间的翻译器。
问题七在Windows系统中,ODBC数据源可以通过控制面板的“管理工具”来配置。
在数据源配置对话框中,可以添加,编辑和删除ODBC数据源。
在Windows系统中,可以使用ODBC接口库和ODBC驱动程序来连接和操作数据库。
具体步骤如下: 1. 加载ODBC接口库。
2. 初始化ODBC环境。
3. 建立数据库连接。
4. 执行SQL语句。
5. 关闭数据库连接。
6. 释放ODBC环境。
问题九ODBC接口库是一组API函数,用于连接和操作数据库。
习题参考答案第1章习题参考答案一、选择题1. C2. B3. D4. C5. D6. A7. A8. B9. D、10. B11. C 12. D 13. A 14. D 15. B二、填空题1. 数据库系统2. 关系3. 物理独立性4. 操作系统5. 数据库管理系统(DBMS)6. 多对多7. 独立性8. 完整性控制9. 逻辑独立性10. 关系模型11. 概念结构(逻辑)12. 树有向图二维表嵌套和递归13. 宿主语言(或主语言)14. 数据字典15. 单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构第2章习题参考答案一、选择题1. A2. C3. C4. B5. B6. C7. B8. D9. C 10. A11. B 12. A 13. A 14. D 15. D二、填空题1. 选择(选取)2. 交3. 相容(或是同类关系)4. 并差笛卡尔积选择投影5. 并差交笛卡尔积6. 选择投影连接7. σf(R)8. 关系代数关系演算9. 属性10. 同质11. 参照完整性12. 系编号系名称,电话,办公地点13. 元组关系域关系14. 主键外部关系键15. R和S没有公共的属性三简答题(1)查询T1老师所授课程的课程号和课程名。
ΠCNO,CN(σTNO=’T1’(TC)*ΠCNO,CN(C))(2)查询年龄大于18岁男同学的学号、姓名、系别。
ΠSNO, SN, Dept(σAge>18∧Sex=’男’(S))(3)查询“李力”老师所授课程的课程号、课程名和课时。
ΠCNO (ΠTNO(σTN=’李力’(T))*TC) * C)(4)查询学号为S1的同学所选修课程的课程号、课程名和成绩。
ΠCNO,CN,Score(σSNO=’S1’(SC)*ΠCNO,CN(C))(5)查询“钱尔”同学所选修课程的课程号、课程名和成绩。
ΠCNO,CN,Score(ΠSNO(σSN=’钱尔’(S))*ΠCNO,CN (C)*SC)(6)查询至少选修“刘伟”老师所授全部课程的学生姓名。
河南工程学院计算机科学与工程系数据库系统原理实验报告册学期:课程:专业:班级:学号:姓名:指导教师:目录实验一 SQL Server 2000安装、数据库创建及管理 (1)一、实验学时 (1)二、实验目的 (1)三、实验内容 (1)四、实验要求 (13)五、代码清单 (13)六、实验中出现的问题及解决的方法 (15)七、思考讨论题或体会或对改进实验的建议 (16)实验二表和表数据的操作 (17)一、实验学时 (17)二、实验目的 (17)三、实验内容 (17)四、实验要求 (22)五、代码清单 (22)六、实验中出现的问题及解决的方法 (24)七、思考讨论题或体会或对改进实验的建议 (25)实验三索引和视图 (26)一、实验学时 (26)二、实验目的 (26)三、实验内容 (26)四、实验要求 (31)五、代码清单 (31)六、实验中出现的问题及解决的方法 (33)七、思考讨论题或体会或对改进实验的建议 (34)实验四 T-SQL程序设计 (35)一、实验学时 (35)二、实验目的 (35)三、实验内容 (35)四、实验要求 (39)五、代码清单 (39)六、实验中出现的问题及解决的方法 (41)七、思考讨论题或体会或对改进实验的建议 (42)实验五数据库安全性 (43)一、实验学时 (43)二、实验目的 (43)三、实验内容 (43)四、实验要求 (46)五、代码清单 (47)六、实验中出现的问题及解决的方法 (49)七、思考讨论题或体会或对改进实验的建议 (49)实验六数据库完整性 (51)一、实验学时 (51)二、实验目的 (51)三、实验内容 (51)四、实验要求 (54)五、代码清单 (54)六、实验中出现的问题及解决的方法 (56)七、思考讨论题或体会或对改进实验的建议 (57)实验一 SQL Server 2000安装、数据库创建及管理一、实验学时:2学时二、实验目的(1)了解安装SQL Server2000的硬件和软件环境。
习题 1 1-1 文件系统阶段的数据管理有哪些特点?答:文件系统阶段主要有 5 个特点:数据以“文件”形式长期保存;数据的逻辑结构与物理结构有了区别;文件组织已多样化;数据面向应用;对数据的操作以记录为单位。
1-2 文件系统阶段的数据管理有些什么缺陷?试举例说明。
答:主要有 3 个缺陷:数据冗余;数据不一致性;数据联系弱。
例如学校里教务处、财务处、保健处建立的文件中都有学生详细资料,如联系电话,家庭住址等。
这就是“数据”冗余;如果某个学生搬家,就要修改 3 个部门文件中的数据,否则会引起同一数据在 3 个部门中不一致;产生上述问题的原因是这 3 个部门的文件中数据没有联系。
1-3 数据库阶段的数据管理有哪些特色?答:主要有 5 个特点:采用数据模型可以表示复杂的数据结构;有较高的数据独立性;为用户提供了方便的用户接口;提供了 4 个方面的数据控制功能;对数据的操作以数据项为单位,增加了系统的灵活性。
1-4 什么是数据独立性?在数据库中有哪两级独立性?答:数据独立性是指应用程序与 DB 的数据结构之间的相互独立。
在物理结构改变时,尽量不影响应用程序,称为物理独立性;在逻辑结构改变时,尽量不影响应用程序,称之为逻辑数据独立性。
1-5 试解释 DB、DBMS 和 DBS 三个概念。
答:DB 是长期存储在计算机内、有组织的、统一管理的相关数据的集合。
DBMS 是位于用户与 0S 之间的一层数据管理软件,它为用户或应用程序提供访问 DB 的方法。
DBS 是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即采用数据库技术的计算机系统。
1-6 SQL Server 2005 有哪些数据类型?答:SQL Server 中数据类型分为整型、浮点型、二进制数据型、逻辑型、字符型、文本型、图形型、日期时间型、货币型、自定义类型、可变数据类型和表数据类型。
1-7 列举 SQL Server 2005 中新增的主要功能。
实验成绩《数据库系统原理及应用》实验报告五专业班级: 计算机科学与技术学号: **************: *******: ***2013年11 月14 日实验五名称: SQL Server视图和索引一、实验内容及要求1.创建视图和查看视图的定义任务1:用对象资源管理器管理器方式,创建一个名为“v1”的视图,用于查询计算机网络专业男生的学号、姓名、出生日期,并将视图的列名分别改为:学生学号、男生姓名、生日。
任务2:用对象资源管理器管理器方式,创建一个名为“v成绩”的视图,用于查询成绩在60~80之间的学生学号、姓名、专业名、课程名、成绩信息。
任务3:用命令方式,创建一个名为“V个人最高分”的视图,用于查询每门课程的最高分的学生学号、姓名、课程号、成绩信息。
任务4:用命令方式,创建一个名为“V全校最高分”的视图,用于查询所有成绩中的最高分的学生学号、姓名、专业名、课程号、成绩。
2.修改视图任务:用命令方式,在“v1”的视图中增加两列:专业和系。
3.使用视图向数据表中插入数据任务1:用命令方式,在“V1”视图中添加如下两条记录,注意查看添加的结果。
分析为什么?(‘020106’,‘李好’,‘1981-04-22’,‘计算机网络’,‘计算机’)(‘020107’,‘周权’,‘1981-07-08’,‘信息安全’,‘计算机’)任务2:用命令方式,在“V1”视图中设置“with check option”属性,然后通过视图向基表中添加如下两条记录,注意查看添加的结果。
(‘020108’,‘赵伟’,‘1980-05-07’,‘计算机网络’,‘计算机’)(‘020109’,‘刘齐’,‘1981-12-02’,‘信息安全’,‘计算机’)请思考:这两条记录能否插入到基表中?能否在视图中能否显示?4.使用视图删除数据表中的数据任务1:用命令方式或对象资源管理器管理器方式,删除“V1”视图中,学号为‘020108’的记录。
数据库系统及应用第二版课后上机答案实验章节:第一,二,三,四,五,七实验一、实验目的:熟悉数据库的基本操作,会运用sql处理问题二、实验内容:1.建立数据库,2.建立表和数据完整性,3.SQL数据操作,4.SQL 数据查询,5视图的定义和操作,7.存储过程三.、程序源代码:实验一:1. create database test1on(name=test1_dat,filename='d:\ly\data\test1dat.mdf',size=5MB)log on(name=test1_log,filename='d:\ly\data\test1log.ldf')2.create database test2onprimary(name=test2_dat1,filename='d:\ly\data\test2dat1.mdf'),(name=test2_dat2,filename='d:\ly\data\test2dat2.ndf'),(name=test2_dat3,filename='d:\ly\data\test2dat3.ndf')log on(name=test2_log1,filename='d:\ly\data\test2log1.ldf'),(name=test2_log2,filename='d:\ly\data\test2log2.ldf')3. create database test3onprimary(name=test3_dat,filename='d:\ly\data\test3dat.mdf'),filegroup w1(name=test3_dat1,filename='d:\ly\data\test3dat1.ndf'),(name=test3_dat2,filename='d:\ly\data\test3dat2.ndf'), filegroup w2(name=test3_dat3,filename='e:\ly\data\test3dat3.ndf'), (name=test3_dat4,filename='e:\ly\data\test3dat4.ndf'), filegroup w3(name=test3_dat5,filename='f:\ly\data\\test3dat5.ndf'), (name=test3_dat6,filename='f:\ly\data\\test3dat6.ndf') log on(name=test3_log,filename='d:\ly\data\test3log.ldf')4. alter database test1add file(name=new_dat,filename='d:\ly\data\newdat.ndf',size=5MB)5. alter database test1modify file(name=test1_dat,size=10 MB)6.Drop database test1Drop database test2Drop database test3实验21建库:CREATE DATABASE 订单管理ON(NAME=order_dat,FILENAME='d:\ly\data\orderdat.mdf', SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 )LOG ON(NAME=order_log,FILENAME='d:\ly\data\orderlog.ldf', SIZE= 5MB,MAXSIZE= 25MB,FILEGROWTH= 5MB)建表:客户号char(8) primary key check(客户号like '[A-z]%'),客户名称varchar(40) not null,联系人char(8),地址varchar(40),邮政编码char(6) check(邮政编码like '[0-9][0-9][0-9][0-9][0-9][0-9]'), 电话char(12) check(电话like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')) create table 产品( 产品号char(8) primary key check(产品号like '[A-z][A-z]%'),产品名称varchar(40),规格说明char(40) constraint uni unique,单价smallmoney constraint dj check(单价>0))create table 订购单(客户号char(8) not null foreign key references 客户,订单号char(8) primary key,订购日期datetime default getdate())create table 订单名细(订单号char(8) foreign key references 订购单,序号tinyint,产品号char(8) not null foreign key references 产品,数量smallint constraint sl check(数量>0)primary key(订单号,序号))2.1、先取消唯一性约束:alter table 产品drop constraint unialter table 产品alter column 规格说明varchar(40)2.2 alter table 订购单add 完成日期datetime null2.3 先取消约束alter table 订单名细drop constraint num;ALTER TABLE 订单名细ADD CONSTRAINT num CHECK (数量>= 0 AND 数量<= 1000)alter table 订单名细drop constraint num3.1 create index sup_kh_idx on 客户(客户名称)3.2 create unique index cp_idx on 产品(产品名称)3.3由于create table命令中的primary key 约束将隐式创建聚集索引,且在创建表时已经指定了关键字,则不可以再创建聚集索引3.4create index dd_mx_idx on 订单名细(订单号,序号,数量desc)四、实验数据、结果分析:实验3客户表:订购单:订单名细:产品:1、insert into 订单名细values( 'dd16','32','cp56','150') insert 客户(客户号,客户名称)values ('E20','广西电子') 订购单备份:select* into 订购单备份from 订购单select * from 订购单备份2、delete from 客户where 客户号='E10'delete from 客户where 客户号='E10'3、update 订单名细set 数量=225where 订单号='dd13'4、update 订购单set 订购日期='2011-10-11'where 订单号in (select 订单号from 订单名细where 产品号in (select 产品号from 产品where 产品名称='MP4'))5delete from 订购单where 客户号in( select 客户号from 客户where 客户名称='华中电子厂')由于语句与REFERENCE 约束"FK__订单名细__订单号__145C0A3F"冲突。
《数据库原理与应用》课后习题参考答案第一章作业参考答案1. 单项选择题C C D B C2. 判断题对错错错对3填空题网状模型用户商业智能数据挖掘系统设计4简答题1)数据模型是指描述事物对象的数据组成、数据关系、数据约束的抽象结构及其说明。
数据模型是指描述事物对象的数据组成、数据关系、数据约束的抽象结构及其说明。
数据模型是指描述事物对象的数据组成、数据关系、数据约束的抽象结构及其说明。
3〕数据约束:用于描述数据结构中数据之间的语义联系、数据之间的制约和依存关系,以及数据动态变化的规则。
主流数据库采用关系图模型。
数据库典型数据模型:层次数据模型网状数据模型关系数据模型其它数据模型〔如对象数据模型、键值对数据模型、列式数据模型。
〕2)数据库——是一种依照特定数据模型组织、存储和管理数据的文件,数据库文件一般存放在辅助存储器以便长久保存。
数据库具有如下特点:数据不重复存放;提供应多种应用程序访问;数据结构独立于使用它的应用程序;对数据增、删、改、检索由统一软件进行管理和控制。
3)数据库(Database)是一种依照特定模型组织、存储和管理数据的数据结构。
在数据库中,不仅存放了数据,而且还存放了数据与数据之间的关系。
数据库内部元素:用户表:用户在数据库中创建的数据库表;系统表:数据库中系统自带的数据库表;视图:数据库中用于对数据进行查询的虚拟表;索引:数据库中用于加快数据查询的索引项;约束:数据库中对数据、数据关系施加的规则;存储过程:数据库内部完成特定功能处理的程序;触发器:数据库内部因数据变化自动执行的一类存储过程等等4)数据库系统包括:用户、数据库应用程序、数据库管理系统和数据库四个组成要素。
5)数据库管理系统〔Database Manage System,DBMS 〕——是一种专门用来创建数据库、管理数据库、维护数据库,并提供对数据库访问的系统软件。
数据库管理系统〔DBMS〕主要功能:创建数据库和表; 创建支持结构,如索引等; 读取数据库数据; 修改数据库数据; 维护数据库结构; 执行规则; 并发控制; 提供安全性; 执行备份和恢复等等第二章作业参考答案1 单项选择题C B D A A2. 判断题对对错对错3填空题全外连接数据约束候选键用户定义完整性4简答题外码键1)在关系模型中,使用“关系”来存储“实体”中的数据。
数据库系统概论(第5版)实验指导与习题解析1.实验指导(1)设计及实现系统概念模型的实验实验的目的在于帮助学生掌握如何设计和实现数据库系统的概念模型,以及该模型为后续表示和实现提供必要的理论基础。
实验具体包括:(a)根据题目相关信息,分析和需求,定义需要的实体和实体的属性;(b)提出逻辑模型,包括实体间的代数关系和实体间的引用完整性约束;(c)设计抽象数据模型,定义实体、属性、关系及引用完整性约束;(d)实现模型,确定数据类型和索引,定义数据表,进行插入、更新、查询和删除操作;(e)实现联络通知,搭建应用程序与操作界面,具备账号登录验证及安全保护机制。
(2)对系统查询的实现的实验实验的目的是帮助学生了解如何使用数据库系统提供的查询和存取机制,以实现高效的代表性查询。
实验具体包括:(a)设计存取计划,检查数据库表的索引结构,提出优化查询的建议;(b)实现复杂查询,使用子查询、聚合函数、分组查询、嵌套查询等,分析数据库中的信息;(c)进行数据操纵和更新,使用insert、update、replace和truncate语句,对指定的数据库表操作;(d)实现视图联结和索引的应用,方便查询快速定位所需数据,提高查询效率;(e)设计存储过程,对常用操作进行定义和封装,简化查询,实现程序化处理。
2.习题解析(1)数据库中的实体之间的关系有哪些?数据库中实体之间的关系主要有一对一关系、一对多关系、多对多关系三种。
一对一关系指的是两个实体之间只有一种关系;一对多关系指的是一个实体可以与多个实体存在一种关系;多对多关系指的是多个实体可以彼此之间存在多种关系。
(2)为什么要在设计数据库时考虑数据完整性?考虑数据完整性的目的在于确保数据的准确性和完整性,以保证数据表中各个实体及其属性之间的准确关系,以及关系不被破坏。
通常,数据库完整性可以通过实体间的引用完整性约束来实现,从而确保存储在数据库中的数据不被破坏。
实验四简单查询和连接查询
2. 简单查询实验
用Transact-SQL语句表示下列操作,在“学生选课“数据库中实现其数据查询操作:
(1) 查询数学系学生的学号和姓名。
select sno,sname
from S
where Sdept='MA'
(2) 查询选修了课程的学生学号。
select distinct(sno)
from sc;
(3) 查询选修课程号为‘C2’的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select distinct(sno),grade
from sc
where cno='C2'
order by grade desc,sno asc;
(4) 查询选修课程号为‘C2’的成绩在80-90 分之间的学生学号和成绩,并将成绩乘以系数0.8 输出。
select distinct(sno),grade*0.8 as'sore'
from sc
where cno='C2'and grade between 80 and 90;
(5) 查询数学系(MA)或计算机科学系(CS)姓张的学生的信息。
select*
from S
where dept in('MA','CS')and sname like'张%';
(6) 查询缺少了成绩的学生的学号和课程号。
select sno,cno
from sc
where grade is null;
3. 连接查询实验
用Transact-SQL语句表示,并在“学生选课”数据库中实现下列数据连接查询操作:
(1) 查询每个学生的情况以及他(她)所选修的课程。
select S.*,ame
from S JION sc ON s.sno=sc.sno JION c ON o=o
(2) 查询学生的学号、姓名、选修的课程名及成绩。
select s.sno,sname,cname,grade
from S JION sc ON s.sno=sc.sno JION c ON o=o
(3) 查询选修‘离散数学’课程且成绩为90 分以上的学生学号、姓名及成绩。
select s.sno,sname,grade
from S JION sc ON s.sno=sc.sno and grade>=90 JION c ON
o=o and cname='离散数学'
(4) 查询每一门课的间接先行课(即先行课的先行课)。
select o,second.pcno
from c as first JOIN c as second ON first.pcno=o
4. 嵌套查询
用TransacTransact-SQL语句表示,在学生选课库中实现其数据嵌套查询操作:
(l) 查询选修了“离散数学”的学生学号和姓名。
select sno,sname
from student
where sno in
(select sno
from sc
where cno=
(select cno
from course
where cname='离散数学'));
(2) 查询“C2”课程的成绩高于张林的学生学号和成绩。
select sno,grade
from sc
where cno='C2'and grade>
(select grade
from sc
where cno='C2'and sno=(select sno
From s
Where sname='张林'));
(3) 查询其他系中年龄小于计算机科学系(CS)年龄最大者的学生。
select*
from s
where Sdept<>'CS'and age<(select max(age)
from s
where Sdept='CS');
(4) 查询其他系中比计算机系学生年龄都小的学生。
(3)中的max换成min即可。
(5) 查询同“王洪敏”的“数据库原理及应用”课程分数相同的学生的学号。
select sno
from sc
where grade=(select grade
from S JION sc ON s.sno=sc.sno JION c ON o=o and ame='数据库原理及应用'and sname='王洪敏');
(6) 查询选修了‘C2’课程的学生姓名。
select sname
from s
where sno in(select sno
from sc
where cno='0206');
(7) 查询没有选修‘C2’课程的学生姓名。
在(5)的in前加not即可。
5. 组合查询和统计查询
在学生选课数据库中实现其查询操作:
(1) 查找选修“计算机基础”课程的学生成绩比此课程的平均成绩大的学生学号和成绩。
select x.sno,x.grade
From sc as x
Where x.grade>(
select avg(y.grade)
From sc as y,course as c
Where ame='计算机基础')and o=
(select cno
From course
Where cname='计算机基础');
(2) 查询选修计算机基础课程的学生的平均成绩。
select avg(grade)
From sc
Where sno in
(select sno
From sc
Where cno=
(select cno
From course
Where cname='计算机基础'));
(3) 查询年龄大于女同学平均年龄的男同学姓名和年龄。
select sname,age
From student
Where sex='男'and age>
(select avg(age)
From student
Where sex='女');
(4) 列出各系学生的总人数,并按人数进行降序排列。
select dept ,count(*)as total
From student
Group by dept
order by total desc;
(5) 统计各系各门课程的平均成绩。
select dept ,cno,avg(grade)
From student,sc
Group by dept,cno
(6) 查询选修计算机基础和离散数学的学生学号和平均成绩。
select s1.sno,avg(grade)as平均分
From sc as s1
Where'计算机基础'in
(select cname
From course
Where cno in
(select o
From sc as s2
Where s2.sno=s1.sno))and'离散数学'in
(select cname
From course
Where cno in
(select cno
From sc as s3
Where s3.sno=s1.sno)) Group by s1.sno;。