最新实验6-SQL-查询附答案

合集下载

2023 SQL 数据库查询练习题及答案

2023 SQL 数据库查询练习题及答案

2023 SQL 数据库查询练习题及答案数据库查询是数据管理和处理的重要环节,熟练的SQL查询技巧对于数据库工程师和数据分析师来说至关重要。

为了提升大家的SQL 查询能力,以下是一些2023年的SQL数据库查询练习题及答案,希望能够对大家的学习和实践有所帮助。

练习题1:学生成绩表考虑一个学生成绩表(Students)和课程信息表(Courses),请使用SQL查询语句完成以下操作。

1. 查询所有学生的姓名和学号;2. 查询所有参加了"C3"课程的学生的姓名和学号;3. 查询所有选择了至少两门课程的学生的姓名和学号;答案1:SELECT 学号, 姓名FROM 学生成绩表;答案2:SELECT 学生成绩表.学号, 学生成绩表.姓名FROM 学生成绩表, 课程信息表WHERE 学生成绩表.课程编号 = 课程信息表.课程编号AND 课程信息表.课程名称 = "C3";答案3:SELECT 学号, 姓名FROM 学生成绩表GROUP BY 学号, 姓名HAVING COUNT(*) >= 2;练习题2:库存管理考虑一个库存管理系统的数据库,包含了商品表(Products)、仓库表(Warehouses)和库存表(Inventory)。

请使用SQL查询语句完成以下操作。

1. 查询商品表中单价不低于100元的商品的名称和单价;2. 查询所有位于“北京”仓库中的商品的名称和库存量;3. 查询库存量最多的商品的名称和库存量;答案1:SELECT 名称, 单价FROM 商品表WHERE 单价 >= 100;答案2:SELECT 商品表.名称, 库存表.库存量FROM 商品表, 仓库表, 库存表WHERE 商品表.商品ID = 库存表.商品IDAND 仓库表.仓库ID = 库存表.仓库IDAND 仓库表.所在地 = "北京";答案3:SELECT 商品表.名称, 库存表.库存量FROM 商品表, 库存表WHERE 商品表.商品ID = 库存表.商品IDORDER BY 库存表.库存量 DESCLIMIT 1;练习题3:订单管理考虑一个订单管理系统的数据库,包含了客户表(Customers)、订单表(Orders)和订单详情表(OrderDetails)。

sql实训答案

sql实训答案

sql实训答案【篇一:新sql——server实验练习答案】txt>答案上海师范大学计算机系目录第一部分企业管理器的使用 ....................................................................................................... .. 3试验一注册服务器 ............................................................................... 错误!未定义书签。

试验二创建数据库 ............................................................................... 错误!未定义书签。

试验三创建表 ....................................................................................... 错误!未定义书签。

实验四数据输入 ................................................................................... 错误!未定义书签。

实验五登录到数据库服务器 ............................................................... 错误!未定义书签。

第二部分 sql语言 ....................................................................................................... ................. 3 第二部分 sql语言 ....................................................................................................... .. (3)试验一数据库创建 ....................................................................................................... .......... 3 试验二创建表 ....................................................................................................... .................. 3 试验三创建数据完整性 ....................................................................................................... .. 5 试验四数据完整性试验 ....................................................................................................... .. 6 试验五索引 ....................................................................................................... .................... 10 试验六更新数据 ....................................................................................................... ............ 11 试验七 sql 查询语句 ....................................................................................................... .... 12 试验八视图 ....................................................................................................... .................... 15 试验九安全性控制实验 .......................................................................................................16 试验十存储过程 ....................................................................................................... ............ 17 试验十二触发器 ....................................................................................................... ............ 21 试验十二恢复技术 ....................................................................................................... ........ 25 试验十三事务 ....................................................................................................... ................ 26 试验十四锁 ....................................................................................................... .. (27)第一部分企业管理器的使用第二部分 sql语言试验一数据库创建目的:1掌握利用sql语言进行数据库的创建、维护。

vf6-sql简单查询

vf6-sql简单查询

SQL (Structured Query Language)结构化查询语言标准化的公用的关系数据库语言四大功能:数据定义(建立)数据查询{最主要也是最重要的功能} 我们辛辛苦苦建立一个数据库就是为了查找数据数据操纵(添加修改删除)数据控制(对数据库里的数据访问权限的控制)VF (小型数据库管理系统)SQL server 2000 (中小型数据库管理系统)DB2,Oracle (大型数据库管理系统)数据查询:select命令1简单查询(基于单个表的查询,借助于一个select—from 或者一个select—from—where当所要检索的字段和条件字段来自同一个关系的时候使用简单查询)格式:select 字段1,字段2 ... from 表名where 满足的条件(满足的条件是任意复杂的逻辑表达式)select * from 表名where 满足的条件(*叫做通配符);是续行符号例题1 查询出包含有职工的仓库的仓库号Select distinct 仓库号from 职工distinct 消除重复记录例题2查询职工表中工资大于1210且小于1250的员工的职工号和员工姓名(员工的信息) Select 职工号,员工姓名from 职工where 工资>1210 and 工资<1250Select * from职工where 工资>1210 and 工资<1250例题3 给出在仓库”WH1”或”WH2”工作且工资少于1250元的职工号select 职工号from 职工where (仓库号="WH1" or 仓库号="WH2") and 工资<1250学生练习:1、从职工关系表中检索所有工资值2、检索仓库关系中的所有元组3、检索工资多于1230元的职工号4、检索哪些仓库有工资多于1230元的职工5、给出在仓库“WH1”或“WH2”工作并且工资少于1250元的职工号。

数据库中SQL查询语句习题含答案

数据库中SQL查询语句习题含答案

数据库中SQL查询语句习题含答案查询问题:设教学数据库Education 有三个关系:学⽣关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT );学习关系SC (SNO ,CNO ,GRADE );课程关系C (CNO ,CNAME ,CDEPT ,TNAME )(1)检索计算机系的全体学⽣的学号,姓名和性别;(2)检索学习课程号为C2的学⽣学号与姓名;(3)检索选修课程名为“DS ”的学⽣学号与姓名;(4)检索选修课程号为C2或C4的学⽣学号;(5)检索⾄少选修课程号为C2和C4的学⽣学号;(6)检索不学C2课的学⽣姓名和年龄;(7)检索学习全部课程的学⽣姓名;(8)查询所学课程包含学⽣S3所学课程的学⽣学号。

(1)检索计算机系的全体学⽣的学号,姓名和性别;SELECT Sno ,Sname ,Sex FROM SWHERE Sdept =’CS ’;(2)检索学习课程号为C2的学⽣学号与姓名;(3)检索选修课程名为“DS ”的学⽣学号与姓名本查询涉及到学号、姓名和课程名三个属性,分别存放在S 和C 表中,但S 和C 表没有直接联系,必须通过SC 表建⽴它们⼆者的联系。

C → SC → S基本思路:(1)⾸先在C 表中找出“DS ”课程的课程号Cno ;(2)然后在SC 表中找出Cno 等于第⼀步给出的Cno 集合中的某个元素Cno ;(3)最后在S 关系中选出Sno 等于第⼆步中Sno 集合中某个元素的元组,取出Sno 和Sname 送⼊结果表列。

SELECT Sno ,Sname FROM SWHERE Sno IN (SELECT Sno FROM SCWHERE Cno IN (SELECT Cno FROM CWHERE Cname=‘DS ’));(4)检索选修课程号为C2或C4的学⽣学号;(5)检索⾄少选修课程号为C2和C4的学⽣学号; SELECT SnoFROM SC X ,SC YWHERE = AND =‘C2’ AND =‘C4’ ;(6)检索不学C2课的学⽣姓名和年龄;(7)检索学习全部课程的学⽣姓名;在表S 中找学⽣,要求这个学⽣学了全部课程。

SQL实验的题目和答案全解

SQL实验的题目和答案全解

数据库实验总汇二、使用SQL Server 工具在管理数据库系统和运行SQL查询的两个主要工具是企业管理器和查询分析器三、实验目的1.熟悉数据库的交互式SQL工具。

2.熟悉通过SQL对数据库进行操作。

3.完成上机练习。

四、实验内容(打※为选做题)Part A1.使用CREATE语句创建数据库2. 使用CREATE语句创建基本表3.更改基本表的定义,增加列,修改列的数据类型。

4.创建表的索引,取消表的索引1、数据库的建立使用SQL 语句建立关系数据库schooldemo2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea),表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT (10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date (DATETIME);(三个表之间有联系)3、更改基本表的定义,增加列,删除列,修改列的数据类型。

更改表PERSON,增加属性Ptype(类型是CHAR ,长度为10),把表ROOM中的属性Rname的数据类型改为长度为40。

4、创建表的索引,取消表的索引为ROOM表创建按Rno降序排列的索引创建PERSON表按Pname升序排列的唯一性索引取消PERSON表Pname升序索引5、删除表ROOM实验过程(1.a)1、数据库的建立使用SQL 语句建立关系数据库schooldemocreate database schooldemoon(name=schooldemo,filename='e:\123\school_data.mdf',size=5mb,maxsize=15mb,filegrowth=10%)log on(name=schooldemo_log,filename='e:\123\schooldemo.ldf',size=5mb,maxsize=15mb,filegrowth=4mb)2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea), 表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT(10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date(DATETIME);(三个表之间有联系)create table person(pno char (8)primary key,pname char (20),page int);create table room(rno char (8) primary key,rname char(20),rarea float(10));create table pr(pno char (8),rno char (8),date datetime,primary key(pno,rno),foreign key(pno) references person(pno),foreign key(rno) references room(rno));3、更改基本表的定义,增加列,删除列,修改列的数据类型。

实验六:数据库综合查询-答案

实验六:数据库综合查询-答案

实验六:数据库综合查询1.查询以‘DB_’开头,且倒数第个字符为‘s’的课程的详细情况; use studentselect*from coursewhere cname like'DB_%S__'2.查询名字中第个字为‘阳’的学生姓名和学号及选修的课程号、课程名;use studentselect sname,student.sno,o,cnamefrom course,student,scwhere sname like'_阳%'and student.sno=sc.sno and o=o3.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;use studentselect student.sno学号,sname姓名,sdept所在院系,o 选修课程号,grade成绩from course,student,scwhere (cname='数学'or cname='大学英语')and student.sno=sc.sno and o=o4.查询缺少成绩的所有学生的详细情况;use studentselect student.*from student,scwhere grade is null and student.sno=sc.sno注意:若成绩存在,则改为grade=数字5.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息use studentselect*from studentwhere sage!=(select sagefrom studentwhere sname='张力')6.查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩;use studentselect x.sno学号,sname姓名,平均成绩=AVG(grade)from student x,sc ygroup by sname,x.snohaving avg(grade)>(select AVG(grade)from sc,studentwhere sname='张力' andsc.sno=student.sno )注意:没有成功7.按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。

sql查询题目及答案

sql查询题目及答案

数据库中有如下三个表:学生表(学号id,姓名name,性别sex,系部depart,年龄age)8个学生记录选课表(学号id,课程号cid,成绩grade) 12门课程课程表(课程号cid,课程名cname,学分Ccredit) 6门课程学生-课程模式 S-T :学生表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:SC(Sno,Cno,Grade)1.从学生表中查询所有同学的所有信息select*from学生表2.从学生表中查询所有学生的信息,并分别赋予一个别名select学号as xuehao,姓名as xingming,性别as xingbie,系部as xibu,年龄as nianling from学生表3.从学生表中查询姓名是Allen的学生的信息select*from学生表where姓名='Allen'4.从学生表中查询学号在1101到1199之间的所有学生的信息select*from学生表where学号between 1101 and 11995.从学生表中查询年龄小于18和大于20的所有学生的学号和姓名select学号,姓名from学生表where年龄<18 or年龄>206.从学生表中查询计算机系年龄小于20的所有学生的信息select*from学生表where系部='computer'and年龄<207.从学生表中查询姓名以A开头的学生的信息select*from学生表where姓名LIKE'A%'8.从学生表中查询姓名的第三个字符是A的学生的学号和姓名select学号,姓名from学生表where姓名LIKE'__A%'9.从学生表中查询姓名中包含“llen”的学生的学号和姓名select学号,姓名from学生表where姓名LIKE'%llen%'10.从学生表中查询姓名中包含“llen”且姓名只有5个字符的学生的学号和姓名select学号,姓名from学生表where姓名LIKE'%llen%'and len(姓名)=511.从学生表中查询有年龄信息的学生的学号和姓名select学号,姓名from学生表where年龄is not null12.从学生表中查询最大年龄和最小年龄select max(年龄)最大年龄,min(年龄)最小年龄from学生表13.从学生表中查询所有学生的平均年龄select avg(年龄)平均年龄from学生表14.从学生表中查询学校所有系的名字select distinct系部from学生表15.从学生表中查询学校共有多少个系select count(distinct系部)系部总和from学生表16.从选课表中查询所有学生的选课情况select distinct课程号from选课表17.从选课表中查询选修课程号为C01课程的学生的学号select学号from选课表where课程号='C01'18.从选课表中查询所有没有选C02课程的学生的学号select distinct学号from选课表where课程号!='C02'19.从选课表中查询有选修C01或C02课程的学生的学号select distinct学号from选课表where课程号='C01' or 课程号='C02'20.从选课表中查询学号为1101的学生的选课情况select课程号from选课表where学号='1101'21.从选课表中查询所有选课信息,即学号、课程号、成绩,并给成绩加8分select学号,课程号,成绩=成绩+8 from选课表22.从选课表中查询学号为1101的学生的所有选修课程成绩的总和select sum(成绩)成绩总和from选课表where学号='1101'23.从选课表中查询选修课程好为C02所有学生的成绩平均值并赋予“平均成绩24.”列名select avg(成绩)平均成绩from选课表where课程号='C02'25.从选课表中查询选修课程号C02且该门课程考试及格的学生的学号select学号from选课表where课程号='C02'and成绩>=6026.从选课表中查询所有无考试成绩的学生的学号和课程的课程号select学号,课程号from选课表where成绩is null27.从选课表中查询选修了课程号以C开头的学生的学号和所选课程的课程号select学号,课程号from选课表where课程号LIKE'C%'28.从选课表中查询选修了课程号以C、D或E开头学生的学号和所选课程的课程号select学号,课程号from选课表where课程号LIKE'[CDE]%'29.从选课表中查询选修了课程号中包含DB的学生的学号和课程号select学号,课程号from选课表where课程号LIKE'%DB%'30.从选课表中查询选修了课程的学生的学号select distinct学号from选课表where课程号is not null31.从选课表中查询选修了课程的学生的人数select count(distinct学号)总人数from选课表31.找出姓名以D开头的学生姓名和所有成绩select学生表.姓名,选课表.成绩from学生表join选课表on学生表.学号=选课表.学号where学生表.姓名LIKE'D%'32.查找的所有学生姓名与学号,结果按学号降序排序select 学号,姓名from学生表order BY学号DESC33.查找成绩介于80和90之间的学生姓名,结果按成绩和姓名升序排序select学生表.姓名from选课表join学生表on学生表.学号=选课表.学号where选课表.成绩between 80 and 90order BY选课表.成绩,学生表.姓名34.查找english系的所有学生姓名,结果按成绩和姓名升序排序select学生表.姓名,学生表.学号,选课表.成绩from选课表join学生表on学生表.学号=选课表.学号where学生表.系部='english'35.查找同时选修了C01及C02两门课程的学生姓名及学号select学生表.姓名,A.学号from选课表as A join选课表as B on A.学号=B.学号join学生表on学生表.学号=A.学号where A.课程号='C01'and B.课程号='C02'36.查找所有选修了课程的学生姓名及所在系别select distinct学生表.姓名,学生表.系部from学生表join选课表on学生表.学号=选课表.学号where选课表.课程号is not null37.查找成绩高于90分的学生姓名、学号及系别select学生表.姓名,学生表.学号,学生表.系部from学生表join选课表on学生表.学号=选课表.学号where选课表.成绩>=9038.找出选修了C01课程的学生姓名select学生表.姓名from学生表join选课表on学生表.学号=选课表.学号where选课表.课程号='C01'39.查询English系学生人数select count(*) English 系总人数from学生表where系部='English'40.分别查询各系的学生人数select系部,count(*)人数from学生表group by系部41.创建一个角色uus.CREATE ROLE uus;42.给uus授权SELECT,UPDATE,INSERT .GRANT SELECT,UPDATE,INSERTON StuTO uus43.增加一个登录,登录名为tp,密码为123,默认的数据库为stuEXEC sp_addlogin 'tp', '123', 'stu'44.将登录tp增加为test库的一个用户,并连接到test库。

实验6 简单查询

实验6 简单查询

实验6 简单查询6.1 实验目的掌握基本查询操作掌握查询中条件的描述掌握聚集函数的基本用法6.2 实验准备预习教材8.4、9.1、9.2、9.3节、试验用数据库为:学生成绩.mdb试验环境为:Access 2003 或Access 20006.3 实验内容6.3.1 简单查询1、 创建新查询的过程1) 在查询窗格中点击“新建”,开始创建新查询的操作,通常选择“设计视图”。

参见图6.1。

2) 选择查询中需要用到的表。

参见图6.2。

如果不打算用这种设计方式,可以直接关闭“显示表”对话框。

3) 选好表之后,可以选择查询的类型,默认的查询类型为“选择查询”。

参见图6.3。

4) 利用右键点击后出现的弹出式菜单切换到不同的视图。

例如,从查询设计切换到SQL 视图。

在SQL 视图的窗口中,可以录入或编辑SQL 的查询语句。

参见图6.4。

SQL 的查询语句可以一行写完,也可以分作多行来写。

通常可在句尾用分号作结束标志。

图6.1 开始“新建查询”图 6.2 “显示表”对话框5) 在SQL 视图中,点击工具栏中的“运行”按钮,或切换到“数据表视图”时,将执行当前的查询语句。

如果查询语句无错误,将可看到以表形式显示的查询结果。

参见图6.5。

6) 在关闭SQL 视图或查询结果时,保存当前设计的查询以便再次使用。

2、 在SQL 视图中编辑并执行以下查询:1) 从学生名单中查询“031国贸1”班的男同学:SELECT 学号, 姓名 FROM 学生名单WHERE 班级=’031国贸1’ AND 性别=’男’2) 从学生名单中查询姓名为“丁伟”的学生:SELECT 班级, 学号, 姓名, 入学成绩 FROM 学生名单WHERE 姓名='丁伟'3) 列举2003学生名单中不同的班级:SELECT DISTINCT 班级FROM 学生名单4) 查询出生日期为1986-03-01的学生:SELECT 班级, 学号, 姓名, 出生日期 FROM 学生名单WHERE 出生日期=#1986-03-01#5) 列举入学成绩在500~510间的男同学名单:SELECT 班级,学号,姓名,入学成绩 FROM 学生名单WHERE 入学成绩>=500 And 入学成绩<=510 AND 性别='男'6) 按入学成绩降序列举“03国贸1”班学生的入学成绩:SELECT 学号, 姓名, 入学成绩 FROM 学生名单WHERE 班级=’03国贸1’ORDER BY 入学成绩 DESC7) 列举2003学生名单中年龄最大的10名学生:图 6.5 查询结果图 6.3 选择查询类型图 6.4 录入或编辑查询语句SELECT TOP 10 班级, 学号, 姓名, 出生日期 FROM 学生名单ORDER BY 出生日期8) 列举03国贸1班同学的入学成绩及将该成绩增加1.2%时的成绩:SELECT 班级, 学号, 姓名, 入学成绩, 入学成绩*1.12 AS 调整后成绩FROM 学生名单WHERE 班级='031国贸1'9) 查询指定入学成绩的学生:SELECT 班级, 学号, 姓名, 入学成绩FROM 2003学生名单WHERE 入学成绩=X注意:执行该查询时,将出现如图6.6所示对话框,提示为X 输入参数。

SQL查询实验报告

SQL查询实验报告

SQL查询实验报告实验题目:sql查询——简单查询【实验目的与要求】一、实验目的1. 熟练掌握单表查询的select语法结构;2. 通过观察查询结果, 体会select语句的实际应用。

二、实验要求1.实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作。

2.能认真独立完成实验内容。

3.实验后做好实验总结,根据实验情况完成实验报告。

【实验环境】pc机、windows xp系统+sql server 2005 【实验内容】基于实验一建立的educ 数据库,用transact-sql 语句实现如下查询:1.选修了课程的学生学号;2.计算机系的学生;3.计算机系学生的学号和姓名;4.计算机系和信息系的男生信息;(提示:逻辑运算符的优先级顺序)5.选修上课编号为1且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75输出;(提示:新输出项要命名列标题)6.没有成绩的学生的学号和上课编号;7.选修上课编号为1或4的学生的学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;(提示:查询输出哪几项)8.1995年1月1日(含)以后出生的学生信息,并按姓氏拼音字母顺序从前往后排列(注:默认排序规则通常是chinese_prc_ci_as,汉字按照汉语拼音的字典顺序来排序:首先按拼音,拼音相同按声调,声调相同按笔画数。

)9.姓李和刘的学生的信息;10.不姓张王李刘的学生的学号、姓名和性别;11.选修课程的学生人数;12.选修上课编号为1的学生的最高分;13.每位学生所修课程的平均分;14.选修两门以上课程的学生;15.总成绩大于200 分的学生的学号和总成绩。

(提示:group by分组统计)【实验方法和步骤】1.新建查询,在查询编辑器中依次按照如上实验内容编写select 语句完成查询。

2.每执行一条查询语句,在查询结果网格中查看执行结果是否正确。

sql查询实验报告

sql查询实验报告

sql查询实验报告SQL查询实验报告一、引言SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。

在数据库管理系统中,SQL查询是一项重要的操作,通过使用SQL查询语句可以从数据库中检索所需的数据。

本实验旨在通过实际操作,掌握SQL查询的基本语法和常用技巧。

二、实验目的1. 熟悉SQL查询语句的基本结构和语法;2. 掌握SQL查询中的条件筛选、排序和聚合等操作;3. 学会使用SQL查询语句从数据库中检索所需的数据。

三、实验环境本次实验使用MySQL数据库管理系统,通过MySQL Workbench进行操作。

四、实验步骤1. 连接数据库:打开MySQL Workbench,点击“新建连接”,输入数据库连接信息,成功连接到目标数据库。

2. 创建测试表:创建一个名为“students”的表,包含字段“id”(学生编号)、“name”(学生姓名)、“gender”(学生性别)、“age”(学生年龄)和“score”(学生成绩)。

3. 插入测试数据:向“students”表中插入若干测试数据,包括学生的编号、姓名、性别、年龄和成绩。

4. 执行SQL查询语句:使用SQL查询语句从“students”表中检索所需的数据。

五、实验结果与分析1. 查询所有学生的信息:SELECT * FROM students;通过执行以上查询语句,可以获取到“students”表中所有学生的信息,包括学生的编号、姓名、性别、年龄和成绩。

2. 查询成绩大于80分的学生信息:SELECT * FROM students WHERE score > 80;以上查询语句中的WHERE子句用于筛选成绩大于80分的学生信息,通过执行该语句,可以获取到符合条件的学生的信息。

3. 查询男生的平均成绩:SELECT AVG(score) FROM students WHERE gender = '男';以上查询语句中的AVG函数用于计算符合条件的学生的平均成绩,通过执行该语句,可以获取到男生的平均成绩。

SQL查询语句学习答案

SQL查询语句学习答案

第一部分SQL查询语句的学习没有安装SQL Server,只有Access,所以就在Access中操作,Access中的SQL语句与SQL Server中有一点不一样,但是不影响总体的学习,触类旁通,共勉。

所使用的数据库数据是Northwind.mdb单表查询--查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、客户ID和雇员ID等字段的值SQL语句:select 订单ID, 客户ID, 雇员ID, 订购日期from 订单where 订购日期between #1996-07-01# and #1996-07-15#截图:--查询“Northwind”示例数据库中供应商的ID、公司名称、地区、城市和电话字段的值。

条件是“地区等于华北”并且“联系人头衔等于销售代表”。

SQL语句:select 供应商ID, 公司名称, 地区, 城市, 电话from 供应商where 地区='华北' and 联系人职务='销售代表'截图:--查询“Northwind”示例数据库中供应商的ID、公司名称、地区、城市和电话字段的值。

其中的一些供应商位于华东或华南地区,另外一些供应商所在的城市是天津SQL语句:select 供应商ID, 公司名称, 地区, 城市, 电话from 供应商where 地区in ('华北','华南') or 城市='天津'截图:--查询“Northwind”示例数据库中位于“华东”或“华南”地区的供应商的ID、公司名称、地区、城市和电话字段的值SQL语句:select 供应商ID, 公司名称, 地区, 城市, 电话from 供应商where 地区='华东' or 地区='华南'截图:多表查询--查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、相应订单的客户公司名称、负责订单的雇员的姓氏和名字等字段的值,并将查询结果按雇员的“姓氏”和“名字”字段的升序排列,“姓氏”和“名字”值相同的记录按“订单ID”的降序排列SQL语句:select 订购日期, 订单ID, 公司名称, 姓氏, 名字from 订单, 雇员, 客户where 订购日期between #1996-07-01# and #1996-07-15#and 订单.客户ID = 客户.客户IDand 订单.雇员ID = 雇员.雇员IDorder by 姓氏, 名字ASC, 订单ID DESC截图:--查询“10248”和“10254”号订单的订单ID、运货商的公司名称、订单上所订购的产品的名称SQL语句:select 订单.订单ID, 公司名称, 产品名称from 订单, 运货商, 产品, 订单明细where 订单.订单ID in (10248,10254)and 订单.运货商= 运货商.运货商IDand 订单.订单ID = 订单明细.订单IDand 订单明细.产品ID = 产品.产品ID截图:--查询“10248”和“10254”号订单的订单ID、订单上所订购的产品的名称、数量、单价和折扣SQL语句:select 订单.订单ID, 产品名称, 数量, 订单明细.单价, 折扣from 订单, 产品, 订单明细where 订单.订单ID in (10248, 10254)and 订单.订单ID = 订单明细.订单IDand 订单明细.产品ID = 产品.产品ID截图:--查询“10248”和“10254”号订单的订单ID、订单上所订购的产品的名称及其销售金额SQL语句:select 订单.订单ID, 产品名称, 数量*订单明细.单价*(1-折扣) as 销售金额from 订单, 订单明细, 产品where 订单.订单ID in (10248, 10254)and 订单.订单ID = 订单明细.订单IDand 订单明细.产品ID = 产品.产品ID截图:综合查询--查询所有运货商的公司名称和电话SQL语句:select 公司名称, 电话from 运货商截图:--查询所有客户的公司名称、电话、传真、地址、联系人姓名和联系人头衔SQL语句:select 公司名称, 电话, 传真, 地址, 联系人姓名, 联系人职务from 客户截图:--查询单价介于10至30元的所有产品的产品ID、产品名称和库存量SQL语句:select 产品ID, 产品名称, 库存量from 产品where 单价between 10 and 30截图:--查询单价大于20元的所有产品的产品名称、单价以及供应商的公司名称、电话SQL语句:select 产品名称, 单价, 公司名称, 电话from 产品, 供应商where 单价>20and 产品.供应商ID = 供应商.供应商ID截图:--查询上海和北京的客户在1996年订购的所有订单的订单ID、所订购的产品名称和数量SQL语句:Select 订单.订单ID, 产品名称, 数量From 订单, 客户, 产品, 订单明细Where 城市in (‘上海’, ‘北京’)And 订单.客户ID = 客户.客户IDAnd 订单.订单ID = 订单明细.订单IDAnd 订单明细.产品ID = 产品.产品ID截图:--查询华北客户的每份订单的订单ID、产品名称和销售金额SQL语句:Select 订单.订单ID, 产品名称, 产品.单价*(1-折扣)*数量as 销售金额From 订单, 产品, 订单明细, 客户Where 地区= '华北'And 订单.客户ID = 客户.客户IDAnd 订单.订单ID = 订单明细.订单IDAnd 订单明细.产品ID = 产品.产品ID截图:--按运货商公司名称,统计1997年由各个运货商承运的订单的总数量SQL语句:Select 公司名称, count(订单ID) as 订单总数量From 订单, 运货商Where year(发货日期) = 1997And 订单.运货商= 运货商.运货商IDGroup by 公司名称截图:--统计1997年上半年的每份订单上所订购的产品的总数量SQL语句:Select 订单.订单ID, sum(数量) as 总数量From 订单, 订单明细Where 订购日期between #1997-01-01# and #1997-06-30# And 订单.订单ID = 订单明细.订单IDGroup by 订单.订单ID截图:--统计各类产品的平均价格SQL语句:Select 类别名称, sum(单价*库存量)/sum(库存量) as 平均价格From 类别, 产品Where 类别.类别ID = 产品.类别IDGroup by 类别名称截图:--统计各地区客户的总数量SQL语句:Select 地区, count(客户ID) as 总数量From 客户Group by 地区截图:。

SQL实验及部分答案

SQL实验及部分答案

SQL实验及部分答案实验⼀使⽤SQL语句创建和删除数据库⼀. 实验⽬的:1、了解SQL Server 2005数据库的逻辑结构和物理结构。

2、掌握使⽤SQL 语句创建和删除数据库。

⼆. 实验准备1.明确能够创建数据库的⽤户必须是系统管理员,或是被授权使⽤CREATE DATABASE语句的⽤户。

2.了解⽤SQL语句创建和删除数据库的基本语法。

三. 实验要求3、熟练使⽤查询分析器进⾏数据库的创建和删除操作4、完成⽤sql语句建⽴和删除数据库的实验报告四. 实验内容1.以下是创建数据库userdb1的SQL语句,以下是创建数据库userdb1的SQL语句,CREATE DATABASE userdb1 --创建名为userdb1的数据库on( NAME='userdb2',--数据⽂件的逻辑名称为userdb2FILENAME= 'd:\test\userdb1.mdf', ----物理路径为d:\testSIZE=5mb,----数据初始长度为5MMAXSIZE=10mb, --最⼤长度为10MFILEGROWTH=1mb --数据⽂件每次增长1M)运⾏上诉语句建⽴数据库userdb1.2.⽤SQL语句删除步骤⼀建⽴的数据库userdb1。

drop database userdb1 --删除数据库userdb1实验⼆分别⽤向导和SQL语句创建和删除表⼀.⽤SQL语句创建表在SQL Server 2005 的查询分析器中,⽤sql语句创建student表。

表2.1 student表(学⽣信息表)CREATE TABLE student(sno char(8)not null primary key,--学号(主键)sname char(8)not null,--姓名sex char(2)null,--性别native char(20)null,--籍贯birthday datetime null,--出⽣⽇期dno char(6)null,--所在院系spno char(8)null,--专业代码classno char(4)null,--班级号entime datetime null,--⼊校时间home varchar(40)null,--家庭住址tel varchar(40)null,--联系电话)表2.2 course表(课程信息表)CREATE TABLE course(cno char(10)not null primary key, spno char(8)null,cname char(20)not null,ctno tinyint null,experiment tinyint null,lecture tinyint null,semester tinyint null,credit tinyint null)实验三修改数据库基本表的定义⼀.实验⽬的1.了解表的结构特点。

SQL查询及答案

SQL查询及答案

SQL查询及答案一、单表查询练习1、查询<学生信息表>,查询学生"张三"的全部基本信息Select *from A_studentinfowhere sname='张三'2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息Select *from A_studentinfowhere sname='张三'or sname='李四'3、查询<学生信息表>,查询姓"张"学生的基本信息Select *from A_studentinfowhere sname like '张%'4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息Select *from A_studentinfowhere sname like '%四%'5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。

select *from A_studentinfowhere sname like '李_强'6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。

Select *from A_studentinfowhere sname like '张%'or sname like '李%'7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息Select *from A_studentinfowhere sname like '张%'and province='北京'8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息Select *from A_studentinfowhere province in ('北京','上海','新疆','山东')9、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息Select *from A_studentinfowhere sname like '张%'and province !='北京'10、查询<学生信息表>,查询全部学生信息,并按照“性别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序select *from A_studentinfoorder by sex,province,class11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份select distinct province as 省份from A_studentinfo12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩Select *from A_studentcoursewhere score is null13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序Select *from A_studentcoursewhere score is not nullorder by score desc二、聚合函数练习1、统计<学生信息表>,统计共有多少个学生Select count (*) as 学生数量from A_studentinfo2、统计<学生信息表>,统计年龄大于20岁的学生有多少个Select count(*) as 学生数量from A_studentinfowhere (2021-yearofbirth)>203、统计<学生信息表>,统计入学时间在1980年至1982年的学生人数select count(*) as 学生数量from A_studentinfowhere enrollment between '1998-01-01' and '2021-12-30'对比以下查询方式,看看有何不同,为什么?select count(*) as 学生数量from A_studentinfowhere enrollment between '1998' and '2021'。

实验6 SQL 查询附答案

实验6 SQL 查询附答案

实验六SQL 查询一、实验目的:1.熟练掌握SELECT语句的语法格式2.掌握联接的几种方法3.掌握子查询的表示和执行4.能够对SELECT查询结果进行分组、排序及统计5.能够运用T-SQL语句对表进行数据的插入、修改、删除6.能够通过导入/导出向导进行数据的导入导出二、实验内容:利用实验四中的数据库做如下操作:1.在“学生表”中,找出性别为“男”的学生记录,字段包括“姓名”、“出生日期”和“专业”。

2.在“课程表”中,找出“课程名”中包含“计算机”三个字的课程。

3.在“成绩表”中,找出“课程编号”为“001”的课程成绩前三名学生。

4.在“成绩表”、“学生表”和“课程表”中,找出“课程编号”为“001”的课程成绩在[80,90]之间的学生的姓名、课程名和成绩。

5.在“学生表”中,找出“专业”为“计算机软件”、“电子商务”专业的学生信息。

6.统计“计算机应用基础”课程的平均分。

7.查找各门课程的修课人数。

8.在“成绩表”中,找出课程编号为“001”的这门课程的所有学生的分数以及最高分、最低分和平均分。

9.找出所有女生的“计算机应用基础”这门课的成绩,包括字段:姓名、课程名、成绩。

10.查找“成绩表”中,课程编号为“001”的成绩高于平均分的所有学生的学号、姓名、课程名和成绩。

11.查找“成绩表”中,高于各门课程平均分的学生信息。

12.查找“课程表”中,没有被学生修课的课程信息。

13.将“课程表”中的课程编号为“001”的学分增加1学分。

14.删除学号为“20030101”学生的相关信息。

三、实验过程:启动“查询分析器”,在其文本窗口中输入相应的Transcat-SQL语句,分析并执行,观察输出结果。

1.Use 学生select 姓名,出生日期,专业 from 学生表 where 性别='男'2.use 学生select * from 课程表 where 课程名 like '%计算机%'3.use 学生select top 3 * from 成绩表 where 课程编号='001' order by 成绩 desc4.Use 学生select a.姓名,c.课程名,b.成绩 from 学生表 as a join 成绩表 as b on b.课程编号=001 and a.学号=b.学号 and b.成绩 between 80 and 90join 课程表 as c on c.课程编号=b.课程编号select * from 学生表 where 专业 in ('计算机软件','电子商务')6.use 学生select avg(成绩)as 平均成绩 from 成绩表 as a join 课程表 as bon b.课程名='计算机应用基础' and b.课程编号=a.课程编号select 课程编号,count(学号)as 修课人数 from 成绩表 group by 课程编号8.use 学生select * from 成绩表 where 课程编号=001compute max(成绩),min(成绩),avg(成绩)9.use 学生select a.姓名,b.课程名,c.成绩 from 学生表 as a join 成绩表 as con a.学号=c.学号 and a.性别='女'join 课程表 as bon b.课程编号=c.课程编号 and b.课程名='计算机应用基础'10.use 学生select a.学号,a.姓名,b.课程名,c.成绩 from 课程表 as b join 成绩表 as c on b.课程编号=c.课程编号 and c.课程编号=001 and c.成绩>(select avg(成绩) from 成绩表 where c.课程编号=001)join 学生表 as a on a.学号=c.学号select * from 成绩表 as a where 成绩>(select avg(成绩) from 成绩表 as b where a.课程编号=b.课程编号)12.use 学生select * from 课程表 where not exists(select * from 成绩表 where 成绩表.课程编号=课程表.课程编号)13.use 学生update 课程表 set 学分=学分+1 where 课程编号=001delete 成绩表 where 学号='20030101'。

sql测试题和答案.docx

sql测试题和答案.docx

sql测试题和答案# SQL测试题1. 基础查询题- 题目:编写一个SQL查询,从`employees`表中选择所有员工的姓名和员工ID。

- 答案:`SELECT name, employee_id FROM employees;`2. 条件查询题- 题目:从`orders`表中选择所有订单金额超过1000的订单。

- 答案:`SELECT * FROM orders WHERE order_amount > 1000;`3. 排序题- 题目:从`products`表中选择所有产品的名称和价格,并按价格降序排列。

- 答案:`SELECT name, price FROM products ORDER BY price DESC;`4. 聚合函数题- 题目:计算`sales`表中所有销售额的总和。

- 答案:`SELECT SUM(sales_amount) AS total_sales FROM sales;`5. 分组查询题- 题目:从`sales`表中按产品ID分组,并计算每个产品的总销售额。

- 答案:`SELECT product_id, SUM(sales_amount) AStotal_sales_per_product FROM sales GROUP BY product_id;`6. 连接查询题- 题目:查询`customers`表和`orders`表,找出所有客户的姓名和他们下过的订单数量。

- 答案:`SELECT , COUNT(o.order_id) AS order_count FROM customers c JOIN orders o ON c.customer_id =o.customer_id GROUP BY ;`7. 子查询题- 题目:找出`employees`表中工资高于平均工资的员工的姓名和工资。

- 答案:`SELECT name, salary FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);`8. 多表连接查询题- 题目:查询`employees`表和`departments`表,找出所有员工的姓名、部门名称和部门ID。

sql实验习题答案

sql实验习题答案

sql实验习题答案SQL实验习题答案在学习SQL(Structured Query Language)时,习题是一种非常有效的学习方式。

通过实践操作,我们可以更好地理解SQL语言的各种概念和用法。

下面是一些常见的SQL实验习题及其答案,希望对大家的学习有所帮助。

1. 查询某个表的所有数据答案:SELECT * FROM 表名;2. 查询某个表的前n行数据答案:SELECT * FROM 表名 LIMIT n;3. 查询某个表中满足某个条件的数据答案:SELECT * FROM 表名 WHERE 条件;4. 查询某个表中某个字段的最大值答案:SELECT MAX(字段名) FROM 表名;5. 查询某个表中某个字段的最小值答案:SELECT MIN(字段名) FROM 表名;6. 查询某个表中某个字段的总和答案:SELECT SUM(字段名) FROM 表名;7. 查询某个表中某个字段的平均值答案:SELECT AVG(字段名) FROM 表名;8. 查询某个表中某个字段的记录数答案:SELECT COUNT(字段名) FROM 表名;9. 查询某个表中某个字段的记录数,并按照字段值进行分组答案:SELECT 字段名, COUNT(字段名) FROM 表名 GROUP BY 字段名;10. 查询某个表中满足多个条件的数据答案:SELECT * FROM 表名 WHERE 条件1 AND 条件2;11. 查询某个表中满足多个条件中的任意一个条件的数据答案:SELECT * FROM 表名 WHERE 条件1 OR 条件2;12. 查询某个表中满足某个条件,并按照某个字段进行排序的数据答案:SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名;13. 查询某个表中满足某个条件,并限制结果的行数答案:SELECT * FROM 表名 WHERE 条件 LIMIT n;14. 查询某个表中满足某个条件,并跳过前n行的数据答案:SELECT * FROM 表名 WHERE 条件 OFFSET n;15. 查询某个表中满足某个条件,并按照某个字段进行分页显示答案:SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名 LIMIT n OFFSET m;这些习题涵盖了SQL语言的基本操作和常用函数。

SQL数据库实验报告实验六

SQL数据库实验报告实验六

第1部分实验8 存储过程和触发器1.实验目的(1)掌握通过SQL Server 管理平台和Transact-SQL 语句CREA TE PROCEDURE 创建存储过程的方法和步骤。

(2)掌握使用Transact-SQL 语句EXECUTE 执行存储过程的方法。

(3)掌握通过SQL Server 管理平台和Transact-SQL 语句ALTER PROCEDURE 修改存储过程的方法。

(4)掌握通过SQL Server 管理平台和Transact-SQL 语句DROP PROCEDURE 删除存储过程的方法。

(5)掌握通过SQL Server 管理平台和Transact-SQL 语句CREA TE TRIGGER 创建触发器的方法和步骤。

(6)掌握引发触发器的方法。

(7)掌握使用SQL Server 管理平台或Transact-SQL 语句修改和删除触发器。

2.实验内容及步骤(1)在查询设计器中输入以下代码,创建一个利用流控制语句的存储过程letters_print ,该存储过程能够显示26个小写字母。

CREATE PROCEDURE letters_print ASDECLARE @count int SET @count=0 WHILE @count<26 BEGINPRINT CHAR(ASCII('a')+ @count) SET @count=@count +1 END单击查询分析器的“执行查询”按钮,查看studentsdb 数据库的存储过程是否有letters_print 。

使用EXECUTE 命令执行letters_print 存储过程。

(2)输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名对应的学生的各科成绩。

CREATE PROCEDURE stu_info @name varchar(40)ASSELECT a.学号,姓名,课程编号,分数FROM student_info a INNER JOIN grade taON a.学号= ta.学号WHERE 姓名= @name使用EXECUTE命令执行存储过程stu_info,其参数值为“马东”。

sql数据库实验6答案

sql数据库实验6答案

实验六:数据表综合查询四、实验内容以数据库原理实验4数据为基础,请使用T-SQL 语句实现进行以下操作:1.查询名字中第2个字为‘向’的学生姓名和学号及选修的课程号、课程名;select a.sname,a.sno,o,ame from student a,course b,sc c where a.sname like'_向%'and a.sno=c.sno and o=o2.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;Select a.sno,sname,sdept,o,grade from student a,course b,sc c Where ame in('数学','大学英语')and a.sno=c.sno and o=o3.查询缺少成绩的所有学生的详细情况;Select*from studentWhere sno in(select sno from sc where grade is null)4.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;Select*from studentWhere sage<>(select sage from student where sname='张力')5.按照‚学号,姓名,所在院系,已修学分‛的顺序列出学生学分的获得情况。

其中已修学分为考试已经及格的课程学分之和;Select a.sno,sname,sdept,sum(ccredit)as已修学分from student a,course b,sc cWhere grade>60 and a.sno=c.sno and o=ogroup by a.sno,sname,sdept6.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;Select a.sno,a.sname,o from student a,sc cwhere Cno in(select Cno from sc where sno in(select sno from student where sname='张力'))and a.sno=c.sno7.查询只被一名学生选修的课程的课程号、课程名;select cno,cname from coursewhere cno in(select cno from sc group by cno having COUNT(*)=1)8.使用嵌套查询出选修了‚数据结构‛课程的学生学号和姓名;select sno,sname from studentwhere sno in(select sno from sc where Cno=(select Cno from course where cname='数据结构'))9.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;select sname,sage,sdept from studentwhere sage<any(select sage from student where sdept='cs') and sdept<>'cs'10.使用ANY、ALL 查询,列出其他院系中比WM系所有学生年龄小的学生的姓名;select sname from studentwhere sage<all(select sage from student where sdept='wm') and sdept<>'wm'11.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息;select b.*from student a,student bwhere a.sname='张力'and a.sdept=b.sdept或SELECT*FROM StudentWHERE Sdept IN(SELECT Sdept FROM Student WHERE sname='张力')12.使用集合查询列出CS系的学生以及性别为女的学生学号及姓名;SELECT sno,sname from studentwhere sdept='cs'unionselect sno,sname from studentwhere ssex='女'13.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集;SELECT *FROM Student WHERE Sdept='CS' EXCEPTSELECT *FROM Student WHERE Sage <=19 SELECT *FROM Student WHERE Sdept='CS' INTERSECT SELECT *FROM Student WHERE Sage <=1914.使用集合查询列出选修课程1的学生学号集合与选修课程2的学生学号集合的交集;SELECT Sno FROM SC WHERE Cno='1'IntersectSELECT Sno FROM SC WHERE Cno='2'。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六SQL 查询
一、实验目的:
1.熟练掌握SELECT语句的语法格式
2.掌握联接的几种方法
3.掌握子查询的表示和执行
4.能够对SELECT查询结果进行分组、排序及统计
5.能够运用T-SQL语句对表进行数据的插入、修改、删除6.能够通过导入/导出向导进行数据的导入导出
二、实验内容:
利用实验四中的数据库做如下操作:
1.在“学生表”中,找出性别为“男”的学生记录,字段包括“姓名”、“出生日期”和“专业”。

2.在“课程表”中,找出“课程名”中包含“计算机”三个字的课程。

3.在“成绩表”中,找出“课程编号”为“001”的课程成绩前三名学生。

4.在“成绩表”、“学生表”和“课程表”中,找出“课程编号”为“001”的课程成绩在[80,90]之间的学生的姓名、课程名和成绩。

5.在“学生表”中,找出“专业”为“计算机软件”、“电子商务”专业的学生信息。

6.统计“计算机应用基础”课程的平均分。

7.查找各门课程的修课人数。

8.在“成绩表”中,找出课程编号为“001”的这门课程的所有学生的分数以及最高分、最低分和平均分。

9.找出所有女生的“计算机应用基础”这门课的成绩,包括字段:姓名、课程名、成绩。

10.查找“成绩表”中,课程编号为“001”的成绩高于平均分的所有学生的学号、姓名、课程名和成绩。

11.查找“成绩表”中,高于各门课程平均分的学生信息。

12.查找“课程表”中,没有被学生修课的课程信息。

13.将“课程表”中的课程编号为“001”的学分增加1学分。

14.删除学号为“20030101”学生的相关信息。

三、实验过程:
启动“查询分析器”,在其文本窗口中输入相应的Transcat-SQL语句,分析并执行,观察输出结果。

1.Use 学生
select 姓名,出生日期,专业 from 学生表 where 性别='男'
2.use 学生
select * from 课程表 where 课程名 like '%计算机%'
3.use 学生
select top 3 * from 成绩表 where 课程编号='001' order by 成绩 desc
4.Use 学生
select a.姓名,c.课程名,b.成绩 from 学生表 as a join 成绩表 as b on b.课程编号=001 and a.学号=b.学号 and b.成绩 between 80 and 90 join 课程表 as c on c.课程编号=b.课程编号
5.use 学生
select * from 学生表 where 专业 in ('计算机软件','电子商务')
6.use 学生
select avg(成绩)as 平均成绩 from 成绩表 as a join 课程表 as b
on b.课程名='计算机应用基础' and b.课程编号=a.课程编号
7.use 学生
select 课程编号,count(学号)as 修课人数 from 成绩表 group by 课程编号
8.use 学生
select * from 成绩表 where 课程编号=001
compute max(成绩),min(成绩),avg(成绩)
9.use 学生
select a.姓名,b.课程名,c.成绩 from 学生表 as a join 成绩表 as c on a.学号=c.学号 and a.性别='女'join 课程表 as b
on b.课程编号=c.课程编号 and b.课程名='计算机应用基础'
10.use 学生
select a.学号,a.姓名,b.课程名,c.成绩 from 课程表 as b join 成绩表 as c on b.课程编号=c.课程编号 and c.课程编号=001 and c.成绩>
(select avg(成绩) from 成绩表 where c.课程编号=001)
join 学生表 as a on a.学号=c.学号
11.use 学生
select * from 成绩表 as a where 成绩>
(select avg(成绩) from 成绩表 as b where a.课程编号=b.课程编号)
12.use 学生
select * from 课程表 where not exists
(select * from 成绩表 where 成绩表.课程编号=课程表.课程编号)
13.use 学生
update 课程表 set 学分=学分+1 where 课程编号=001
14.use 学生
delete 成绩表 where 学号='20030101'。

相关文档
最新文档