最新数据库SQL练习题教学文案
- 格式:ppt
- 大小:451.00 KB
- 文档页数:49
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 语句练习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语句练习题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查询练习参考答案(查询用到的表参照教材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字段说明及数据=======================================================================⼀、部门表字段描述: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向谁报告)。
第三章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)。
2023 SQL 数据库管理练习题及答案练习一:创建表格在关系型数据库中,表格是存储数据的基本单位。
请根据以下需求创建一个名为“Students”的表格,包括以下字段:- 学号(StudentID):学生的唯一标识符,类型为整数。
- 姓名(Name):学生的姓名,类型为字符串。
- 年龄(Age):学生的年龄,类型为整数。
- 成绩(Grade):学生的成绩,类型为浮点数。
使用 SQL 语句创建表格的格式如下所示:```CREATE TABLE 表格名称 (字段1 数据类型,字段2 数据类型,...);```练习二:插入数据在已创建的表格中插入数据是常见的操作。
请根据以下需求向表格“Students”中插入三条学生记录:- 学号为001,姓名为张三,年龄为18岁,成绩为85.5。
- 学号为002,姓名为李四,年龄为20岁,成绩为90.0。
- 学号为003,姓名为王五,年龄为19岁,成绩为78.5。
使用 SQL 语句插入数据的格式如下所示:```INSERT INTO 表格名称 (字段1, 字段2, ...)VALUES (值1, 值2, ...);```练习三:查询数据查询是数据库管理中重要的操作之一。
请根据以下需求从表格“Students”中查询数据:1. 查询所有学生的学号和姓名。
2. 查询成绩大于等于90分的学生记录。
3. 查询年龄大于等于20岁的学生记录,并按照成绩降序排列。
使用 SQL 语句查询数据的格式如下所示:```SELECT 字段1, 字段2, ...FROM 表格名称WHERE 条件;```练习四:更新数据数据的更新是数据库管理中常见的操作之一。
请根据以下需求更新表格“Students”中的数据:将学号为001的学生记录的成绩更新为88.0。
使用 SQL 语句更新数据的格式如下所示:```UPDATE 表格名称SET 字段 = 新值WHERE 条件;```练习五:删除数据数据的删除也是数据库管理中常见的操作之一。
2023SQL数据库操作复习题集附答案SQL数据库操作复习题集附答案1. 操作数据库表题目一:创建表根据以下需求,创建一个名为"Students"的表,并定义适当的字段和数据类型:- 学生ID(整型,主键)- 姓名(字符串类型,最大长度为50)- 年龄(整型)答案一:CREATE TABLE Students (StudentID INT PRIMARY KEY,Name VARCHAR(50),Age INT);题目二:插入数据向"Students"表中插入以下两条学生记录:- 学生ID:1,姓名:张三,年龄:20- 学生ID:2,姓名:李四,年龄:22答案二:INSERT INTO Students (StudentID, Name, Age) VALUES (1, '张三', 20),(2, '李四', 22);2. 查询数据题目三:基本查询完成以下查询操作:1. 查询所有学生记录的学生ID和姓名;2. 查询年龄大于等于21岁的学生记录。
答案三:1. SELECT StudentID, Name FROM Students;2. SELECT * FROM Students WHERE Age >= 21;题目四:排序查询查询所有学生记录,并按照年龄从小到大排序。
答案四:SELECT * FROM Students ORDER BY Age ASC;3. 更新和删除数据题目五:更新记录将学生ID为1的学生姓名改为"王五"。
答案五:UPDATE Students SET Name = '王五' WHERE StudentID = 1;题目六:删除记录删除所有年龄小于18岁的学生记录。
答案六:DELETE FROM Students WHERE Age < 18;4. 高级操作题目七:连接查询创建一个名为"Courses"的表,包含以下字段:- 课程ID(整型,主键)- 课程名称(字符串类型,最大长度为100)- 学生ID(整型,外键)编写SQL语句实现以下查询操作:查询选修了课程ID为1的学生的姓名和课程名称。