1.简单说明SELECT语句中,FROM、WHERE、GROUP BY、HAVING子句的作用。
答:FROM子句指定数据来自的表,WHERE子句指定行数据的筛选条件,GROUP BY子句指定用于分组的列,HAVING子句用于对分组后的统计值进行筛选。

2.简单说明COUNT()与COUNT(列名)的区别。
答:COUNT(
)用于统计行的个数,并且不忽略NULL;COUNT(列名)用于统计该列中非空值个数,这个函数会去掉NULL。

3.在聚合函数中,不忽略空值的函数是哪个?
答:COUNT(*)

4.哪些数据类型的列可以使用SUM(列名)和AVG(列名)函数?
答:数值类型的列

5.外连接和内连接的区别是什么?
答:外连接结果会包含连接中一个表的全部数据,内连接结果是只包含两个表中满足连接条件的数据。

6.TOP子句的作用是什么?
答:限定取查询结果中的前若干行数据。

7.DISTINCT子句的作用是去掉表中的重复行数据,这个说法对吗?
答:应该是去掉查询结果中的重复行数据。

8.简单说明嵌套子查询的执行顺序。
答:嵌套子查询是先执行子查询,然后在根据子查询结果执行外层查询。

上机练习
1.查询学生选课表中的全部数据。
答:select * from SC

2.查询计算机系的学生姓名、年龄。
答:select sname, sage from student where sdept = ‘计算机系’

3.查询成绩在70~80分之间的学生学号、课程号和成绩。
答:select sno,cno,grade from sc
where grade between 70 and 80

4.查询计算机系年龄在18~20且性别为“男”的学生姓名、年龄。
答:select sname,sage from student
where sdept = ‘计算机系’
and sage between 18 and 20
and ssex = ‘男’

5.查询“c01”课程最高分。
答:select max(grade) from sc where cno = ‘C01’

6.查询计算机系学生的最大年龄和最小年龄。
答:select max(sage) as max_age, min(sage) as min_age
from student
where sdept = ‘计算机系’

7.统计每个系的学生人数。
答:select sdept, count(*) 学生人数 from student
group by sdept

8.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果(不包括没选课的学生)。
答:select sno,count() 选课门数, sum(grade) 考试总成绩
from sc
group by sno
order by count(
) asc

9.查询总成绩超过200分的学生,列出学号、总成绩。
答:select sno,sum(grade) 总成绩 from sc
group by sno
having sum(grade) > 200

10.查询选了“c02”课程的学生姓名和所在系。
答:select sname,sdept
from student s join sc on s.sno = sc.sno
where cno = ‘C02’

11.查询成绩80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果。
答:select sname,cno,grade
from student s join sc on s.sno = sc.sno
where grade > 80 order by grade desc

12.查询哪些学生没有选课,要求列出学号、姓名和所在系。
答:select s.sno, sname, sdept
from student s left join sc on s.sno = sc.sno
Where sc.sno is null

13.统计每门课程的选课人数,列出课程号和选课人数。( 包括没人选的课程)
答:select c.cno,count(sc.cno) 选课人数
from course c left join sc on c.cno = sc.cno
Group by c.cno

14.查询与VB在同一学期开设的课程的课程名和开课学期。
答:select c2.cname,c2.semester
from course c1 join course c2 on c1.semester = c2.semester
Where c1.cname = ‘VB’ and c1.cname != ‘VB’

15.查询与李勇年龄相同的学生的姓名、所在系和年龄。
答:select S2.Sname,S2.Sdept, S2.sage
from student s1 join student s2 on s1.sage = s2.sage
Where s1.sname = ‘李勇’ and s2.sname != ‘李勇’

16.查询计算机系年龄最小的2名学生的姓名和年龄。
答:select top 2 with ties sname, sage
from student
Where sdept = ‘计算机系’
Order by sage asc

17.查询VB成绩最高的前2名学生的姓名、所在系和VB成绩,包括并列的情况。
答:select top 2 with ties sname, sdept, grade
from student s join sc on s.sno = sc.sno
Join course c on c.cno = sc.cno
Where cname = ‘VB’
Order by grade desc

18.查询选课门数最多的前2名学生的学号和选课门数,包括并列的情况。
答:select top 2 with ties sno, count() 选课门数
from sc
Group by sno
Order by count(
) desc

19.查询学生人数最多的系,列出系名和人数。
答:select top 1 with ties sdept, count() 人数
from student
Group by sdept
Order by count(
) desc

20.用子查询实现如下查询:
(1) 查询选修了“c01”号课程的学生姓名和所在系。
答:select sname, sdept from student where sno in(
select sno from sc where cno = ’ C01’)

(2) 查询数学系成绩80分以上的学生学号、姓名、课程号和成绩。
答:select sno,sname,cno,grade
from student s join sc on s.sno = sc.sno
where s.sno in(
select sno from sc where grade > 80)
and sdept = ‘数学系’

(3) 查询计算机系考试成绩最高的学生姓名。
答:select sname from student
where sno in(
select top 1 sno from sc join student s on s.sno = sc.sno
where sdept = ‘计算机系’
Order by grade desc )

(4) 查询数据结构考试成绩最高的学生姓名、所在系、性别和成绩。
答:select sname,sdept,ssex,grade
from student s join sc on s.sno = sc.sno
where s.sno in(
Select top 1 sno from sc join course c on c.cno = sc.cno
Where cname = ‘数据结构’
Order by grade desc )

21.查询没选VB课程的学生姓名和所在系。
答:select sname,sdept from student
Where sno not in (
Select sno from sc join course c on c.cno = sc.cno
Where cname = ‘VB’ )

22.查询计算机系没选课的学生的姓名和性别。
答:select sname,ssex from student
Where sdept = ‘计算机系’
And sno not in (
Select sno from sc )

23.查询计算机系考试平均成绩最低的学生的姓名及所选的课程名。
答:select sname,cname from student s join sc on s.sno = sc.sno
Join course c on c.cno = sc.cno
where s.sno in (
Select top 1 sno from sc
Where sdept = ‘计算机系’
Group by sno
Order by avg(grade) asc )

24.查询1~5学期中,选课人数最少的课程的课程名、开课学期和学分。
答:select cname,semester,credit from course
Where semester between 1 and 5
And cno in (
Select top 1 cno from sc
Group by cno
Order by count(*) desc )

25.查询计算机系每个学生的考试情况,列出姓名、课程名和考试成绩,并将查询结果保存到一个新表中。新表名为:Computer_Dept
答:select sname,cname,grade into Computer_Dept
from student s join sc on s.sno = sc.sno
Join course c on c.cno = sc.cno
Where sdept = ‘计算机系’

26.创建一个新表,表名为test_t,其结构为:(COL1, COL 2, COL 3),其中:
COL1:整型,允许空值。
COL2:普通编码字符型,长度为10 ,不允许空值。
COL3:普通编码字符型,长度为10 ,允许空值。
试写出按行插入如下数据的语句(空白处表示空值)。
COL1 COL2 COL3
B1
1 B2 C2
2 B3
答:create table test_t(
Col1 int,
Col2 char(10) not null,
Col3 char(10)
)
Insert into test_t values(null,‘B1’,null)
Insert into test_t values(1,‘B2’,‘C2’)
Insert into test_t values(2,‘B3’’,null)

27.删除考试成绩低于50分的学生的选课记录。
答:delete from sc where grade < 50

28.删除没有人选的课程。
答:delete from course where cno not in(
Select cno from sc )

29.删除计算机系VB成绩不及格学生的VB选课记录。
答:delete from sc
From student s join sc on s.sno = sc.cno
Join course c on c.cno = sc.cno
where sdept = ‘计算机系’ and cname = ‘VB’
and grade < 60

30.删除VB考试成绩最低的学生的VB选课记录。
答:delete from sc
From course c join sc on c.cno = sc.cno
Where cname = ‘VB’
And grade = (
Select min(grade) from sc
Join course c on c.cno = sc.cno
Where cname = ‘VB’)

31.将第2学期开设的所有课程的学分增加2分。
答:update course set credit = credit + 2
Where semester = 2

32.将VB课程的学分改为3分。
答:update course set credit = 3
Where cname = ‘VB’

33.将计算机系学生的年龄增加1岁。
答:update student set sage = sage + 1
where sdept = ‘计算机系’

34.将信息系学生的“计算机文化学”课程的考试成绩加5分。
答:update sc set grade = grade + 5
From student s join sc on s.sno = sc.sno
Join course c on c.cno = sc.cno
Where sdept = ‘信息系’
And cname = ‘计算机文化学’

35.将选课人数最少的课程的学分降低1分。
答:update course set credit = credit - 1
Where cno in (
Select top 1 cno from sc
Group by cno
Order by count(*) asc )

《数据库原理与应用》(第三版) 第 6 章 数据操作语句 基础 习题参考答案相关推荐

  1. 《数据库原理与应用》(第三版) 第7章 索引和视图 基础 习题参考答案

    1.索引的作用是什么? 答:索引可以加快数据的查询效率. 2.索引分为哪几种类型?分别是什么?它们的主要区别是什么? 答:分为聚集索引和非聚集索引两种.聚集索引会对数据进行物理排序,非聚集索引不对数据 ...

  2. 《数据库原理与应用》(第三版)第9章 事务与并发控制 基础 习题参考答案

    1.试说明事务的概念及四个特征. 答:原子性.隔离性.一致性.持久性. 2.事务处理模型有哪两种? 答:T-SQL事务处理模型.T-SQL事务处理模型. 3.在数据库中为什么要有并发控制? 答:为避免 ...

  3. 《数据库原理与应用》(第三版)第11章 存储过程和触发器 基础 习题参考答案

    习题 1.存储过程的作用是什么?为什么利用存储过程可以提高数据的操作效率? 答:(1)允许模块化程序设计 (2)改善性能 (3)减少网络流量 (4)可作为安全机制使用 因为系统对存储过程是预编译的. ...

  4. 《数据库原理与应用》(第三版) 第4章SQL Server 2012基础 习题参考答案

    1.安装SQL Server 2012对硬盘及内存的要求分别是什么? 答:SQL Server 2012实际硬盘空间需求取决于系统配置和您决定安装的功能,一般应确保系统驱动器中是否有至少 6.0 GB ...

  5. 《数据库原理与应用》(第三版)第12章 函数和游标 基础 习题参考答案

    1.SQL Server 2012提供的日期和时间函数有哪些? 答:getdate.dateadd.datediff.datename.day.month.year 2.SQL Server 2012 ...

  6. 《数据库原理与应用》(第三版) 第 5 章 数据类型及关系表创建 基础 习题参考答案

    1.Tinyint数据类型定义的数据的取值范围是多少? 答:0-255 2.SmallDatatime类型精确到哪个时间单位? 答:分钟 3.定点小数类型numeric中的p和q的含义分别是什么? 答 ...

  7. 《数据库原理与应用》(第三版)第15章 备份和恢复数据库 基础 习题参考答案

    1.在确定用户数据库的备份周期时,应考虑哪些因素? 答:允许丢失的数据的多少?数据的操作高峰和低谷时间等. 2.对用户数据库和系统数据库分别应该采取什么备份策略? 答:对用户数据库是周期性备份:对系统 ...

  8. 《数据库原理与应用》(第三版)第13章 安全管理 基础 习题参考答案

    习 题 1.通常情况下,数据库中的权限划分为哪几类? 答:通常情况下,将数据库中的权限划分为两类.一类是对数据库系统进行维护的权限,另一类是对数据库中的对象和数据进行操作的权限. 2.数据库中的用户按 ...

  9. 数据库原理与应用第三版何玉洁第七章课后习题答案

    1 提高数据的查询效率 2 聚集索引,非聚集索引, 聚集索引首先按聚集索引列的值对数据进行物理排序,然后在此基础上直接建立索引B树, 非聚集索引系统直接再现有数据存储顺序的基础之上直接建立索引B树,B ...

最新文章

  1. 求二进制中1的个数(编程之美2.1)
  2. 《科学》十大年度科学突破反映的新动向
  3. android HTTP发送及MD5加密收集
  4. javascript常见面试题之一:将字符串'get-element-by-id'转换成驼峰命名法;
  5. ls命令 文件和目录属性
  6. 小米台灯底座接口很松_小米新品,米家充电台灯,续航40小时,不足百元,米粉:买买买...
  7. Python全栈之路Day16
  8. 十大领域管理软件供应商入选厂商如下(排名不分先后)
  9. 模型预测控制的缺点_模型预测控制(MPC)与最优控制的理论分析 | NeurIPS 2020
  10. word 宏命令 表头与图名的设置
  11. Reader之FileReader、BufferedReader
  12. Java异常处理中throw与throws的用法区别
  13. 生命已经这么短,为什么还不追求自己真正想要的
  14. 辽宁省转升c语言考试真题,『2015年辽宁省考行测真题』2015年辽宁省考行测真题资料大全_2015年公务员辽宁省考行测真题及答案-华图教育...
  15. python数据清洗笔记
  16. python t检验显著差异_Python整合方差齐性检验的t检验的小技巧
  17. CentOS搭建SonarQube8.3
  18. 计算机散热程序,电脑的散热方法_百度经验
  19. 广西大学oj1037(小西的c语言作业)
  20. 如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数

热门文章

  1. JavaScript学习笔记系列2:Dom操作(一)
  2. 服务器强迫患者 ;软件试用狂人
  3. asp.net超过字数限制用省略号...表示
  4. android:由URL载入中ImageView
  5. eclipse +python 修改 各种颜色 +字体
  6. OS开发之纯代码界面--基本控件使用篇
  7. PNGEncoder生成透明png图片
  8. iBATIS In Action:执行非查询语句(二)
  9. mysql hive索引_Hive数据仓库--HiveQL视图和索引
  10. c++函数题-牛牛与好数