2022年数据库SQL习题终稿 .pdf
《2022年数据库SQL习题终稿 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库SQL习题终稿 .pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、S Q L 习题商品销售数据库Article(商品号 char(4),商品名 char(16) ,单价 Numeric(8,2),库存量 int) 商品Customer( 顾客号 char (4),顾客名 char (8),性别 char(2),年龄 int) 顾客OrderItem( 顾客号 char(4),商品号 char(4),数量 int, 日期 date) 定购1、 检索定购商品号为 0001的顾客号和顾客名。select distinct 顾客号 from OrderItem where 商品号 =0001 or 商品号 =0002; 2、 检索定购商品号为 0001或0002的顾
2、客号。 select distinct 顾客号 from OrderItem where 商品号 =0001 or 商品号 =0002; 3、检索至少定购商品号为0001和0002的顾客号。 ( 用交的方法 ) select 顾客号 from OrderItem where 商品号 =0001 and 顾客号 in( select 顾客号from OrderItem where 商品号 =0002); 4、检索至少定购商品号为0001和0002的顾客号。 ( 用自表连接方法 ) select X. 顾客号 from OrderItem X,OrderItem Y where X.顾客号 =Y.
3、 顾客号 and X. 商品号=0001 and Y. 商品号 =0002; 5、检索没定购商品的顾客号和顾客名。select 顾客号 , 顾客名 from Custommer where 顾客号 not in (select 顾客号 from OrderItem); 6、检索一次定购商品号 0001商品数量最多的顾客号和顾客名。select 顾客号 , 顾客名 from Custommer where 顾客号 in(select 顾客号 from OrderItem where 商 品 号 =0001and 数 量 =(select MAX(数 量 )from OrderItem where
4、 商 品 号=0001); 7、检索男顾客的人数和平均年龄。 select count(*) 人数 ,avg( 年龄 ) 平均年龄 from Custommer where 性别 = 男; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 16 页 - - - - - - - - - 8、检索至少订购了一种商品的顾客数。select count(distinct 顾客号 ) from OrderItem; 9、检索订购了商品的人次数。select count( 顾客号 )
5、from OrderItem; select count(distinct 顾客号 ) from OrderItem; 10、检索顾客张三订购商品的总数量及每次购买最多数量和最少数量之差。select sum( 数量 ),MAX( 数量 )-MIN( 数量 ) from OrderItem,Custommer where OrderItem.顾客号 =Custommer.顾客号 and 顾客名 = 张三 ; 11、检索至少订购了3 单商品的顾客号和顾客名及他们定购的商品次数和商品总数量,并按商品总数量降序排序。select Custommer.顾客号 , 顾客名 ,count( *),Sum(
6、数量 ) from OrderItem,Custommer where OrderItem.顾客号 =Custommer.顾客号 group by Custommer.顾客号 , 顾客名having count( *)3 order by 4 desc; 12、检索年龄在 30至 40 岁的顾客所购买的商品名及商品单价。select 商 品 名 , 单 价from Custommer,Article,OrderItem where Custommer. 顾 客 号=OrderItem.顾客号 and Article.商品号 =OrderItem. 商品号 and 年龄 between 30 a
7、nd 40; 13、创建一个视图GM ,字段包括:顾客号,顾客名和定购的商品名,日期和金额(金额 =数量*单价)。指定用内连接方式做。create view GM as select Custommer.顾客号 , 顾客名 , 商品名 , 日期 , 单价 * 数量 as 金额from Custommer,Article,OrderItem where Custommer. 顾客号 =OrderItem. 顾客号 and Article.商品号 =OrderItem.商品号create view GM1 as select Custommer.顾客号 , 顾客名 , 商品名 , 日期 , 单价
8、* 数量 as 金额from (Custommer inner join OrderItem on Custommer.顾客号 =OrderItem.顾客号 ) inner join Article on Article.商品号 =OrderItem.商品号14、 检索购买的商品的单价至少有一次高于或等于1000 元的顾客号和顾客名。select Custommer.顾客号 , 顾客名 from Custommer,OrderItem,Article where Custommer. 顾客号 =OrderItem. 顾客号 and Article.商品号 =OrderItem.商品号名师资料总
9、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - - - and 单价 1000 15、 检索购买的购买价都高于或等于1000 元的顾客号和顾客名。 select Custommer.顾客号 , 顾客名 from Custommer where 顾客号 in (select 顾客号 from OrderItem where 顾客号 not in (select 顾客号 from OrderItem,Article where OrderItem.
10、商品号 =Article.商品号 and 单价 10) 22、建立断言:顾客的年龄必须大于18 岁。 Create ASSERTION A1 check ( not exists (select * from Custommer where 年龄 23) AND (SEX=M ) (3)检索至少选修LIU 老师所授课名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - 程中一门课程的女学生姓名。SELECT SNAME FROM S
11、 WHERE SEX=F AND S# IN (SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE TEACHER=LIU)NOTICE :有多种写法,比如联接查询写法:SELECT SNAME FROM S,SC,C WHERE SEX=F AND SC.S#=S.S# AND SC.C#=C.C# AND TEACHER=LIU 但上一种写法更好一些。(4)检索 WANG 同学不学的课程的课程号。SELECT C# FROM C WHERE C# NOT IN (SELECT C# FROM SC WHERE S# IN (SELEC
12、T S# FROM S WHERE SNAME=WANG) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 16 页 - - - - - - - - - (5)检索至少选修两门课程的学生学号。SELECT DISTINCT X.SNO FROM SC X,SC Y WHERE X.SNO=Y.SNO AND X.CNOY.CNO Notice:对表 SC进行自连接,X,Y是 SC的两个别名。(6)检索全部学生都选修的课程的课程号与课程名。SELECT C#,CNAME F
13、ROM C WHERE NOT EXISTS (SELECT * FROM S WHERE S# NOT IN (SELECT * FROM SC WHERE SC.C#=C.C#) 要从语义上分解:(1)选择课程的课程号与课程名,不存在不选这门课的同学。其中,“不选这门课的同学”可以表示为:SELECT * FROM S WHERE S# NOT IN ( SELECT * FROM SC WHERE SC.C#=C.C#) 或者SELECT * FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE S.S#=C.S# AND SC.C#=C.C#
14、) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 16 页 - - - - - - - - - (7)检索选修课程包含LIU 老师所授课的学生学号。SELECT DISTINCT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE TEACHER=LIU) 2. 设有两个基本表R(A,B,C)和S(D,E,F),试用 SQL查询语句表达下列关系代数表达式:(1)A(R) (2) B=17(R) (3)RS(4) A,F(C=D(
15、RS) (1)SELECT A FROM R (2)SELECT * FROM R WHERE B=17 (3)SELECT A,B,C,D,E,F FROM R,S (4)SELECT A,F FROM R,S WHERE R.C=S.D 3. 设有两个基本表R(A,B,C)和 S(A,B,C)试用 SQL查询语句表达下列关系代数表达式:(包含)(1) RS (2) RS(3) RS (4) A,B(R)B,C(S) (1)SELECT A,B,C 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据库SQL习题终稿 2022 数据库 SQL 习题
限制150内