【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《数据库SQL部分练习题集》,欢迎阅读!
1.SQL是_结构化查询语言__
2.SQL语言的功能包括__数据定义___、__数据更新_、_数据查询__、__数据控制_。
3.视图是一个虚表,它是从______中导出的表,在数据库中,只存放视图的____,不存放视图的________。 4.设有如下关系表R:R(No,Name, Sex, Age, Class),主关键字是No,其中No为学号,Name为姓名,Sex为性别,age为年龄,Class为班号,写出实现下列功能的SQL语句。 ① 插入一个记录(25,‘李明’,‘男’,21,‘95031’); ____________________________________________________________
②插入‘95031’班学号为30,姓名为‘郑和’的学生记录;
____________________________________________________________
③将学号为10的学生姓名改为‘王华’;
____________________________________________________________
④将所有‘95101’班号改为‘95091’;
____________________________________________________________
⑤删除学号为20的学生记录;
____________________________________________________________
⑥删除姓‘王’的学生记录;
____________________________________________________________
5.SQL语言是___________的语言,易学习。
A.过程化 B.非过程化 C. 格式化 D.导航式
6.SQL语言是___________语言
A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库
7.SQL语言具有___________的功能。 A. 关系规范化、数据操纵、数据控制 B. 数据定义、数据操纵、数据控制 C. 数据定义、关系规范化、数据控制 D. 数据定义、关系规范化、数据操纵
8.SQL语言具有两种使用方式,分别称为交互式SQL和______________。
A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL
9.SQL语言中,实现数据检索的语句是____________。
A.SELECT B.INSERT C.UPDATE D.DELETE
10.下列SQL语句中,修改表结构的是_________________。 A.ALTER B.CREATE C.UPDATE D.INSERT
11.试述SQL语言的特点 12.试述SQL语言的功能
13.什么是基本表?什么是视图?两者的区别和联系是什么?
14.所有的视图是否都可以更新?哪些视图不可更新,举例说明?
15.设有关系职工表(职工号,职工名,部门号,工资)和部门表(部门号,部门名,主任),用SQL语句完成下列要求:
(1)向职工表中插入行(‘025’,‘王芳’,‘03’,1000)
___________________________________________________ (2)从职工表中删除人事处的所有员工
___________________________________________________
_______
(3)将职工号为‘001’的员工工资改为700元钱
____________________________________________________________
(4)查询人事处的员工最高工资
___________________________________________________________
(5)查询“王芳”所在部门的部门主任
_____________________________________________________________
(6)查询与“王芳”在同一部门的其它员工信息
_____________________________________________________________
(7)建立公司所有部门的公共视图——部门职工视图 _create view部门职工视图 as select 职工号,职工名,部门号,工资,部门名,主任 from 职工 join 部门 on 职工.部门号=部门.部门号
(8)从部门职工视图中查询财务处员工工资高于800元
的员工信息
_select * from 部门职工视图 where 部门名=‘财务处’ and 工资 > 800_
16.设有如下三个关系表:
Book(ID,Name,Author,Publish,Price) Reader(ID,Name,Sex,BirthDate) Borrow(BookID,ReaderID,BorrowDate) 写出实现下列功能的SQL语句:
(1)向Reader表插入一条读者信息(05A110001,李丹,女,1880-4-1)
_____________________________________________________________
(2)将Book表中所有清华大学出版社出版的21元的图书价格改为25元
__________________________________________________________
(3)从Borrow表中删除在2005-1-5之后的读者借书信息
____________________________________________________________
(4)查询图书表中的所有图书的最高价格 _____select max(price) from book________ (5)查询清华大学出版社出版的定价不超过25元的图书名称
Select name from book
where publish=‘清华大学出版社’and price<25 __________
(6)显示姓李且姓名只含两个字的作者撰写的图书信息 Select * from book where author like ‘李_’
(7)求出版图书数量最多的出版社所出版的图书定价的平均值s
select publish, avg(price) s from book group by publish having count(*)>=all(
select count(*) from book group by publish)
(8)求读者胡晓丹所借的图书编号、书名和出版社信息及借书时间
Select book.ID, book.name, publish, borrowdate From book join borrow on book.ID=borrow.bookID
Join reader on reader.ID=borrow.readerID Where reader.name=’胡晓丹’
(9)创建一个读者借书的视图R _ B_View ( ReaderName, BookName, BorrowDate)
___________________________________________________________________________
(10)从视图R_B_View中查找2005-5-22日借书的读者姓名和书名
___________________________________________________________________________
BookAuthor,
BookPublish,
BookPrice,
1. 请根据如下四张表做后面的练习:
学生表Student ( Sno, Name, Sex, Birthday, Class) 教师表Teacher ( Tno, Name, Sex, Birthday, Prof, Depart)
课程表Course ( Cno, CName, Tno)
成绩表Score ( Sno, Cno, Grade) 其中:
Student表中Sno是主码, Teacher表中Tno是主码,
Course表中的Tno是Teacher表的外码, Score表中的Sno是Student表的外码、Cno是
Course表的外码。
① 向student表添加Depart列的信息,要求类型为字符串型,最大长度30位;
② 向teacher表插入一条记录(010125,刘冰,女,1975-06-25,助教,电子工程系);
insert into teacher(‘010125’,‘刘冰’,‘女’,‘1975-06-25’,‘助教’,‘电子工程系’)
③ 将student表中学号为‘209’的学生班号改为‘95031’ Update student set class=’95031’
where sno=’209’
④ 删除选修“刘冰”教师所教课程的学生选课信息 Delete from Score where cno in( Select cno from Course where Tno in(
Select Tno from Teacher where name=’ 刘冰’)) ⑤ 显示student中‘95031’班或性别为‘女’的同学记录 Select * from student
where class=’95031’ or sex=’女’
⑥ 查找最低分大于70分,最高分小于90分的学生No; Select sno from score Group by sno
Having Min(grade)>70 and max(grade)<90
⑦ 查找score表中至少有5名学生选修的并以3开头的课程号的平均分数
Select cno, avg(grade) from score where cno like ‘3%’
Group by cno Having Count(*)>=5 ⑧ 显示‘95033’班所选课程的平均分; Select avg(grade)
from student join score on student.sno=score.sno where class=’95033’
⑨ 显示“张旭”教师任课的学生成绩。
Select grade from teacher join course on teacher.tno=course.tno join score on score.cno=course.cno where teacher.name=’张旭’
select grade from score where cno in( select cno from course where tno in(
select tno from teacher where name=’张旭’)) ⑩ 显示选修某课程的同学人数多于5人的教师姓名 Select score.cno,teacher.name
from teacher join course On teacher.tno=course.tno join score on score.cno=course.cno
group by score.cno, teacher.tno,teacher.name having count(*)>=5
select name from teacher where tno in( select tno from course where cno in(
select cno from score group by cno having count(*)>=5))
(11)显示所有存在85分以上成绩的课程cno Select cno from score where grade>85
(12)显示选修了课程号为‘3-105’课程且成绩高于选修课程号为‘3-245’课程的学生的cno,no和grade。 (13)显示所有未讲课的教师name和depart(只能用子查
询)
Select name , depart from teacher where tno not in( Select tno from course)
(14)显示和李军同性别且同班的同学姓名
Select name from student where sex = ( select sex from student where name=’李军’) and class=( select class from student where name=’李军’)
(15)显示所有选修’计算机导论’课程的男同学的成绩表 Select
score.*
from
score
join
student
on
student.sno=score.sno join course on course.cno=score.cno Where course.name=’计算机导论’ and sex=’男’
Select * from score where cno in (select cno from course where name=’计算机导论’) and sno in(select sno from student where sex=’男’)
(16)显示最高分学生的no,cno和grade列 ---第一种理解:某一课程最高分
Select * from score where grade=(select max(grade) from score)
Select * from score where grade>=all(select grade from score) ---第二种理解:该学生总分最高
Select * from score where sno in (select sno from score group by sno having sum(grade)>=all(select sum(grade) from score
group by sno))
(17)按班级和年龄从大到小的顺序显示student表的全部记录
Select * from student order by class desc, birthday asc (18)建立一个包含所有学生no,name,cname,grade 和 class字段的视图degrees
Create view degrees(no, name, cname, grade, class) As select student.sno, Name, Cname, grade, class From student join score on student.sno=score.sno Join course on course.cno=score.cno
(19)根据上题所建视图,查询‘95031’班级的学生选课信息
Select * from degrees where class=’95031’
(20)查询选修四门课以上课程的学生总成绩(不统计不及格的课程)
2. 按照要求用SQL语句创建下面三张表: ⑪. 学生表:表名——Student
属性:Sno 字符型,最大7个字符 表示学生学号 Sname 字符型,最大8个字符 表示学生姓名 Sage 整型 表示学生年龄 Ssex 字符型,最大2个字符 表示学生性别 Sdate 日期时间型 表示学生入学时间 Sdept 字符型,长度为20 表示所在系 约束:主码——Sno 非空属性——Sname 默认入学时间——‘2000-09-01’ Create table student (
Sno char(7) primary key, Sname char(8) not null,
Sage int check(sage>10 and sage<60), Ssex char(2) check(ssex=’男’ or ssex=’女’),
Sdate datetime default ‘2000-9-1’, Sdept char(20) )
⑫. 课程表:表名:Course
属性:Cno 字符型,最大4个字符 表示课程编号
Cname 字符型,最大10个字符 表
示课程名
Cteacher 字符型,最大8个字符 表
示教师姓名
Coffice 字符型,最大20个字符 表
示办公室
约束:主码——Cno 非空属性——Cname ⑬. 选课表:表名——SC
属性:Sno 字符型,最大7个字符 表示学生学号
Cno 字符型,最大4个字符 表示课程号 Grade 整型 表示成绩
约束:主码——Sno,Cno; Sno,Cno均为外码) Create table sc( Sno char(7) , Cno char(4),
Primary key(sno,cno),
Grade int check(grade>=0 and grade<=100) , Foreign key(sno) references student(sno), Foreign key(cno) references course(cno) )
针对上面的三个基本表做如下的练习: ⑭.向基本表
Student
中插入学生元组
(”0201901”,”ZHAO”,18,”女”,2002-08-31,NULL) ⑮.把WANG同学的选课记录全部删除
⑯.查询在C117办公室的老师所授课程的课程号和课程名 ⑰.查询平均成绩在75分以上的学生学号和其平均成绩 ⑱.查询其他系比信息系年龄最小的学生还小的学生姓名、年龄
⑲.查询所有缺考的学生的学号、姓名和系别 ⑳.查询选修了“C01”课程的学生总人数和最高分数 ⑴.查询在2000-8-31日入学的男学生的学号和姓名 ⑵.查询与刘晨选修的一门课程相同的学生姓名
⑶.查询与QIAN老师在同一个办公室的其它老师的姓名 ⑷.查询至少选修LIU老师所授课程中一门课程的女学生姓名
⑸.查询哪些课程没有人选修
⑹.查询选修了课程‘C02’且成绩高于此课程的平均成绩的学生的学号和成绩
⑺.求平均分最高的学生姓名
⑻. 显示20岁学生的基本信息和选课信息(课程名和分数),若没有选课,也要将基本信息显示出来
⑼. 建立计算机系选修了课程‘c01’的学生的视图
⑽.建立视图(SGrade),包含每个学生的学号(Sno),选课门数(Count_Cno),平均分(Avg_Grade)
(21). 利用上述视图进行查询:列出平均分大于80分的学生的学号及其选课门数
(22). 查询选修了3门以上课程的学生学号
(23). 查询以DB开头且倒数第三个字母是i的课程的课程号、课程名
3. 按照要求用SQL语句创建下面三张表: ⑪. 商店表:表名——SHOP
属性:S# 字符型,最大7个字符 表示商店代号
SNAME 字符型,最大20个字符 表示商店名称 WQTY 整型 表示店员人数
CITY 字符型,最大10个字符 表示所在城市 约束:主码——S# 非空属性——Sname
店员人数要大于50人
⑫. 商品表:表名:GOODS
属性:
G# 字符型,最大8个字符 表示商品编号 GNAME 字符型,最大20个字符 表示商品名称
PRICE 数值型,精度4位,小数保留2位 表示商品价格
约束:主码——G# 非空属性——GNAME ⑬. 数量表:表名——STORAGE
属性:S# 字符型,最大7个字符 表示商店代号
G# 字符型,最大8个字符 表示商品编号 QTY 整型 表示该商店所储存的商品数量
约束:主码——S#,G#; S#,G#均为外码
QTY要大于等于0
针对上面的三个基本表做如下的练习:
⑭.向基本表SHOP中插入商店元组(”350”,”家乐福超市”,200,”大连”)
⑮.把家乐福超市储存收音机商品的记录删除 ⑯.将编号为056的商品价格修改为750元 ⑰.查询在北京的商店其平均人员数量
⑱.查询储藏笔记本数量最多的商店名称(较难) ⑲.查询上海市所有供应手机的商店名
⑳.查询店员人数不超过100人或者在天津市的所有商店的代号和名称
⑴.查询至少供应代号为256的商店所供应的全部商品的商店名称和所在城市
⑵.创建一个北京市的商店供应商品的视图S_G_View ( ShopNo, ShopName, GoodsName, Quantity)
Create view S_G_View( ShopNo, ShopName, GoodsName, Quantity)
As select Shop.S#, Sname, Gname, QTY From shop join storage on shop.S#=storage.S# Join Goods on Goods.G#=storage.G# Where city=’北京市’
(13). 利用上述视图进行查询:列出北京存储电视机超过800台的商店名称和商品数量
Select shopname, Quantity from S_G_View Where GoodsName=‘电视机’ and Quantity>800
创建如下结构的三张表格,这三张表格在后面的作业中会反复用到,请大家认真完成: ① 图书表 表名:Book
结构:共有5列,具体如下所示
列名 ID
数据类型 CHAR(10)
描述 图书编号
Name NVARCHAR(30) 图书的
书名
Author NVARCHAR(10) 图书的
作者
Publish NVARCHAR(20) 出版社 Price
② 读者表 表名:Reader
结构:共有列,具体如下所示
列名 ID
数据类型 CHAR(10)
描述 读者编号
Name
NVARCHAR(8) 读者姓DECIMAL(6,2)
定价
名
Sex
NCHAR(1)
读者性别
BirthDate
DATETIME
读者的出生日期
③ 借阅情况表 表名:Borrow
结构:共有列,具体如下所示
列名 BookID
数据类型
描述
CHAR(10) 图书编
号
ReaderID CHAR(10) 读者编
号
BorrwoDate DATETIME 借阅日
期
作为练习,把下面的数据录入到相对应的表中:Book
ID
Name
Author
Publish
Price 28.00
A32DT00001 计算机文
化基础
A32DT00002 数据库原
周文波 清华大学出版
社
岳海健 电子工业出版
25.00
理
B32DT00001 高等数学
李丹
社 同济大学出版
社
42.00
B32DT00002 离散数学 王旭 高等教育出版
社
31.00
C32DT00001 毛泽东思
想
D32DT00001 大学语文 A32DT00003 操作系统
刘琳 机械工业出版
社
18.00
赵阳 周强
水电出版社 清华大学出版
社
22.00 24.00
A32DT00004 C语言 谭浩强 清华大学出版
社
20.00
B32DT00003 线形代数 李俐 高等教育出版
社
12.00
B32DT00004 概率论与
数理统计
Reader
ID 021B310003 021B310004 021B310005 021B310006
Name 于海颖 胡晓丽 宋玮 施秋乐
颜承伟 机械工业出版
社
22.00
Sex 男 女 女 NULL
BirthDate NULL 1977-1-26 NULL 1976-9-20
021B310007 021B310008 Borrow
BookID
张巍 王金娟
NULL NULL
NULL NULL
ReaderID BorrwoDate 2005-1-20 2005-1-20 2005-2-1 2005-2-1 2005-2-3
A32DT00002 021B310003 A32DT00001 021B310006 B32DT00001 021B310004 B32DT00002 021B310004 C32DT00001 021B310006
作业:
1. 查询所有图书的平均价格。 Select avg(price) from book 2. 查询姓王的女读者信息
Select * from reader where name like ‘王%’ And sex=’女’ 3. 查询所有读者的借阅信息,按照借阅日期降序排列。
Select * from borrow order by borrowdate desc 4. 查询被借阅过的图书编号
Select distinct book_id from borrow
5. 查询每个出版社出版的图书数量,用中文列名显示出版社和图书数量。
Select publish as 出版社, count(*) as 图书数量 from book group by publish 6. 查询书名包含“数据库”且价格低于40元的图书信息。 Select * from book
where name like ‘%数据库%’ and price<40 7. 查询平均价格低于30元的出版社名称。 Select publish from book Group by publish Having avg(price)<30
1. 2.
把Reader表的所有记录显示出来,并且列名用汉字把表Book中的所有数据都显示出来。
表示。 3. 4.
查询borrow表中所有读者借阅图书的信息。 显示所有读者(Reader)的姓名和年龄。
5. 6.
查询所有借书的读者编号。
把表Book中的出版社为“清华大学出版社”的书选
出来。 7.
把表Book中出版社为“清华大学出版社”,并且定
价不超过25元的书选出来。 8.
把表Book中出版社为“清华大学出版社”,或者定
价不超过25元的书选出来。 9.
显示定价在20到25元之间(包含20元和25元)
的图书信息。
10.显示定价不在20到25元之间(不包含20元和25元)的图书信息。
11.显示出版社为“清华大学出版社”、“同济大学出版社”或者“高等教育出版社”的图书信息。
12.显示出版社为“清华大学出版社”、“同济大学出版社”或者“高等教育出版社”以外的其它出版社出版的图书信息。
13.显示书名包含“数学”的图书信息。
14.显示姓名为三个字的读者信息。
15.显示由姓李的作者写的书的信息。
16.把所有的图书按照定价由高到低进行排序。
17.把所有的图书按照定价由高到低进行排序,如果定价相同,再按照编号进行升序排列。
18.求定价最低的图书的定价。
19.求由“清华大学出版社”出版的图书的定价的平均值。
20.求读者表(Reader)中有多少位读者。
21.求每一个出版社出版的图书定价的平均值。
22.求出版了两本以上(含两本)图书的出版社所出版的图书定价的平均值。
23.求定价最低的图书的书名以及定价。
24.求在2005年2月3日借书的人的姓名。
25.求平均定价最高的出版社的名称。
26.求在2005年2月3日有哪些人借了哪些书。 综合:
(1)向Reader表插入一条读者信息(05A110001,李丹,女,1880-4-1)
_____________________________________________________________
(2)将Book表中所有清华大学出版社出版的21元的图书价格改为25元
__________________________________________________________
(3)从Borrow表中删除在2005-1-5之后的读者借书信息
____________________________________________________________
(4)查询图书表中的所有图书的最高价格
___________________________________________________________
(5)查询清华大学出版社出版的定价不超过25元的图书名称
_____________________________________________________________
(6)显示姓李且姓名只含两个字的作者撰写的图书信息
_____________________________________________________________
(7)求出版图书数量最多的出版社所出版的图书定价的平均值
______________________________________________________________
(8)求读者胡晓丹所借的图书编号、书名和出版社信息
及借书时间
_______________________________________________________________
(9)创建一个读者借书的视图R _ B_View ( ReaderName, BookName, BorrowDate)
___________________________________________________________________________
(10)从视图R_B_View中查找2005-5-22日借书的读者姓名和书名
BookAuthor,
BookPublish,
BookPrice,
本文来源:https://www.wddqxz.cn/6270e5f16c1aff00bed5b9f3f90f76c661374cdd.html