数据库查询练习152(含参考答案)
- 格式:docx
- 大小:23.79 KB
- 文档页数:17
数据库题库含参考答案一、单选题(共98题,每题1分,共98分)1.在数据库应用系统生命周期模型中,规划与分析阶段的输出结果不包括()。
A、项目计划书B、需求规范说明书C、可行性分析报告D、系统范围与边界正确答案:B2.下列哪些属性不适合建立索引?()。
A、经常岀现在GROUP BY子句中的属性B、经常参与连接操作的属性C、经常出现在WHERE子句中的属性D、经常需要进行更新操作的属性正确答案:D3.下列属于数据仓库特点的是()。
A、一次处理的数据量小B、综合性和提炼性数据C、面向操作人员,支持日常操作D、重复性的、可预测的处理正确答案:B4.下述哪一个SQL语句用于实现数据存取的安全机制()。
A、COMMITB、ROLLBACKC、GRANTD、CREATE TABLE正确答案:C5.有教师表(教师号,姓名,职称.所在系)和授课表(教师号,课程号,授课学年,授课时数),同一门课程可由多个教师讲授,同一个教师也可讲授多门课程,査询从未被“教授”讲授过的课程的课程号,正确的语句是()。
A、SELECT课程号FROM授课表a JOIN教师表bON a 教师号=b.教师号WHERE职称!='教授'B、SELECT课程号FROM授课表a RIGHTOUTTER JOIN教师表bONa.教师号=b.教师号C、SELECT课程号FROM授课表WHERE课程号NOT IN (SELECT课程号FROM授课表a JOIN授课表b ON a 教师号=b.教师号WHERE职称!='教授')D、SELECT课程号FROM授课表WHERE课程号IN (SELECT课程号FROM授课表a JOIN授课表b ON a 教师号=b.教师号WHERE职称!=,教授,)正确答案:D6.下列有关范式的叙述中正确的是()。
A、如果关系模式RG 1NF,且R中主属性完全函数依赖于码,则R是2NFB、如果关系模式RG3NF, X、YCU,若X—Y,则R是BCNFC、如果关系模式ReBCNF,若X一一Y (Y4X)是平凡的多值依赖,则R 是4NFD、—个关系模式如果属于4NF,则一定属于BCNF;反之不成立正确答案:D7.下列说法正确的是( )。
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)。
数据库习题(附参考答案)一、单选题(共88题,每题1分,共88分)1.已创建的表间关系不能删除。
A、对B、错正确答案:B2.某表中有“编号”字段,该字段要求第一位字母必须是Q,第二、三位必须为字母,第4-6位必须为数字,则该字段的输入掩码应设置为()A、”Q”LL999B、”Q”??999C、”Q”LL000D、“Q”??000正确答案:C答案解析:第一位必须是字母Q,用“Q”;第二、三位必须为字母,用LL,第4-6位必须是数字用000,因此答案为“Q”LL000。
3.在“itEmployee”表中,“姓名”字段的字段大小为10,在此列输入数据时,最多可输入的汉字数和英文字符数分别是( )。
A、5 5B、5 10C、10 10D、10 20正确答案:C答案解析:一个汉字占一个字节4.Access 2010模板文件的扩展名为A、.accdtB、.mdbC、.dbfD、.adp正确答案:A5. 在关系代数的连接操作中,哪一种连接操作需要取消重复列?( )A、笛卡尔积B、等值连接C、自然连接D、θ连接正确答案:C6.一个实体相对于关系数据库中一个关系中的一个( )A、属性B、元组C、列D、字段正确答案:B答案解析:二维表中的一行称为一个元组,相当于一条记录,代表一个实体。
7. 设关系R和S具有相同的目,且它们相对应的属性的值取自同一个域,则R-(R-S)等于( )A、R∩SB、R∪SC、R÷SD、R×S正确答案:A8.将某字段设置为主键后,则该属性( ) 。
A、可以为空B、不能设置为外键C、值可以重复D、能唯一标识每行数据正确答案:D答案解析:设置为主键以后,主键的值是唯一的。
主键分为单字段主键、多字段主键和自动编号主键。
9.数据库系统是由数据库、数据库管理系统、( )、硬件系统等构成的人机系统。
A、数据库管理员B、程序员C、高级程序员D、软件开发商正确答案:A答案解析:数据库管理员,简称DBA,与DB、DBMS、硬件系统共同组成数据库系统(DBS)。
数据库系统专升本考试(试卷编号152)说明:答案和解析在试卷最后1.[单选题]关系的完整性约束条件不包含以下哪一选项( )A)属性完整性B)实体完整性C)参照完整性D)用户定义的完整性2.[单选题]要限制宏命令的操作范围,在创建宏时应定义的是( )。
A)宏操作对象B)宏操作目标C)宏条件表达式D)窗体或报表控件属性3.[单选题]关系R{[1,2,3],[4,5,6],[7,8,9]}和S{[2,4,6],[4,5,6]},R-S的结果是()A){[2.4,6],[4,5,6]}B){[1.2,3],[7,8,9]}C){[1.2,3],[4,5,6],[7,8,9],[2,4,6]}D){[2.4,6],[7,8,9]}4.[单选题]关系数据库中的码是指( )。
A)能唯一标识元组的属性或属性集合B)能唯一决定关系的字段C)不可改动的专用保留字D)关键的很重要的字段5.[单选题]数据流图(DFD)是用于描述结构化方法中( )阶段的工具。
A)需求分析B)可行性分析C)详细设计D)程序编码6.[单选题]数据库的并发控制、完整性检查、安全性检查等是对数据库的( )A)保护B)设计C)操纵D)查询7.[单选题]关于交叉表查询,以下说法错误的是( )。
A)交叉表查询可以将数据分为两组显示B)两组数据分别显示在表的上部和左边C)左边和上部的数据在表中的交叉点可以对表中其他数据进行求和与求平均值的运算D)表中交叉点不可以对表中另外一组数据进行求平均值和其他计算8.[单选题]在关系模型中,元组个数称为A)元数B)基数C)度数D)目数9.[单选题]在MySQL中,用于实现交叉连接的关键字是A)CROSS JOINB)INNER JOINC)JOIND)LEFT JOIN10.[单选题]数据库系统的三级模式不包括()A)模式B)数据模式C)外模式D)内模式11.[单选题]为了避免删除不存在的数据库时出现的MySQL错误信息,可使用关键字()A)IF EXISTSB)COLLATEC)DEFAULTD)CHARACTER SET12.[单选题]取出关系中的某些列,并消去重复元组的关系代数运算称为( )。
大学MySQL查找考试题及答案一、选择题(每题2分,共20分)1. MySQL数据库系统中,以下哪个命令用于查询数据?A. INSERTB. SELECTC. UPDATED. DELETE答案:B2. 在MySQL中,如果要从一个表中查询所有记录和所有字段,应该使用哪个SQL语句?A. SELECT *B. SELECT ALLC. SELECT ALL *D. SELECT ALL FIELDS答案:A3. 如果想要查询学生表中姓“李”的学生,应该使用哪个WHERE子句?A. WHERE name = '李'B. WHERE surname = '李'C. WHERE student_name = '李'D. WHERE student_surname = '李'答案:B4. 在MySQL中,以下哪个关键字用于分组查询?A. GROUPB. GROUP BYC. CLASSIFYD. CATEGORIZE答案:B5. 以下哪个命令用于在MySQL中创建新表?A. CREATE TABLEB. NEW TABLEC. ADD TABLED. BUILD TABLE答案:A6. 如果要查询某个学生的成绩,并且只显示成绩在90分以上的学生,应该使用哪个SQL语句?A. SELECT * FROM students WHERE score > 90B. SELECT * FROM scores WHERE score > 90C. SELECT * FROM students JOIN scores ON students.id = scores.id WHERE score > 90D. SELECT * FROM students INNER JOIN scores ON students.id = scores.id WHERE scores.score > 90答案:D7. 在MySQL中,以下哪个命令用于删除表?A. REMOVE TABLEB. DELETE TABLEC. DROP TABLED. EXCLUDE TABLE答案:C8. 以下哪个SQL语句用于更新学生表中的记录?A. UPDATE students SET name = '张三'B. MODIFY students SET name = '张三'C. CHANGE students SET name = '张三'D. ALTER students SET name = '张三'答案:A9. 在MySQL中,以下哪个命令用于添加新的数据到表中?A. INSERT INTOB. ADD INTOC. PUT INTOD. NEW INTO答案:A10. 以下哪个命令用于在MySQL中创建索引?A. CREATE INDEXB. INDEX CREATEC. MAKE INDEXD. BUILD INDEX答案:A二、填空题(每题3分,共30分)11. 在MySQL中,使用________命令可以查看所有数据库。
SQL数据库查询练习题及答案(四⼗五道题)题⽬:设有⼀数据库,包括四个表:学⽣表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。
四个表的结构分别如表1-1的表(⼀)~表(四)所⽰,数据如表1-2的表(⼀)~表(四)所⽰。
⽤SQL语句创建四个表并完成相关题⽬。
表1-1数据库的表结构表(⼀)Student (学⽣表)属性名数据类型可否为空含义Sno varchar (20)否学号(主码)Sname varchar (20)否学⽣姓名Ssex varchar (20)否学⽣性别Sbirthday datetime可学⽣出⽣年⽉Class varchar (20)可学⽣所在班级表(⼆)Course(课程表)属性名数据类型可否为空含义Cno varchar (20)否课程号(主码)Cname varchar (20)否课程名称Tno varchar (20)否教⼯编号(外码)表(三)Score(成绩表)属性名数据类型可否为空含义Sno varchar (20)否学号(外码)Cno varchar (20)否课程号(外码)Degree Decimal(4,1)可成绩主码:表(四)Teacher(教师表)属性名数据类型可否为空含义Tno varchar (20)否教⼯编号(主码)Tname varchar (20)否教⼯姓名Tsex varchar (20)否教⼯性别Tbirthday datetime可教⼯出⽣年⽉Tbirthday datetime可教⼯出⽣年⽉Prof varchar (20)可职称Depart varchar (20)否教⼯所在部门表1-2数据库中的数据表(⼀)StudentSno Sname Ssex Sbirthday class 108曾华男1977-09-0195033 105匡明男1975-10-0295031 107王丽⼥1976-01-2395033 101李军男1976-02-2095033 109王芳⼥1975-02-1095031 103陆君男1974-06-0395031表(⼆)CourseCno Cname Tno3-105计算机导论8253-245操作系统8046-166数字电路8569-888⾼等数学831表(三)ScoreSno Cno Degree1033-245861053-245751093-245681033-105921053-105881093-105761013-105641073-105911073-105911083-105781016-166851076-166791086-16681表(四)TeacherTno Tname Tsex Tbirthday Prof Depart 804李诚男1958-12-02副教授计算机系856张旭男1969-03-12讲师电⼦⼯程系825王萍⼥1972-05-05助教计算机系831刘冰⼥1977-08-14助教电⼦⼯程系查询问题:1、查询Student表中的所有记录的Sname、Ssex和Class列。
数据库中SQL查询语句习题含答案查询问题:设教学数据库Education 有三个关系:学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT );学习关系SC (SNO ,CNO ,GRADE );课程关系C (CNO ,CNAME ,CDEPT ,TNAME )(1)检索计算机系的全体学生的学号,姓名和性别;(2)检索学习课程号为C2的学生学号与姓名;(3)检索选修课程名为“DS ”的学生学号与姓名;(4)检索选修课程号为C2或C4的学生学号;(5)检索至少选修课程号为C2和C4的学生学号;(6)检索不学C2课的学生姓名和年龄;(7)检索学习全部课程的学生姓名;(8)查询所学课程包含学生S3所学课程的学生学号。
(1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno ,Sname ,Sex FROM SWHERE Sdept =’CS ’;(2)检索学习课程号为C2的学生学号与姓名;(3)检索选修课程名为“DS ”的学生学号与姓名本查询涉及到学号、姓名和课程名三个属性,分别存放在S 和C 表中,但S 和C 表没有直接联系,必须通过SC 表建立它们二者的联系。
C → SC → S 基本思路:(1)首先在C 表中找出“DS ”课程的课程号Cno ;(2)然后在SC 表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno ;(3)最后在S 关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname 送入结果表列。
SELECT Sno ,Sname FROM SWHERE Sno IN (SELECT Sno FROM SCWHERE Cno IN (SELECT Cno FROM CWHERE Cname=‘DS ’));(4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SCWHERE Cno=‘C2’ OR Cno=‘C4’;(5)检索至少选修课程号为C2和C4的学生学号; SELECT SnoFROM SC X ,SC YWHERE X.Sno=Y.Sno AND/doc/d33e82944b7302768e9951e79b89680202d86b33.html o=‘C2’ AND /doc/d33e82944b7302768e9951e79b89680202d86b33.html o=‘C4’;(6)检索不学C2课的学生姓名和年龄;(7)检索学习全部课程的学生姓名;在表S 中找学生,要求这个学生学了全部课程。
数据库查询练习题1.SQL是那几个英文单词的缩写_B____。
2.A. Standard Query Language B. Structured Query LanguageC. Select Query Language D.以上都不是3.SQL语句中条件短语的关键字是__A____。
A. WHERE B. FOR C. WHILE D.CONDITIO4.与表达式:成绩 BETWEEN 0 AND 100等效率的表达式是______。
A.成绩>0 and 100 B.成绩>=0 and <=100C.成绩>=0 and 成绩<=100 D.成绩>0 and 成绩<1005.LIKE短语中”%”代表的意思是______。
A.一个字符 B.2个字符C.3个字符D.多个字符6.LIKE短语中”_”代表的意思是______。
A.一个字符 B.2个字符C.3个字符 D.多个字符7.查询姓名中含有丽字的表达式对的是_____。
A.姓名 =’*丽*’B.姓名 =’_丽_’C.姓名 like ’%丽%’ D.姓名 like ’_丽_’8.查询不姓王的正确表达式______。
A.姓名<>’王’B.姓名 like ‘王_’C.姓名 not like ‘王%’ D.left(姓名,1)<>‘王’9.Distinct的作用是______。
A.去掉重复值B.修改值C.增加值D.删除值10.去掉重复值的短语是______。
A.DISTINCTB.GROUP BYC.ORDER BYD.REPEAT11.以下函数中求和的函数是______。
A)SUM() B)COUNT() C)AVG() D)MAX()12.求平均值的函数是______。
A)SUM() B)COUNT() C)AVG() D)MAX()13.求最大值的函数是______。
14.A)SUM() B)COUNT() C)AVG()D)MAX()15.求最小值的函数是______。
一、基本查询说明:按下面的要求,在“图书销售管理系统CH3.mdb”数据库中建立查询。
要求:(以下描述中,低于x的含义指小于x,高于x的含义指大于x,均不含x本身。
如果没有指明查询结果包括哪些字段则指包含源表的所有字段。
)1 查询工作人员信息,结果包括每个员工的所有信息(选择所有列)。
以“查询101”为名称保存查询。
2 查询定价低于30元的图书,结果包括所有字段。
以“查询102”为名称保存查询。
3 查询1970年-1980年之间出生的工作人员(使用BETWEEN运算符),查询结果只包括“人员编号”、“姓名”、“性别”、“出生日期”字段。
以“查询103”为名称保存查询。
4 查询作者姓王的图书(使用LIKE运算)。
以“查询104”为名称保存查询。
5 查询定价低于30元的计算机图书(名称中含有“计算机”),按定价升序排序。
以“查询105”为名称保存查询。
6 查询定价低于30元或者高于50元的图书(使用OR运算符,或者在设计器中填写两行准则)。
以“查询106”为名称保存查询。
7 查询在人员表中记录过照片的工作人员(Is Not Null)。
以“查询107”为名称保存查询。
8 查询已婚员工的信息,显示所有字段,将查询命名为“查询108”。
-------------------------------------------------9 查询高等教育出版社出版的20-50元之间的图书*,和机械工业出版的20-40元之间的图书**。
以“查询109”为名保存查询。
(*和**两组条件为或者关系,需要分别写在两行中。
)10 查询作者姓王名字由两个字组成的图书信息,显示“图书编号”、“书名”、“作者”字段。
以“查询110”为名保存查询。
11 查询图书编号第3个和第4个字符是“40”的图书信息,显示所有字段。
保存为“查询111”。
二、计算字段、复杂条件、参数查询说明:如有困难,请看提示信息。
要求:1 使用计算字段a. 查询每笔进货的支出总额(即进书数量和单价的乘积),显示图书进货表的所有字段和支出总额字段,查询201。
数据库练习题库(含答案)一、单选题(共98题,每题1分,共98分)1.在需求分析阶段,结构化分析和建模方法是一种较为有效的需求分析方法,下列不属于结构化分析和建模方法优点的是()。
A、可避免过早陷入具体细节B、从局部或子系统开始分析问题,便于建模人员了解业务模型C、图形对象不涉及太多技术术语,便于用户理解模型D、用图形化的模型能直观表示系统功能正确答案:B2.DBMS通过加锁机制允许用户并发访问数据库,这属于DBMS提供的()。
A、数据定义功能B、数据操纵功能C、数据库运行管理与控制功能D、数据库建立与维护功能正确答案:C3.关于数据划分策略,下述说法错误的是()。
A、散列划分釆用某种散列函数,以数据的划分属性作为函数参数,计算数据应存储的磁盘序号B、范围划分根据某个属性的取值,将数据划分为n个部分,分别存储到不同磁盘上C、范围划分有利于范围查询和点查询,但也可能会引起数据分布不均匀及并行处理能力下降问题D、轮转法划分能保证元组在多个磁盘上的平均分配,并具有较高的点查询和范围查询正确答案:D4.存取方法设计属于数据库设计的()阶段的设计任务。
A、逻辑结构设计B、概念结构设计C、系统需求分析D、物理结构设计正确答案:D5.将新插入的记录存储在文件末尾,并使记录随机地分布在文件物理存储空间中的文件结构是()。
A、散列文件B、堆文件C、索引文件D、聚集文件正确答案:B6.关于"死锁”,下列说法中正确的是()。
A、在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库B、只有出现并发操作时,才有可能出现死锁C、当两个用户竞争相同资源时不会发生死锁D、死锁是操作系统中的问题,数据库操作中不存在正确答案:B7.关于数据库应用系统的需求分析工作,下列说法正确的是()。
A、在需求分析阶段,系统需求分析员要与用户充分沟通,并做出各类用户视图B、通过需求分析过程,需要确定出整个应用系统的目标、任务和系统的范围说明C、数据操作响应时间、系统吞吐量、最大并发用户数都是性能需求分析的重要指标D、数据需求分析的主要工作是要辩识出数据处理中的数据处理流程正确答案:C8.如果一个系统定义为关系系统,则它必须( )oA、支持关系数据库B、支持选择、投影和连接运算C、A和B均成立D、A、B都不需要正确答案:C9.联机分析处理包括以下()基本分析功能。
查询练习题第一部分:【1】从fruits表中检索所有字段的数据Select * from fruits;【2】查询fruits表中f_name列所有水果名称Select f_name from fruits;【3】从fruits表中获取f_name和f_price两列Select f_name,f_price from fruits;【4】查询价格为元的水果的名称Select f_name from fruits where f_price=;【5】查找名称为“apple”的水果的价格Select f_price from fruits where f_name=’apple’;【6】查询价格小于10的水果的名称Select f_name from fruits where f_peice<10;【7】s_id为101和102的记录Select * from fruits where s_id=101 or s_id=102;【8】查询所有s_id不等于101也不等于102的记录Select * from fruits where s_id!=101 and s_id!=102;【9】查询价格在元到元之间的水果名称和价格Select f_name,f_price from fruits where f_price> and f_price<;【10】查询价格在元到元之外的水果名称和价格Select f_name,f_price from fruits where f_price< or f_price>;【11】查找所有以’b’字母开头的水果Select f_name from fruits where f_name like ‘b%’;【12】在fruits表中,查询f_name中包含字母’g’的记录Select * from fruits where f_name like “%g%”;【13】查询以’b’开头,并以’y’结尾的水果的名称Select * from fruits where f_name like “b%y”;【14】在fruits表中,查询以字母’y’结尾,且’y’前面只有4个字母的记录Select * from fruits where f_name like “____y”;第二部分:查询表中的记录数目:SELECT COUNT(*) AS cust_num FROM customers;【15】查询customers表中c_email为空的记录的c_id、c_name和c_email字段值Select c_id,c_name,c_email from customers where c_email is null;【16】查询customers表中c_email不为空的记录的c_id、c_name和c_email字段值Select c_id,c_name,c_email from customers where c_email is not null;【17】在fruits表中查询s_id = 101,并且f_price大于等于5的水果价格和名称Select f_name,f_price from fruits where s_id=101 and f_price>=5;【18】在fruits表中查询s_id = 101或者102,且f_price大于5,并且f_name=‘apple’的水果价格和名称Select f_name,f_price from fruits where s_id in (101,102) and f_price>5 and f_name=’apple’;【19】查询s_id=101或者s_id=102的水果供应商的f_price和f_nameSelect f_price,f_name from fruits where s_id=101 or s_id=102;【20】查询s_id=101或者s_id=102的水果供应商的f_price和f_name(用不同的方法)Select f_price,f_name from fruits where s_id in (101,102);【21】查询fruits表中s_id字段的值,返回s_id字段值且不得重复(使用distinct去重复)SELECT DISTINCT s_id FROM fruits;【22】查询fruits表的f_name字段值,并对其进行排序Select f_name from fruits order by f_name;【23】查询fruits表中的f_name和f_price字段,先按f_name排序,再按f_price排序Select f_name,f_price from fruits order by f_name,f_price;【24】查询fruits表中的f_name和f_price字段,对结果按f_price降序方式排序Select f_name,f_price from fruits order by f_price desc;【25】查询fruits表,先按f_price降序排序,再按f_name字段升序排序Select * from fruits order by f_price desc,f_name;【26】根据s_id对fruits表中的数据进行分组,并显示每个分组的总记录数。
Select s_id,count(*) from fruits group by s_id;【27】根据s_id对fruits表中的数据进行分组,将每个供应商的水果名称显示出来(使用GROUP_CONCAT拼接字段内容)SELECT s_id ,GROUP_CONCAT(f_name) AS NAMES FROM fruits GROUP BY s_id;【28】根据s_id对fruits表中的数据进行分组,并显示水果种类大于1的分组信息Select s_id as nemes from fruits group by s_id having count(f_name)>1;【29】根据s_id对fruits表中的数据进行分组,并显示记录数量SELECT s_id, COUNT(*) AS Total FROM fruitsGROUP BY s_id WITH ROLLUP;WITH ROLLUP对所有记录进行统计【30】根据s_id和f_name字段对fruits表中的数据进行分组Select * from fruits group by s_id,f_name;第三部分:【31】查询总订单价格大于100的订单号和总订单价格【32】显示fruits表查询结果的前4行【33】在fruits表中,使用LIMIT子句,返回从第5个记录开始的,行数长度为3的记录【34】查询customers表中总的行数【35】查询customers表中有电子邮箱的顾客的总数【36】在orderitems表中,使用COUNT()函数统计不同订单号中订购的水果种类【37】在orderitems表中查询30005号订单一共购买的水果总量【38】在orderitems表中,使用SUM()函数统计不同订单号中订购的水果总量【39】在fruits表中,查询s_id=103的供应商的水果价格的平均值【40】在fruits表中,查询每一个供应商的水果价格的平均值【41】在fruits表中查找市场上价格最高的水果【42】在fruits表中查找不同供应商提供的价格最高的水果【43】在fruits表中查找f_name的最大值【44】在fruits表中查找市场上价格最低的水果【45】在fruits表中查找不同供应商提供的价格最低的水果第四部分:【46】在fruits表和suppliers表之间使用内连接查询。
查询之前,查看两个表的结构:DESC fruits;DESC suppliers;由结果可以看到,fruits表和suppliers表中都有相同数据类型的字段s_id,两个表通过s_id 字段建立联系。
接下来从fruits表中查询f_name、f_price字段,从suppliers表中查询s_id、s_name【47】在fruits表和suppliers表之间,使用INNER JOIN语法进行内连接查询【48】查询供应f_id= ‘a1’的水果供应商提供的其他水果种类【较难】1.LEFT JOIN左连接左连接的结果包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。
如果左表的某行在右表中没有匹配行,则在相关联的结果行中,右表的所有选择列表列均为空值。
【49】在customers表和orders表中,查询所有客户,包括没有订单的客户2.RIGHT JOIN右连接右连接是左连接的反向连接,将返回右表的所有行。
如果右表的某行在左表中没有匹配行,左表将返回空值。
【50】在customers表和orders表中,查询所有订单,包括没有客户的订单【51】在customers表和orders表中,使用INNER JOIN语法查询customers表中ID为10001的客户的订单信息【52】在fruits表和suppliers表之间,使用INNER JOIN语法进行内连接查询,并对查询结果排序参考答案【1】从fruits表中检索所有字段的数据,SQL语句如下:SELECT * FROM fruits;【2】查询fruits表中f_name列所有水果名称,SQL语句如下:SELECT f_name FROM fruits;【3】从fruits表中获取f_name和f_price两列,SQL语句如下:SELECT f_name, f_price FROM fruits;【4】查询价格为元的水果的名称,SQL语句如下:SELECT f_name, f_priceFROM fruitsWHERE f_price = ;【5】查找名称为“apple”的水果的价格,SQL语句如下:SELECT f_name, f_priceFROM fruitsWHERE f_name = 'apple';【6】查询价格小于10的水果的名称,SQL语句如下:SELECT f_name, f_priceFROM fruitsWHERE f_price < 10;【7】s_id为101和102的记录,SQL语句如下:SELECT s_id,f_name, f_priceFROM fruitsWHERE s_id IN (101,102)ORDER BY f_name;【8】查询所有s_id不等于101也不等于102的记录,SQL语句如下:SELECT s_id,f_name, f_priceFROM fruitsWHERE s_id NOT IN (101,102)ORDER BY f_name;【9】查询价格在元到元之间的水果名称和价格,SQL语句如下:SELECT f_name, f_price FROM fruits WHERE f_price BETWEEN AND ;【10】查询价格在元到元之外的水果名称和价格,SQL语句如下:SELECT f_name, f_priceFROM fruitsWHERE f_price NOT BETWEEN AND ;【11】查找所有以’b’字母开头的水果,SQL语句如下:SELECT f_id, f_nameFROM fruitsWHERE f_name LIKE 'b%';【12】在fruits表中,查询f_name中包含字母’g’的记录,SQL语句如下:SELECT f_id, f_nameFROM fruitsWHERE f_name LIKE '%g%';【13】查询以’b’开头,并以’y’结尾的水果的名称,SQL语句如下:SELECT f_nameFROM fruitsWHERE f_name LIKE 'b%y';【14】在fruits表中,查询以字母’y’结尾,且’y’前面只有4个字母的记录,SQL语句如下:SELECT f_id, f_name FROM fruits WHERE f_name LIKE '----y';查询表中的记录数目:SELECT COUNT(*) AS cust_num FROM customers;【15】查询customers表中c_email为空的记录的c_id、c_name和c_email字段值,SQL语句如下:SELECT c_id, c_name,c_email FROM customers WHERE c_email IS NULL;【16】查询customers表中c_email不为空的记录的c_id、c_name和c_email字段值,SQL 语句如下:SELECT c_id, c_name,c_email FROM customers WHERE c_email IS NOT NULL;【17】在fruits表中查询s_id = 101,并且f_price大于等于5的水果价格和名称,SQL语句如下:SELECT f_id, f_price, f_name FROM fruits WHERE s_id = '101' AND f_price >=5;【18】在fruits表中查询s_id = 101或者102,且f_price大于5,并且f_name=‘apple’的水果价格和名称,SQL语句如下:SELECT f_id, f_price, f_name FROM fruitsWHERE s_id IN('101', '102') AND f_price >= 5 AND f_name = 'apple';【19】查询s_id=101或者s_id=102的水果供应商的f_price和f_name,SQL语句如下:SELECT s_id,f_name, f_price FROM fruits WHERE s_id = 101 OR s_id = 102;【20】查询s_id=101或者s_id=102的水果供应商的f_price和f_name,SQL语句如下:SELECT s_id,f_name, f_price FROM fruits WHERE s_id IN(101,102);【21】查询fruits表中s_id字段的值,返回s_id字段值且不得重复,SQL语句如下:SELECT DISTINCT s_id FROM fruits;【22】查询fruits表的f_name字段值,并对其进行排序,SQL语句如下:SELECT f_name FROM fruits ORDER BY f_name;【23】查询fruits表中的f_name和f_price字段,先按f_name排序,再按f_price排序,SQL 语句如下:SELECT f_name, f_price FROM fruits ORDER BY f_name, f_price;【24】查询fruits表中的f_name和f_price字段,对结果按f_price降序方式排序,SQL语句如下:SELECT f_name, f_price FROM fruits ORDER BY f_price DESC;【25】查询fruits表,先按f_price降序排序,再按f_name字段升序排序,SQL语句如下:SELECT f_price, f_name FROM fruits ORDER BY f_price DESC, f_name;【26】根据s_id对fruits表中的数据进行分组,并显示每个分组的总记录数,SQL语句如下:SELECT s_id, COUNT(*) AS Total FROM fruits GROUP BY s_id;【27】根据s_id对fruits表中的数据进行分组,将每个供应商的水果名称显示出来,SQL语句如下:SELECT s_id ,GROUP_CONCAT(f_name) AS NAMES FROM fruits GROUP BY s_id;【28】根据s_id对fruits表中的数据进行分组,并显示水果种类大于1的分组信息,SQL语句如下:SELECT s_id, GROUP_CONCAT(f_name) AS NAMESFROM fruitsGROUP BY s_id HAVING COUNT(f_name) > 1;【29】根据s_id对fruits表中的数据进行分组,并显示记录数量,SQL语句如下:SELECT s_id, COUNT(*) AS TotalFROM fruitsGROUP BY s_id WITH ROLLUP;【30】根据s_id和f_name字段对fruits表中的数据进行分组,SQL语句如下,SELECT * FROM fruits GROUP BY s_id,f_name;【31】查询总订单价格大于100的订单号和总订单价格,SQL语句如下:SELECT o_num, SUM(quantity * item_price) AS orderTotalFROM orderitemsGROUP BY o_numHAVING SUM(quantity*item_price) >= 100;可以看到,返回的结果中orderTotal列的总订单价格并没有按照一定顺序显示,使用ORDER BY关键字按总订单价格排序显示结果,SQL语句如下:SELECT o_num, SUM(quantity * item_price) AS orderTotalFROM orderitemsGROUP BY o_numHAVING SUM(quantity*item_price) >= 100ORDER BY orderTotal;【32】显示fruits表查询结果的前4行,SQL语句如下:SELECT * FROM fruits LIMIT 4;【33】在fruits表中,使用LIMIT子句,返回从第5个记录开始的,行数长度为3的记录,SQL语句如下:SELECT * FROM fruits LIMIT 4, 3;【34】查询customers表中总的行数,SQL语句如下:SELECT COUNT(*) AS cust_num FROM customers;【35】查询customers表中有电子邮箱的顾客的总数,SQL语句如下:SELECT COUNT(c_email) AS email_num FROM customers;【36】在orderitems表中,使用COUNT()函数统计不同订单号中订购的水果种类,SQL语句如下:SELECT o_num, COUNT(f_id) FROM orderitems GROUP BY o_num;【37】在orderitems表中查询30005号订单一共购买的水果总量,SQL语句如下:SELECT SUM(quantity) AS items_total FROM orderitems WHERE o_num = 30005;【38】在orderitems表中,使用SUM()函数统计不同订单号中订购的水果总量,SQL语句如下:SELECT o_num, SUM(quantity) AS items_total FROM orderitems GROUP BY o_num;【39】在fruits表中,查询s_id=103的供应商的水果价格的平均值,SQL语句如下:SELECT AVG(f_price) AS avg_price FROM fruits WHERE s_id = 103;【40】在fruits表中,查询每一个供应商的水果价格的平均值,SQL语句如下:SELECT s_id,AVG(f_price) AS avg_price FROM fruits GROUP BY s_id;【41】在fruits表中查找市场上价格最高的水果,SQL语句如下:SELECT MAX(f_price) AS max_price FROM fruits;【42】在fruits表中查找不同供应商提供的价格最高的水果,SQL语句如下:SELECT s_id, MAX(f_price) AS max_price FROM fruits GROUP BY s_id;【43】在fruits表中查找f_name的最大值,SQL语句如下:SELECT MAX(f_name) FROM fruits;【44】在fruits表中查找市场上价格最低的水果,SQL语句如下:SELECT MIN(f_price) AS min_price FROM fruits;【45】在fruits表中查找不同供应商提供的价格最低的水果,SQL语句如下:SELECT s_id, MIN(f_price) AS min_price FROM fruits GROUP BY s_id;【46】在fruits表和suppliers表之间使用内连接查询。