最新数据库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 语句练习1.设学⽣选课数据库有关系S (sno,sname,age,sex )、SC (sno,cno,grade )和C(cno,cname,teacher ),分别表⽰学⽣、选课和课程,sno 代表学号,sname 代表学⽣姓名,age 代表年龄,sex 代表性别,grade 代表成绩,cno 代表课程号,teacher 代表任课教师。

试完成表⽰下列查询。

(1)检索年龄⼤于21的男学⽣学号(sno)和姓名(sname)。

(2)建⽴性别只能为“男”、“⼥”的约束。

(3)创建⼀个视图v1,该视图⽤来查询学⽣的选课情况,要求包含:学⽣姓名(sname),课程名(cname),任课教师teacher 和成绩grade 。

(4)检索选修课程号为k1和k5的学⽣学号(sno)。

(5)检索全部学⽣都选修的课程的课程号(cno)和课程名(cname)。

(6)删除所有男同学的选课记录。

1.(1)select sno,snae from s where sex=’男’ and age>21 (2)alter table s add constraint c1 check sex in (‘男’,’⼥’)(3)create view v1 as select sname,cname,teacher,grade from s,sc,c where s.sno=sc.sno and/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o (4)select sno fromsc sc1 where cno=’k1’ and exists (se lect * fromsc sc2 where sc1.sno =sc2.sno and/doc/62176c89fe4733687e21aaca.html o=’k5’)(5)select cno,cnam from c where not exists (select * from s where not exists (select * from sc where/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o and s.sno=sc.sno)(6)delete from sc where sno in (select sno from s where sex=’男’)或delete sc from sc,s where s.sno=sc.sno and sex=’男’2.设图书借阅数据库有关系图书(图书编号,书名,作者,出版社,出版时间,图书类别)、读者(读者编号,姓名,读者类别)和借阅(读者编号, 图书编号, 借阅⽇期,还期)。

SQL经典查询练习30问及答案PPT教学课件

SQL经典查询练习30问及答案PPT教学课件
的记录。
• (8)查询与学号为108的同学同岁的所有学生的NO、NAME和AGE。 • (9)查询“张旭”教师任课的课程号,选修其课程学生的学号和成
绩。
• (10)查询选修其课程的学生人数多于5人的教师姓名。
2020/12/11
2
• (11)查询“计算机系”与“电子工程系”不同职称的教师的姓名和 职称。
学生表 教师表
2020/12/11
课程表
1
• 练习作业 • (1)查询选修课程‘3-105’且成绩在60到80之间的所有记录。 • (2)查询成绩为85、86或88的记录。 • (3)查询95031班的学生人数。 • (4)查询至少有5名学生选修并以3开头的课程的平均成绩。 • (5)查询最低分大于70,最高分小于90的NO列。 • (6)查询95033班学生所选课程的平均分。 • (7)查询选修‘3-105’课程的成绩高于‘109’号同学成绩的所有同学
2020/12/11
7
• --(16)列出所有任课教师的NAME和DEPART。 • select name,depart • from teacher • --(17)列出所有未讲课教师的NAME和DEPART。 • select as 教师姓名,depart as 所属院系 • from teacher • where tno not in • (select tno • from course • where cno in ( • select cno • from scores group by cno)); • --(18)列出至少有2名男生的班号。 • select class as 班号 • from student • where sex='男' group by class having count(class) >= 2; • --(19)查询不姓“王”的学生记录。 • select * • from student • where name not in (select name from student where name like '王%'); • --(20)查询每门课最高分的学生的NO、CNO、CRADE。

数据库原理及应用SQL习题集含答案教案

数据库原理及应用SQL习题集含答案教案
数据库原理及应用 SQL习题集含答案教 案
contents
目录
• 数据库基础知识 • SQL语言基础 • 数据库查询优化与索引设计 • 存储过程、触发器和函数应用 • 数据库安全性与完整性保障措施 • 数据库恢复、并发控制及事务管理 • SQL习题集精选与答案解析
01
数据库基础知识
数据库概念及特点
位图索引
适用于低基数列(即列中不同 值的数量较少)的场景,如性 别、婚姻状况等。
全文索引
适用于文本数据的全文搜索场 景,如博客、新闻等。
索引创建、维护和删除操作
创建索引
使用CREATE INDEX语句创建索引,可以指定索 引类型、列名等参数。
删除索引
使用DROP INDEX语句删除不再需要的索引, 以释放存储空间和减少维护开销。
事务处理方式
包括事务的开始与结束、事务的 提交与回滚、事务的并发控制等。 同时,还需要考虑事务的隔离级 别和传播行为等因素。
07
SQL习题集精选与答案解析
选择题部分精选
• 题目1:SQL语言中,用于实现数据检索的 语句是____。
选择题部分精选
A. SELECT B. INSERT C. UPDATE
通过冗余数据来重建数据库, 包括日志文件和数据备份等。
数据库恢复技术
包括基于日志的恢复、基于备 份的恢复和基于镜像的恢复等。
并发操作带来问题及其解决方法
并发操作带来的问题
01
包括丢失更新、脏读和不可重复读等。
并发控制方法
02
包括封锁、时间戳和乐观并发控制等。
封锁协议
03
包括一级封锁协议、二级封锁协议和三级封锁协议,用于保证
A
B

数据库的sql语句练习题

数据库的sql语句练习题

数据库的sql语句练习题1. 练习题一:查询语句基础在学生表(students)中,包含以下字段:学号(id)、姓名(name)、年龄(age)、性别(gender)、班级(class)、成绩(score)。

请编写SQL语句实现以下需求:a) 查询学生表中所有学生的信息。

b) 查询学生表中的男性学生信息。

c) 查询学生表中年龄为18岁的学生信息。

d) 查询学生表中成绩大于等于90分的学生信息。

e) 查询学生表中姓“张”的学生信息。

2. 练习题二:修改语句练习在学生表(students)中,某个学生的学号为1001,需要将该学生的年龄修改为20岁,请编写相应的SQL语句实现此操作。

3. 练习题三:插入语句练习在学生表(students)中添加一条新纪录,学号为1002,姓名为李明,年龄为19岁,性别为男,班级为三年级,成绩为87分,请编写相应的SQL语句实现此操作。

4. 练习题四:删除语句练习在学生表(students)中,某个学生的学号为1003,需要将该学生的信息从表中删除,请编写相应的SQL语句实现此操作。

5. 练习题五:使用多表查询存在两张表,学生表(students)和课程表(courses)。

学生表包含字段:学号(id)、姓名(name)、班级(class);课程表包含字段:课程编号(course_id)、课程名称(course_name)。

已知约德尔学院中,学号为1001的学生参加了编号为1的课程,请编写SQL语句查询学号为1001的学生所选的课程及课程名称。

6. 练习题六:排序查询练习在学生表(students)中,查询所有学生的信息,并按照成绩从高到低进行排序。

以上是数据库的SQL语句练习题,请按照上述要求编写相应的SQL语句进行解答。

祝你练习愉快,取得好成绩!。

SQL语句练习参考答案(教学数据库)

SQL语句练习参考答案(教学数据库)

以下为SQL查询练习参考答案(查询用到的表参照教材P82)。

1.查询全体学生的姓名和所在系。

Select Sno,SdeptFrom Student;2.查询所有课程的详细信息。

Select *From Course;或者Select Cno,Cname,Cpno,CcreditFrom Course;3.查询选修了课程的学生学号。

Select Distinct SnoFrom SC;注意:select子句中需要指定Distinct 关键词4.查询有学生选修的课程号。

Select Distinct CnoFrom SC;5.检索年龄在 18到 20之间(含18和20)的女生的学号、姓名及年龄。

Select Sno,Sname,SageFrom StudentWhere Ssex=’女’ and (Sage between 18 and 20);注意: where子句性别的常量值——女,需用英文状态下的单引号或双引号。

或者Select Sno,Sname,SageFrom StudentWhere Ssex=’女’ and (Sage >=18 and Sage<= 20);6.检索“200215121”学生选修课程号及成绩。

Select Cno,GradeFrom SCWhere Sno=’200215121’;7.检索选修了“1”号或“3”号课程的学生学号、课程号及成绩。

Select *From SCWhere Cno=’1’ or Cno=’3’;注意: where子句若用Cno=’1’ or ’3’是错误的,or连接的是两个布尔表达式。

8.检索所有姓王的同学的姓名、性别和所在系。

Select Sname,Ssex,SdeptFrom StudentWhere Sname like ’王*’;注意: Access中的通配符为’*’ 和’?’标。

准SQL中的通配符为’%’ 和’_’9.检索课程名中包括“数据库”的课程详细信息,结果按学分降序排列。

(sql语句试题练习及参考答案解题思路+个人解题思路)

(sql语句试题练习及参考答案解题思路+个人解题思路)

(sql语句试题练习及参考答案解题思路+个⼈解题思路)SQL字段说明及数据=======================================================================⼀、部门表字段描述:dp_no 部门IDdp_name 部门名称dp_loc 部门所在地⼆、员⼯表字段说明:eNo 员⼯编号eName 员⼯姓名eJob 员⼯职责emgr 上司编号eHiredate ⼊职时间eSal ⼯资ecomm 扣税dp_no 部门ID创建数据库及数据表CREATE DATABASE IF NOT EXISTS SQLTEST;CREATE TABLE IF NOT EXISTS dept(dp_no int(10) not null primary key,dp_name varchar(25),dp_loc varchar(25));CREATE TABLE IF NOT EXISTS EMP(eNo int(25) not null primary key,eName varchar(45),eJob varchar(45),emgr int(25),eHiredate date,eSal int(45),ecomm int(45),dp_no int(25));添加dept表数据:insert into dept(dp_no, dp_name, dp_loc) values (10, 'ACCOUNTING', 'NEW YORK');insert into dept(dp_no, dp_name, dp_loc) values (20, 'RESEARCH', 'DALLAS');insert into dept(dp_no, dp_name, dp_loc) values (30, 'eSalES', 'CHICAGO');insert into dept(dp_no, dp_name, dp_loc) values (40, 'OPERATIONS', 'BOSTON');commit;添加EMP表数据: eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_noinsert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, null, 20);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7499, 'ALLEN', 'eSalESMAN', 7698,'1981-02-20', 1600, 300, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7521, 'WARD', 'eSalESMAN', 7698, '1981-02-22', 1250, 500, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7566, 'JONES', 'MANAGER', 7839, '1981-04-02' , 2975, null, 20);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7654, 'MARTIN', 'eSalESMAN', 7698, '1981-09-28' , 1250, 1400, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01' , 2850, null, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09' , 2450, null, 10);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19' , 3000, null, 20);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7839, 'KING', 'PRESIDENT', null, '1981-11-17' , 5000, null, 10);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7844, 'TURNER', 'eSalESMAN', 7698, '1981-09-08' ,1500, 0, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7876, 'ADAMS', 'CLERK', 7788, '1987-05-23' , 1100, null, 20);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7900, 'JAMES', 'CLERK', 7698, '1981-12-03' , 950, null, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7902, 'FORD', 'ANALYST', 7566, '1981-12-02' , 3000, null, 20);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7934, 'MILLER', 'CLERK', 7782, '1982-01-23' , 5000, null, 10);操作:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------SQL基本操作案例=======================================================================⽼师给的问题及解题思路【1】. 查询出JONES的领导是谁(JONES向谁报告)。

第三章 SQL语言练习题和答案教学总结

第三章 SQL语言练习题和答案教学总结

第三章S Q L语言练习题和答案第三章 SQL语言一、选择题1. SQL语言是(B )的语言,容易学习。

A.过程化B. 非过程化C.格式化D. 导航式2. SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。

其中最重要的,也是使用最频繁的语句是(A)。

A. SELECTB. INSERTC. UPDATED. DELETE3. 在视图上不能完成的操作是()。

A. 更新视图B. 查询C. 在视图上定义新的表D. 在视图上定义新的视图4. SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能()。

A. 数据查询B. 数据操纵C. 数据定义D. 数据控制5. SQL语言中,删除一个视图的命令是()。

A.DELETEB.DROPC.CLEARD.REMOVE6. 在SQL语言中的视图VIEW是数据库的()。

A. 外模式B. 模式C. 内模式D. 存储模式7. 下列的SQL语句中,()不是数据定义语句。

A. CREATE TABLEB. DROP VIEWC. CREATE VIEWD. GRANT8. 若要撤销数据库中已经存在的表S,可用()。

A. DELETE TABLE SB. DELETE SC. DROP TABLE SD. DROP S9. 若要在基本表S中增加一列CN(课程名),可用()。

A.ADD TABLE S(CN CHAR(8))B.ADD TABLE S ALTER(CN CHAR(8))C.ALTER TABLE S ADD(CN CHAR(8))D.ALTER TABLE S (ADD CN CHAR(8))10. 学生关系模式 S( S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。

要在表S中删除一个属性“年龄”,可选用的SQL语句是()。

A. DELETE Age from SB. ALTER TABLE S DROP AgeC. UPDATE S AgeD. ALTER TABLE S ‘Age’11. 有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S #,C#,GRADE)。

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

▪ 4.SQL语言的数据操纵语句包括 SELECT, INSERT,UPDATE和 DELETE,最重要的,也 是使用最频繁的语句是____。
▪ A.SELECT C.UPDATE
B.INSERT D.DELETE
▪ 答案:A
▪ 5.SQL语言具有两种使用方式,分别称为 交互式SQL和____。
▪ A.SELECT S.SN, SC.C#, SC.GRADE
▪ FROM S ▪ WHERE S.S#=SC.S# ▪ B.SELECT S.SN, SC.C#, SC.GRADE
▪ FROM SC ▪ WHERE S.S#=SC.GRADE ▪ C.SELECT S.SN, SC.C#, SC.GRADE
数据库SQL练习题
▪ 1.SQL语言是____的语言,易学习。
▪ A.过程化
B.非过程化
▪ C.格式化
D.导航式
▪ 2.SQL语言是____语言。
▪ A.层次数据库
B.网络数据库
▪ C.关系数据库
D.非数据库
▪ 3.SQL语言具有____的功能。 ▪ A.关系规范化、数据操纵、数据控制 ▪ B.数据定义、数据操纵、数据控制 ▪ C.数据定义、关系规范化、数据控制 ▪ D.数据定义、关系规范化、数据操纵 ▪ 答案:B

WHERE GRADE>=60

GROUP BY S#

ORDER BY 2 DESC

HAVING COUNT(*)>=4
▪ B.SELECT S#, SUM(GRADE)FROM SC

WHERE GRADE>=60

GROUP BY S#

HAVING COUNT(*)>=4

ORDER BY 2 DESC
▪ FROM S, SC ▪ WHERE S.S#=SC.S# ▪ D.SELECT S.SN, SC.C#, SC.GRADE
▪ FROM S.SC ▪ 答案:C
▪ 11.检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出 来。正确的SELECT语句是____。
▪ A.SELECT S#, SUM(GRADE)FROM SC
▪ WHERE SN=’王华’
▪ C.SELECT SN, AGE, SEX FROM S
▪ WHERE AGE>(SELECT AGE

WHERE SN=’王华’)
▪ D.SELECT SN, AGE, SEX FROM S
▪ WHERE AGE>王华.AGE
▪ 答案:A
▪ 9.检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是 ____。
▪ A.SELECT S# FORM SC ▪ WHERE C#=’C2’ AND GRADE>=
▪ (SELECT GRADE FORM SC ▪ WHERE C#=’CZ’) ▪ B.SELECT S# FORM SC ▪ WHERE C#=’C2’ AND GRADE IN
▪ (SELECT GRADE FORM SC ▪ WHERE C#=’C2’) ▪ C.SELECT S# FORM SC ▪ WHERE C#=’C2’ AND GRADE NOT IN

GROUP BY S#

HAVIN COUNT(*)>=4
▪ 答案:B
▪ 12.假定学生关系是S(S#,SNAME,SEX, AGE),课程关系是C(C#,CNAME, TEACHER),学生选课关系是SC(S#,C#, GRADE)。
▪ 要查找选修“COMPUTER”课程的“女”学 生姓名,将涉及到关系____。
▪ 8.检索所有比“王华”年龄大的学生姓名、年龄和 性别。正确的SELECT语句是____。
▪ A.SELECT SN, AGE, SEX FROM S
▪ WHERE AGE>(SELECT AGE FROM S

WHERE SN=’王华’)
▪ B.SELECT SN, AGE, SEX
▪ FROM S
▪ C.SELECT S#, SUM(GRADE)FROM SC

WHERE GRADE>=60

HAVING COUNT(*)>=4

GROUP BY S#

ORDER BY 2 DESC
▪ D.SELECT S#, SUM(GRAD)FROM SC

WHERE GRADE>=60

ORDER BY 2 DESC
▪ A.提示式SQL
B.多用户SQL
▪ C.嵌入式SQL
D.解释式SQL
▪ 答案:C
▪ 6.SQL语言中,实现数据检索的语句是 ____。
▪ A.SELECT
B.INSERT
▪ C.UPDATE
D.DELETE
▪ 答案:A
▪ 7.下列 SQL语句中,修改表结构的是____。▪ ABiblioteka ALTERB.CREATE
▪ C.UPDATE
D.INSERT
▪ 答案:A
▪ 第8到第11题基于这样的三个表即学生表S、 课程表C和学生选课表SC,它们的结构如下:
▪ S(S#, SN, SEX, AGE, DEPT)
▪ C(C#, CN)
▪ SC(S#, C#, GRADE)
▪ 其中:S#为学号,SN为姓名,SEX为性别, AGE为年龄,DEPT为系别,C#为课程号, CN为课程名,GRADE.为成绩。
▪ A.S
B.SC,C
SC
D.S,C,SC
C.S,
▪ 答案:D
▪ 13.如下面的数据库的表中,若职工表的主码是职工号,部门表的主码是部门号,SQL操作____不 能执行。
▪ 职工表(职工号,职工名,部门号,工资) ▪ ▪ 001,李红,01,580 ▪ 005,刘军,01,670 ▪ 025,王芳,03,720 ▪ 038,张强,02,650 ▪ ▪ 部门表(部门号,部门名,主任) ▪ ▪ 01,人事处,高平 ▪ 02,财务处,蒋华 ▪ 03,教务处,许红 ▪ 04,学生处,杜琼 ▪
▪ (SELECT GRADE FORM SC ▪ WHERE C#=’C2’) ▪ D.SELECT S#FROM SC ▪ WHERE C#=’C2’ AND GRADE>=ALL
▪ (SELECT GRADE FROM SC ▪ WHERE C#=’C2’) ▪ 答案:D
▪ 10.检索学生姓名及其所选修课程的课程号和成绩。 正确的SELECT语句是____。
相关文档
最新文档