select语句题大学计算机数据库
select 练习3多表查询_答案

多表查询以下题目使用数据库xk,包括表:表1 Department表2 Course表3 Class表4 Student表5 StuCout--嵌套查询--1类:带有比较运算符的查询,查询结果为单值--查询报名人数大于平均报名人数的课程信息--1步.假如平均报名人数是30select*from coursewhere willnum>30--2步.查询出平均报名人数,查询结果是个数值型数据,凡是数值可以出现的地方,该select语句就可以出现select avg(willnum)from course --查询出平均报名人数--3步.替换select*from coursewhere willnum>(select avg(willnum)from course)--错误:where willnum>avg(willnum)--查询出学分最大的课程的名称--1步.假如最大学分是10分select counamefrom coursewhere credit=10--2步.查询出学分最大值select max(credit)from course--3步. 替换select counamefrom coursewhere credit=(select max(credit)from course)--查询出‘00电子商务’班的学生的姓名--1步.假如班号是'20000001'号select stunamefrom studentwhere classno='20000001'--2步.查询出‘电子商务’班的班号select classno from class where classname='00电子商务'--3步.替换select stunamefrom studentwhere classno=(select classno from class where classname= '00电子商务')--查询出'世界旅游'课程的选课信息--1步.假如'世界旅游'课程的课程号是'001',查询出'001'号课程的选课信息select*from stucou where couno='001'--2步.查询出'世界旅游'课程的课程号select couno from course where CouName='世界旅游'select*from stucou where couno=(select couno from course w here CouName='世界旅游')--查询出班级个数最多的院系名称--1步.假如'01'号学院班级最多,查询出'01'号学院的院系名称select departname from department where departno='01'--2步.查询出班级个数最多的院系编号selecttop 1 departnofrom classgroupby departnoorderby count(*)desc--3步.替换--查询结果是个院系编号,凡是院系编号可以出现的地方,该select 语句就可以出现select departnamefrom departmentwhere departno=(selecttop 1 departnofrom classgroupby departnoorderby count(*)desc)--where 列in(该列的集合)--查询结果为集合--查询出选课表中报名状态state为报名的课程名称--假如('001','002','003') 报名状态state为报名select counamefrom coursewhere couno in('001','002','003')--2:查询出选课表中报名状态为报名的课程编号的集合,select distinct counofrom stucou --凡是课程编号的集合出现的地方都可以用该select语句取代where state='报名'--替换:select counamefrom coursewhere couno in(selectdistinct counofrom stucouwhere state='报名')--查询出‘01’号学院的学生姓名--1步.查询出‘01’号学院的班号集合select classno from class where departno='01'--2步.查询出这些班的学生姓名select stunamefrom studentwhere classno in(select classno--‘1’号学院的班号集合from classwhere departno='01')--查询出'20000001'班学生的选课信息--1步.查询出'20000001'班的学号集合select stuno from student where classno='20000001' --2步.查询这些学生的选课信息select*from stucouwhere stuno in(select stunofrom studentwhere classno='20000001')--查询出'00电子商务'班学生的选课信息--1步.查出'00电子商务'班的班号select classnofrom classwhere classname='00电子商务'--2步.查出该班的学号集合select stunofrom studentwhere classno=(select classnofrom classwhere classname='00电子商务')--3步.查询这些学生的选课信息select*from stucouwhere stuno in(select stuno--2.查出该班的学号集合from studentwhere classno=(select classno--1.查出'00电子商务'班的班号from classwhere classname='00电子商务'))--查询出与学号是1号的学生选修课程数相等的学生的学号select stuno --选修了5门课的学生的学号的集合from stucougroupby stunohaving count(*)=5select stuno --选修了与学号是1号的学生选修课程数相等的学生的学号的集合from stucougroupby stunohaving count(*)=(select count(*)from stucou where stuno='00000001')--查询出与学号是1号的学生选修课程数相等的学生的姓名select stunamefrom studentwhere stuno in(select stuno --选修了与学号是号的学生选修课程数相等的学生的学号的集合from stucougroupby stunohaving count(*)=(select count(*)from stucou wherestuno='00000001'))--查询出与'林斌'选修课程数相等的学生的姓名select stunamefrom studentwhere stuno in(select stuno--选修了与学号是号的学生选修课程数相等的学生的学号的集合from stucougroupby stunohaving count(*)=(select count(*)from stucou where stuno=(select stuno f rom student where stuname='林斌')))--any/some/all--where 列>any/some(集合子查询) : 列值比子查询结果中的某个值大就为真--where 列>all(集合子查询) : 列值比子查询结果中的所有值大才为真--查询出比号班中某一个学生年龄小的其他班的学生的学号和姓名select stuno,stunamefrom studentwhere bir>any(select bir from student whereclassno='20000001')and classno<>'20000001'--或:select stuno,stunamefrom studentwhere bir>some(select bir from student whereclassno='20000001')and classno<>'20000001'--查询出比号班中所有学生年龄都小的其他班的学生的学号和姓名select stuno,stunamefrom studentwhere bir>all(select bir from student whereclassno='20000001')and classno<>'20000001'--exists:存在--当子查询结果不为空时where为真,否则为假--查询已经报名选修课程的学生姓名--方法1:in--1步.查询出已经报名选修课程的学生学号的集合selectdistinct stunofrom stucouwherestate='报名'--2步.查询出这些学生的姓名select stunamefrom studentwhere stuno in(selectdistinct stunofrom stucouwherestate='报名')--方法2:exists:存在--格式:where exists (子查询select)--当子查询结果不为空时where为真,否则为假--表的列名看成变量,变量值是表的当前行的该列值--student.stuno: 表示student表中当前行的stuno列的值select stunamefrom studentwhere exists(select*from stucou where stuno=student.stu no and state='报名')--查询所有选修了号课程的学生的学号和姓名select stuno,stunamefrom studentwhere exists(select*from stucou wherestuno=student.stuno and couno='001')--多表连接查询--交叉连接cross join:左表每行依次与右表所有行连接--结果表包括两个表的所有列--左表有m行,右表有n行,结果表中有mXn行--from 左表cross join 右表--笛卡尔积:交叉连接的结果称为笛卡尔积--例:列出所有可能的选课情况select stuno,stuname,couno,counamefrom student crossjoin course--内连接select*into stu2from studentwhere stunoin('00000001','00000002','00000011','00000012','000 00021','00000021')select*into class2from classwhere classno in('20000001','20000002','20000003') --内连接: 左表[inner] join 右表--公共列:主表的主键=从表的外键--from 左表join 右表--on 左表.列=右表.列(共同列)--on作用同where,对行的筛选,从笛卡尔积中选出满足on条件的行--查看学生基本信息及所在班级信息select* --两个表的所有列都显示from class join studenton class.classno=student.classno--表名.*:表示某个表的所有列--查看学生基本信息及所在班级的班级名称select student.*,class.classnamefrom class join studenton class.classno=student.classno--表的别名,一旦为表起了别名,表名不能再使用,只能使用别名select s.*,classname班级名称from student2s join classcon s.classno=c.classno--列出每个学生的学号、姓名,以及他选修的课程号、志愿号(willorder)select student.stuno,stuname,couno,willorderfrom student join stucouon student.stuno=stucou.stuno--列出‘01’号学院的所有学生的姓名、班级名称selecttop 5 stuname,classnamefrom class join studenton class.classno=student.classnowhere departno='01'order by classname--多表(>=3)连接--列出每个学生的姓名、班级名称、所在院系名称select stuname,classname,departnamefrom student join classon student.classno=class.classnojoin departmenton class.departno=department.departno--列出每个学生的学号、姓名,以及他选修的课程号、课程名称、志愿号select student.stuno,stuname,stucou.couno,couname,wi llorderfrom student join stucouon student.stuno=stucou.stunojoin courseon stucou.couno=course.couno--查询出‘林斌’选修的课程名称及课程所在院系的名称select couname,departnamefrom department as d join course con d.departno=c.departnowhere couno in(select couno from stucou where stuno=(select stuno from student where stuname='林斌'))--或:select couname,departnamefrom department as d join course con d.departno=c.departnojoin stucou scon c.couno=sc.counojoin student son sc.stuno=s.stuno and stuname='林斌'--where stuname='林斌'--查询出每个学生的姓名、选修的课程名称及课程所在院系的名称select stuname,couname,departnamefrom department as d join course con d.departno=c.departnojoin stucou scon c.couno=sc.counojoin student son sc.stuno=s.stuno--查询出每个学生选修课程门数,按学生学号、门数两列显示select stuno,count(*)from stucougroupby stuno--查询出每个学生选修课程门数,按学生姓名、门数两列显示,前提是学生没有重名的Select stuname,count(*)门数from student join stucouon student.stuno=stucou.stunogroupby student.stuname--自连接:表与自身进行连接--必须为表起别名--查询出每门课的名称以及其前驱课的名称select a.couname,b.counamefrom coursea join coursebon a.cpno=b.couno--外连接--左外连接(left join):除了内连接的结果行,还包括左表剩余的行--右外连接(right join):除了内连接的结果行,还包括右表剩余的行--全外连接(full join):除了内连接的结果行,还包括左、右两表剩余的行--列出所有学生信息以及其所在班级信息select*from student2join classon student2.classno=class.classnoselect*from student2leftjoin classon student2.classno=class.classnoselect*from student2rightjoin classon student2.classno=class.classnoselect*from student2full join classon student2.classno=class.classno--列出所有学生的学号、姓名,以及其选修的课程号;未选修课程的学号也要列出,left joinselect student.stuno,stuname,counofrom student leftjoin stucouon studnet.stuno=stucou.stuno--列出所有课程号、课程名称、选修该课程的学号,没被选修的课程也要列出,right joinselect course.couno,couname,stunofrom stucou rightjoin courseon stucou.couno=course.couno--子查询在delete、update中的应用--将‘00多媒体’班的‘杜晓静’姓名改为‘杜小静’update studentset stuname='杜小静'where stuname='杜晓静'and classno=(select classno from class where classname=' 00多媒体')select*from student where stuname='杜小静'and classno=(select classno from class where classname=' 00多媒体')--‘00电子商务’班的‘林斌’申请将已选修的‘网站信息检索原理与技术’课程改为‘Linux操作系统’update stucouset couno=(select couno from course where couname='Linux操作系统')where couno=(select couno from course where couname='网络信息检索原理与技术') and stuno=(select stuno from studentwhere stuname='林斌'and classno=(select classno from class where classname='00电子商务'))selecttop nintofromonwheregroupbyhavingorderby。
select命令答案

提供的“学生管理数据库练习用”文件夹下的“学生管理”数据库附加1、查看学生表中有哪些班级的同学select distinct 班级 from 学生2 、显示“学生”表中的前3行记录的所有列,select top 3 * from 学生3、显示“学生”表中的前3行记录的姓名列,显示标题为学生姓名select top 3 姓名 as 学生姓名 from 学生4、查询“学生”表中所有男生的姓名、性别。
select 姓名,性别=case 性别when 0 then '女' else '男'endfrom 学生where 性别=15、查询“学生”表中所有姓名中包含“李”记录的姓名、所属院系。
select 姓名, 所属院系from 学生where 姓名 like '%李%'6、查询“学生”表中所有一班的女生。
select 姓名,case 性别when 0 then '女'else '男'end, 班级 from 学生where 性别=0 and 班级='一班'7 、查询“学生”表中所有一班和二班的学生的姓名和班级。
select 姓名, 班级from 学生where 班级='二班'or 班级='一班'8、查询“学生”表中所有入学成绩在550~580之间的学生记录的姓名、入学成绩、所属院系。
select 姓名,入学成绩, 所属院系from 学生where 入学成绩 between 550 and 580或:select 姓名,入学成绩, 所属院系from 学生where 入学成绩 >= 550 and 入学成绩<=5809、查询所有学生的入学成绩。
select 姓名,入学成绩from 学生10 、显示学生表中姓名和性别列的内容。
select 姓名, 性别from 学生11、对“学生”表中“性别”列的值进行处理,当值等于0时返回“女”,当值等于1时返回“男”。
select 语句 简单数学计算

select 语句简单数学计算
当我们在数据库中使用SELECT语句进行简单的数学计算时,通
常是通过使用内置的数学函数来实现的。
比如,我们可以使用SUM()函数来对某一列的数值进行求和,使用AVG()函数来计算平均值,
使用MAX()和MIN()函数来找出最大值和最小值,使用COUNT()函数
来统计行数等等。
举个例子,如果我们有一个表格存储了学生的考试成绩,我们
可以使用SELECT语句结合SUM()函数来计算所有学生的总分,或者
使用AVG()函数来计算平均分。
如果我们想要找出最高分和最低分,可以使用MAX()和MIN()函数。
另外,如果我们想知道有多少学生参
加了考试,可以使用COUNT()函数来得到总人数。
除了基本的数学计算,我们还可以在SELECT语句中进行一些简
单的数学运算,比如加减乘除等。
我们可以直接在SELECT语句中使
用数学运算符号,比如加号(+)、减号(-)、乘号()、除号(/)等,来
对列进行加减乘除操作。
例如,我们可以编写SELECT语句来计算两
列的和、差、积或商。
总之,使用SELECT语句进行简单的数学计算,我们可以通过内
置的数学函数和数学运算符号来实现对数据库中数值数据的各种计算需求。
希望这个回答能够帮助到你,如果你有更多的问题,请继续提出。
大学计算机大数据库期末考试复习资料及试卷(7)

⼤学计算机⼤数据库期末考试复习资料及试卷(7)TEST1⼀、判断题.1.Access数据库的全部内容存放在⼀个扩展名为.mdb的⽂件中。
2.表是数据库的基本对象,是存放各类数据的基础。
3.⽂本型字段⼤⼩的取值范围是0~256,默认值为50。
4.输⼊掩码向导可以⽤于⽂本型和⽇期时间型。
5.条件year([出⽣年⽉])=1982,表⽰查找出⽣⽇期为1982年。
6.要建⽴两表之间的关系,必须通过两表的共同字段来创建。
7.排序只能对⼀个字段进⾏排序。
8.报表的视图有三种:打印预览、设计视图、版⾯预览。
9.在SQL的SELECT语句中,⽤于实现选择运算的短语是Where短语。
10.在数据库中能够唯⼀地标识⼀个元组的属性或属性的组合称为关键字。
11.为窗体或报表上的控件设置属性值的宏命令是Beep。
12.在窗体中可以使⽤⽂本框创建计算控件显⽰计算结果。
13.如果字段的内容为图像⽂件,则该字段的数据类型应定义为超级链接。
14.字段在库的设计中已经定义完成,在查询显⽰时不能改变其显⽰名称。
15.能够唯⼀标识某⼀控件的属性是标题。
16.计算控件的控件来源属性⼀般设置为“=”开头的计算表达式。
17.VBA中定义符号常量⽤的关键字是Dim。
18.在为查询添加字段时,“*”表⽰所有的表和字段。
19.报表的数据来源不能是查询。
20.InputBox函数的返回值类型是数值型。
⼆、选择题(每题1分,共30分。
涂⿊答题卡上对应的项。
)21.关系数据库系统能够实现的三种基本关系运算是(21)。
A)索引,排序,查询B)建库,输⼊,输出C)选择,投影,联接D)显⽰,统计,复制22. Access数据库的类型是(22)。
A)层次数据库B)⽹状数据库C)关系数据库D)⾯向对象数据库23. Access表中字段的数据类型不包括(23).A)⽂本B)备注C)通⽤D)⽇期/时间24. 在Access数据库中已建⽴了“tBook”表,若查找“图书编号”是“112266”和“113388”的记录,应在查询“设计”视图的“条件”⾏中输⼊(24)A) ″112266″and ″113388″B) Not In (″112266″,″113388″)C) In (″112266″,″113388″) D) Not (″112266″,″113388″)25. 以下关于查询的叙述正确的是(25)。
2020年计算机二级考试《MySQL》模拟练习选择题

2020年计算机二级考试《MySQL》模拟练习选择题1[单选题]关于SELECT语句以下哪一个描述是错误的( )A.SELECT语句用于查询一个表或多个表的数据。
B.SELECT语句属于数据操作语言(DML)。
C.SELECT语句的列必需是基于表的列的。
D.SELECT语句表示数据库中一组特定的数据记录。
参考答案:C2[单选题]改变表名的指令是( )A.RENAME TABLE t1 rename to t2;B.RENAME TABLE t1 to t2;C.UPDATE NAME t1 to t2;D.CHANGE NAME t1 to t2;参考答案:B3[单选题] 在SELECT语句中,能够使用________子句,将结果集中的数据行根据选择列的值实行逻辑分组,以便能汇总表内容的子集,即实现对每个组的聚集计算。
A.LIMITB.GROUP BYC.WHERED.ORDER BY参考答案:B4[单选题]SELECT * FROM city limit 5,10描述准确的是( )A.获取第6条到第10条记录。
B.获取第5条到第10条记录。
C.获取第6条到第15条记录。
D.获取第5条到第15条记录。
参考答案:C5[单选题] 对于现实世界中事物的特征,在实体-联系模型中使用( )A.属性描述B.关键字描述C.二维表格描述D.实体描述参考答案:A6[单选题]创建表时,不允许某列为空能够使用A.NOT NULLB.NO NULLC.NOT BLANKD.NO BLANK参考答案:A7[单选题] 从E—R模型向关系模型转换,一个M:N的联系转换成一个关系模式时,该关系模式的键是________。
A.M端实体的键B.Ⅳ端实体的键C.M端实体键与N端实体键组合D.重新选择其他属性参考答案:C8[单选题]关系数据库中,外码(ForeignKey)是( )。
A.在一个关系中定义了约束的一个或一组属性B.在一个关系中定义了缺省值的一个或一组属性C.在一个关系中的一个或一组属性是另一个关系的主码D.在一个关系中用于标识元组的一个或一组属性参考答案:C9[单选题]修改自己的mysql服务器密码的命令是( )A.mysqlB.grantC.set passwordD.change password参考答案:C10[填空题]在创建表格时,能够使用( )关键词使当前建立的表为临时表。
Select语句查询练习(pubs)

该实验以SQL Server 2000系统自带的pubs 数据库为例,以一个图书出版公司为模型。
●SQL SERVER200实体关系图描述●E-R图描述(1)该系统中数据库基本表如下:Authors:2 zip CHECK 约束定义为(zip LIKE '[0-9][0-9][0-9][0-9][0-9]')。
============================discountsEmployee(emp_id LIKE '[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]') OR (emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]')。
============================Jobs(2) max_lvl CHECK 约束定义为(max_lvl <= 250)。
============================pub_infoPublishers(pub_id = '1756' OR (pub_id = '1622' OR (pub_id = '0877' OR (pub_id = '0736' OR (pub_id = '1389')))) OR (pub_id LIKE '99[0-9][0-0]')。
============================royschedSalestitles============================ Storestitleauthor(2)练习内容目的1:1.加深对表间关系的理解。
2.理解数据库中数据的查询方法和应用。
3.学会各种查询的异同及相互之间的转换方法。
内容1:1.查询所有作者的作者号、姓名信息2.查询所有作者的姓名、作者号信息,并在每个作者的作者号前面显示字符串“身份证号:”,表明显示的信息是身份证信息3.查询在CA州的作者姓名和城市4.查询出版日期在1992.1.1-2000.12.31之间的书名和出版日期(查询1991年出版的书)5.查询每个出版社出版的书6.查询某店销售某书的数量7.查询有销售记录的所有书信息,包括书的编号、书名、类型和价格8.查询已销售书的信息9.显示所有的书名(无销售记录的书也包括在内)10.查询已销售书的信息(书号、书名、作者等)11. 查询所有出版商业(business)书籍的出版社的名称目的2:1.理解数据库中数据的其他查询方法和应用;2.学会各种查询要求的实现。
select试题参考答案

----答案网上下载,未经检验,仅供参考。
--------简单查询1 显示所有部门名select dnamefrom dept;2 显示存在雇员的所有部门号select distinct deptnofrom emp;3 显示工资超过2850的雇员名和工资select ename,salfrom empwhere sal > 2850;4 显示工资不在1500到2850之间的所有雇员名及工资select ename,salfrom empwhere sal not between 1500 and 2850;5 显示雇员代码为7566的雇员名及所在部门号select ename,deptnofrom empwhere empno = 7566;6 显示部门代码为10和30中工资超过1500的雇员名及工资select ename,salfrom empwhere sal > 1500 and deptno in (10,30)7 显示无管理者的雇员名及岗位select ename,jobfrom empwhere mgr is null;8 显示获得补助的所有雇员名、补助额以及所在部门号select deptno,ename,commfrom empwhere comm is not null;9 显示部门代码为20的部门的所有雇员名、雇员工资及岗位select ename,sal,jobwhere deptno = 20;10 显示所有雇员的姓名、部门编号、工资,并且列名要显示为中文select ename as 姓名,deptno as 部门编号,sal as 工资from emp;11 显示工资大于1500的雇员名和工资,并且按照工资的降序排列select ename,salfrom empwhere sal > 1500order by sal desc;12 显示雇员部门编号为10或20的信息(要求使用IN关键字)select *from empwhere deptno in (10,20);13 显示雇员名的第二个字母为A的信息select enamefrom empwhere ename like '_A%';14 显示没有发放补助的雇员信息select *from empwhere comm is null;15 显示所有雇员名及其全年收入(工资+补助),并指定列别名"年收入"select ename,nvl2(comm,sal+comm,sal) as 年收入from emp;--NVL2(x,v1,v2):如果x不为NULL,返回v1,否则返回v2。
select语句题大学计算机数据库

查询xscj表中的学号,姓名,计算机三项信息,结果按计算机成绩的降序排列。
select 学号,姓名,计算机from xscj order by 计算机desc统计xsda表中男女生的人数select 性别,count(*) as 人数from xsda group by 性别select * from 图书where year(出版日期) >=2018计算xsda表中男女生的平均身高。
select 性别,avg(身高) as 平均身高from xsdagroup by 性别查询zgda表中的工号,姓名,性别,职称4项信息,显示结果时首先按照女性在前的顺序,如果性别相同则按照职称的升序排列。
select 工号,姓名,性别,职称from zgdaorder by 性别desc ,职称本题目要求编写SQL语句,查询图书表中条形码左边开始三个字符是“TP3”的图书的全部信息要求:不能用like运算符构成条件表达式。
select *from 图书where 条形码like "TP3%"本题目要求编写SQL语句,查询图书表中书名为“C语言程序设计”和“VB程序设计”的两本书的全部信息要求:使用in 运算符构成条件表达式提示:请使用SELECT语句作答。
select *from 图书where 书名in ("C语言程序设计","VB程序设计")题目要求编写SQL语句,查询图书表中未录入出版社信息的图书,要求结果中包含条形码,书名,出版社3列提示:请使用SELECT语句作答,“未录入”表示该项为空。
select 条形码,书名,出版社from 图书where 出版社is null本题目要求编写SQL语句,查询图书表中不是科学出版社出版的图书的全部信息提示:请使用SELECT语句作答。
SELECT *FROM 图书WHERE 出版社NOT IN ("科学出版社")本题目要求编写SQL语句,查询图书表中各出版社图书的数目,结果按图书数目降序排序提示:请使用SELECT语句作答。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
查询xscj表中的学号,姓名,计算机三项信息,结果按计算机成绩的降序排列。
select 学号,姓名,计算机from xscj order by 计算机desc统计xsda表中男女生的人数select 性别,count(*) as 人数from xsda group by 性别select * from 图书where year(出版日期) >=2018计算xsda表中男女生的平均身高。
select 性别,avg(身高) as 平均身高from xsdagroup by 性别查询zgda表中的工号,姓名,性别,职称4项信息,显示结果时首先按照女性在前的顺序,如果性别相同则按照职称的升序排列。
select 工号,姓名,性别,职称from zgdaorder by 性别desc ,职称本题目要求编写SQL语句,查询图书表中条形码左边开始三个字符是“TP3”的图书的全部信息要求:不能用like运算符构成条件表达式。
select *from 图书where 条形码like "TP3%"本题目要求编写SQL语句,查询图书表中书名为“C语言程序设计”和“VB程序设计”的两本书的全部信息要求:使用in 运算符构成条件表达式提示:请使用SELECT语句作答。
select *from 图书where 书名in ("C语言程序设计","VB程序设计")题目要求编写SQL语句,查询图书表中未录入出版社信息的图书,要求结果中包含条形码,书名,出版社3列提示:请使用SELECT语句作答,“未录入”表示该项为空。
select 条形码,书名,出版社from 图书where 出版社is null本题目要求编写SQL语句,查询图书表中不是科学出版社出版的图书的全部信息提示:请使用SELECT语句作答。
SELECT *FROM 图书WHERE 出版社NOT IN ("科学出版社")本题目要求编写SQL语句,查询图书表中各出版社图书的数目,结果按图书数目降序排序提示:请使用SELECT语句作答。
select 出版社,count(*) as 图书数目from 图书group by 出版社order by 图书数目desc本题目要求编写SQL语句,查询图书表中全部图书的最高售价、最低售价和平均售价。
提示:请使用SELECT语句作答。
select max(售价) as 最高售价, min(售价) as 最低售价, avg(售价) as 平均售价from 图书本题目要求编写SQL语句,查询图书表中各出版社图书的数目,要求过滤掉数目为1的数据。
提示:请使用SELECT语句作答。
select 出版社,count(*) as 图书数目from 图书group by 出版社having(图书数目)>1本题目要求编写SQL语句,查询图书表中2018年出版的图书的数目提示:请使用year函数作答。
select count(*) as 2018年出版的图书数目from 图书where year(出版日期)=2018本题目要求编写SQL语句,查询图书的条形码,书名,出版社和出版日期,要求结果按出版社升序排列,出版社相同的数据按出版日期降序排列select 条形码,书名,出版社,出版日期from 图书order by 出版社,出版日期desc本题目要求编写SQL语句,查询图书表中有哪些出版社,要求结果没有重复值提示:请使用distinctselect distinct 出版社from 图书本题目要求编写SQL语句,通过图书表和借阅表,查询图书的借阅情况,要求结果中包括以下几列:账号,条形码,书名和借书日期提示:请使用SELECT多表查询的方法select 账号,图书.条形码,书名,借书日期from 图书inner join 借阅on 图书.条形码=借阅.条形码通过图书表,读者表和借阅表,查询读者的借阅情况,要求结果中包含以下字段:账号,姓名,条形码,书名,借书日期和还书日期。
select 借阅.账号,姓名,图书.条形码,书名,借书日期,还书日期from 图书inner join(借阅inner join 读者on 借阅.账号=读者.账号) on 图书.条形码=借阅.条形码通过两个表,查询编号为“D002”的读者借阅图书的信息,要求结果中包括以下字段:账号,姓名,等级,条形码,借书日期。
select 借阅.账号,姓名,等级,条形码,借书日期from 借阅inner join 读者on 借阅.账号=读者.账号where 借阅.账号="D002"在读者表中查询全部读者信息,要求女性在前男性在后,同为女(男)性读者的按账号升序排列SELECT *FROM 读者order by 性别desc,账号在读者表中,查询男女性读者各多少人select 性别,count(*) as 人数from 读者group by 性别在读者表中查询余额最高的读者的全部信息。
提示:请使用嵌套查询作答,不能用topselect *from 读者where 余额>=all(select max(余额) from 读者)在读者表中查询不同等级各自的人数,结果按人数降序排列。
select 等级,count(*) as 人数from 读者group by 等级order by count(*) desc查询姓王的读者的账号、姓名和性别,要求使用left函数select 账号,姓名,性别from 读者where left(姓名,1)="王"查询图书表中售价最高的图书的全部信息。
提示:这是一个嵌套查询。
select *from 图书where 售价>=(select max(售价) from 图书)查询读者表中有哪些等级,结果中不能出现重复值。
提示:使用distinctselect distinct 等级from 读者在读者表中查询所有等级为“白银”的读者的余额之和。
select sum(余额) as 白银读者余额之和from 读者where 等级="白银"在读者表中查询没有录入出生日期的读者的全部数据。
select *from 读者where 出生日期is null通过读者和借阅表,查询读者信息,包括以下字段:账号,姓名,性别,条形码,借书日期和还书日期select 读者.账号,姓名,性别,条形码,借书日期,还书日期from 读者inner join 借阅on 读者.账号=借阅.账号根据读者表和借阅表,查询没有借书记录的读者的账号和姓名。
提示:使用“带有NOT IN的嵌套查询”select 账号,姓名from 读者where 账号not in (select 账号from 借阅where 借阅.账号=读者.账号)通过图书表和借阅表,查询哪本书没有被借阅过,显示它的条形码,书名和作者信息提示:使用“带IN的嵌套查询”select 条形码,书名,作者from 图书where 条形码not in (select 条形码from 借阅where 借阅.条形码=图书.条形码)本题目要求编写SQL语句,在图书表中插入一条记录,内容是:条形码“TP211.3”,书名“狼图腾”,作者“姜戎”,售价44.5元提示:请使用INSERT语句作答。
insert into 图书(条形码,书名,作者,售价) values ("TP211.3","狼图腾","姜戎",44.5)本题目要求编写SQL语句,将图书表中科学出版社出版的图书价格上涨5%。
update 图书set 售价=售价*1.05 where 出版社="科学出版社"向订单表中插入一条新记录,订单编号是10331,顾客编号是J101,员工编号是023。
insert into 订单(订单编号,顾客编号,员工编号) values("10331","J101","023")将订单表中2015年以前(包括2015年)的订单数据删除。
要求:使用year函数。
delete from 订单where year(订单日期)<=2015将顾客表中顾客编号最后两位是“10”和“11”的记录删除delete from 顾客where right(顾客编号,2)="10" or right(顾客编号,2)="11"将编号为“10330”的订单的运费下调10%update 订单set 运费=运费*0.9 where 订单编号="10330"在订单表中查询各位员工承办的订单数目。
提示:按员工编号分组。
select 员工编号,count(*) as 订单数from 订单group by 员工编号在订单表中查询各位员工承办的订单数目,要求只显示大于1的那些数据select 员工编号,count(*) as 订单数from 订单group by 员工编号having(订单数)>1在员工表中查询1990年以后(包括1990年)出生的员工的全部信息。
要求:必须使用year函数。
select *from 员工where year(出生日期)>=1990在员工表中查询全体员工的编号,姓名和年龄。
提示:年龄需要计算得到,由于系统语法不同,取当前系统日期的函数不要用date( ),请使用curdate( )。
select 员工编号,姓名,year(curdate())-year(出生日期) as 年龄from 员工在顾客表中查询公司城市在“济南”的顾客数目select count(*) as 济南顾客数from 顾客where 城市="济南"在员工表中查询男女职工的平均年龄。
提示:年龄需要计算求出。
由于系统语法的不同,此处不能使用year(date()),请使用year(curdate())select 性别,avg(year(curdate())-year(出生日期)) as 平均年龄from 员工group by 性别在员工表中查询姓陈的男职工的全部信息。
要求使用字符处理函数作答。
select *from 员工where left(姓名,1)="陈" and 性别="男"在顾客表中查询如下信息,城市和电话这两项有一项为空或者都为空的,就显示这一条记录的全部内容select *from 顾客where 城市is null or 电话is null在订单表中查询不是023号员工处理的订单的信息,要求包括订单编号,顾客编号,员工编号和订单日期select 订单编号,顾客编号,员工编号,订单日期from 订单where 员工编号not in ("023")在顾客表中查询各个城市的顾客数目。