数据库SQL查询语句练习题
(完整版)sql语句练习题及答案

(完整版)sql语句练习题及答案⼀在数据库 school 中建⽴student , sc, course 表。
学⽣表、课程表、选课表属于数据库School ,其各⾃的数据结构如下:学⽣Student (Sno,Sname,Ssex,Sage,Sdept)课程表course(Cno,Cname,Cpno,Ccredit)学⽣选课SC(Sno,Cno,Grade)⼆设定主码1 Student表的主码:sno2 Course表的主码:cno3 Sc表的主码:sno,cno1写出使⽤ Create Table 语句创建表 student , sc, course 的SQL语句23 删除student表中的元组4在数据库school中删除关系student5在student表添加属性sbirthdate 类型datetimeDelete1 删除所有JSJ 系的男⽣delete from Student where Sdept=’JSJ’ and Ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);Update1 修改0001 学⽣的系科为: JSJ2 把陈⼩明的年龄加1岁,性别改为⼥。
2 修改李⽂庆的1001课程的成绩为93 分3 把“数据库原理”课的成绩减去1分Select 查询语句⼀单表1查询年龄在19⾄21岁之间的⼥⽣的学号,姓名,年龄,按年龄从⼤到⼩排列。
2查询姓名中第2个字为“明”字的学⽣学号、性别。
3查询 1001课程没有成绩的学⽣学号、课程号4查询JSJ 、SX、WL 系的年龄⼤于25岁的学⽣学号,姓名,结果按系排列5按10分制查询学⽣的sno,cno,10分制成绩(1-10分为1 ,11-20分为2 ,30-39分为3,。
90-100为10)6查询 student 表中的学⽣共分布在那⼏个系中。
数据库常用SQL语句练习(含答案)

Emp(员工表)和Dept(部门表)简单题1. 案例:查询没有上级领导的员工的编号,姓名,工资select empno,ename,sal from emp where mgr is null;2. 案例:查询emp表中没有奖金的员工的姓名,职位,工资,以及奖金select ename,job,sal,comm from emp where comm is null or comm=0;既可以是null,也可以是03. 案例:查询emp表中含有奖金的员工的编号,姓名,职位,以及奖金select ename,job,sal,comm from emp where comm>0;4. 案例:查询含有上级领导的员工的姓名,工资以及上级领导的编号select ename,sal,mgr from emp where mgr is not null;5. 案例:查询emp表中名字以‘S’开头的所有员工的姓名select ename from emp where ename like 's%'6. 案例:查询emp表中名字的最后一个字符是'S'的员工的姓名select ename from emp where ename like '%s'7. 案例:查询倒数的第2个字符是‘E’的员工的姓名select ename from emp where ename like '%e_'8. 案例:查询emp表中员工的倒数第3个字符是‘N’的员工姓名select ename from emp where ename like '%n__'9. 案例:查询emp表中员工的名字中包含‘A’的员工的姓名select ename from emp where ename like '%a%'10. 案例:查询emp表中名字不是以'K'开头的员工的所有信息select * from emp where ename not like 'k%';11. 案例:查询emp表中名字中不包含‘A’的所有员工的信息select * from emp where ename not like '%a%'12. 案例:做文员的员工人数(job= CLERK 的)select count(*) from emp where job='clerk';13. 案例:销售人员job: SALESMAN 的最高薪水select max(sal) from emp where job='salesman';14. 案例:最早和最晚入职时间select min(hiredate),max(hiredate) from emp;15. 案例:查询emp表中员工的编号,姓名,职位,工资,并且工资在1000~2000之间。
数据库SQL语句练习题含答案

SQL语句练习练习5. 1. 2: 基于不断滚动的电影数据库的实例:Movie( 电影名title,拍摄年代year ,长度length, inColor ,制片厂名studioName, 制片人证书号producerC# )StarsIn(电影名movieTitle,拍摄年份movieYear ,影星名starName) MovieStar (姓名name,地址address,性别gender ,生日birthdate) MovieExec( 姓名name,地址address ,证书号cert # ,净资产netWorth ) Studio(姓名name, 地址address,总裁证书号presC# )请写出下列SQL 查询语句:* ( a) 找出米高梅制片公司(MGM studios)的地址。
SELECT address AS Studio_AddressFROM Studio WHERE name = 'MGM';( b) 找出桑德拉·布洛克( Sandra Bullock ) 的出生日期( birthdate) 。
SELECT birthdate AS Star_BirthdateFROM MovieStar WHERE name = 'Sandra Bullock';* ( c) 找出在1980 年拍摄过电影的所有影星, 或者拍摄过电影名中含有“Love”的电影的所有影星。
SELECT starName FROM StarsInWHERE movieYear = 1980 OR movieTitle LIKE '%Love%';( d) 找出净资产至少1 000 万美元的所有行政长官。
SELECT name AS Exec_NameFROM MovieExec WHERE netWorth >= 10000000;( e) 找出所有的男影星或者是住址中含有Malibu 的影星。
SQL语句练习题(包含有多表查询)-答案

SQL语句练习题1、请从表EMP中查找工种是职员CLERK或经理MANAGER的雇员姓名、工资。
select ename,sal from emp where job='CLERK' or job='MANAGER';2、请在EMP表中查找部门号在10-30之间的雇员的姓名、部门号、工资、工作。
select ename,deptno,sal,job from emp where deptno between 10 and 30;3、请从表EMP中查找姓名以J开头所有雇员的姓名、工资、职位。
select ename,sal,job from emp where ename like 'J%';4、请从表EMP中查找工资低于2000的雇员的姓名、工作、工资,并按工资降序排列。
select ename,job,sal from emp where sal<=2000 order by sal desc;5、请从表中查询工作是CLERK的所有人的姓名、工资、部门号、部门名称以及部门地址的信息。
select ename,sal,emp.deptno,dname,loc from emp,dept where emp.deptno=dept.deptno and job=’CLERK’;6、查询表EMP中所有的工资大于等于2000的雇员姓名和他的经理的名字。
select a.ename,b.ename from emp a,emp b where a.mgr=b.empno(+) and a.sal>=2000;7、查询所有雇员的姓名、SAL与COMM之和。
select ename,sal+nvl(comm,0) “sal-and-comm” from emp;8、查询所有81年7月1日以前来的员工姓名、工资、所属部门的名字select ename,sal,dname from emp,dept where emp.deptno=dept.deptno and hiredate<=to_date(‘1981-07-01’,’yyyy-mm-dd’);9、查询列出来公司就职时间超过24年的员工名单select ename from emp where hiredate<=add_months(sysdate,-288);10、查询于81年来公司所有员工的总收入(SAL和COMM)select sum(sal+nvl(comm,0)) from emp where to_char(hiredate,’yyyy’)=’1981’;11、查询显示每个雇员加入公司的准确时间,按××××年××月××日时分秒显示。
50条数据库sql语句及答案

select teaid from tblTeacher where teaname = '叶平')))
--练习
select stuid from tblScore where courseid in (
--11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;
------运用连接查询
SELECT DISTINCT ST.* FROM tblStudent ST, tblScore SC WHERE ST.STUID = SC.STUID
AND SC.COURSEID IN
select stuid from tblScore GROUP BY STUID HAVING max(SCORE)<60)
--10、查询没有学全所有课的同学的学号、姓名;
--练习
SELECT TS.STUID,TS.STUNAME,COUNT(TSC.SCORE) FROM tblStudent TS
TC.COURSEID INNER JOIN tblTeacher TT ON TC.TEAID = TT.TEAID
WHERE TT.TEANAME ='叶平')
--对
SELECT STUID, STUNAME FROM tblStudent WHERE STUID NOT IN(
where A.SCORE > B.SCORE
--老师讲的方法
SELECT T.* FROM tblScore T WHERE T.COURSEID = 1 AND
数据库sql查询语句练习4_习题_结果(单世民)图书_习题

数据库sql查询语句练习4_习题_结果(单世民)图书_习题现有图书管理数据库的三个关系模式:图书(总编号, 分类号, 书名, 作者, 出版单位, 单价)读者(借书证号, 单位, 姓名, 性别, 职称, 地址)借阅(借书证号, 总编号, 借书⽇期)具体数据为:读者:根据以上描述,请完成:DDL1.写出创建上述表的语句命令:create table图书(总编号varchar(7)primary key,分类号varchar(8),书名varchar(18),作者varchar(8),出版单位varchar(18),单价float)create table读者(借书证号varchar(4)primary key,单位varchar(7),姓名varchar(8),性别varchar(2),职称varchar(8),地址varchar(18))create table借阅(借书证号varchar(3),总编号varchar(6),借书⽇期date,primary key(借书证号,总编号,借书⽇期))DML2.给出插⼊上述数据的insert语句命令:insert into图书values('445501','TP3/12','数据库导论','王强','科学出版社', insert into图书values('445502','TP3/12','数据库导论','王强','科学出版社', insert into图书values('445503','TP3/12','数据库导论','王强','科学出版社', insert into图书values('332211','TP5/10','计算机基础','李伟','⾼等教育出版社', insert into图书values('112266','TP3/12','FoxBASE','张三','电⼦⼯业出版社', insert into图书values('665544','TS7/21','⾼等数学','刘明','⾼等教育出版社', insert into图书values('114455','TR9/12','线性代数','孙业','北京⼤学出版社', insert into图书values('113388','TR7/90','⼤学英语','胡玲','清华⼤学出版社', insert into图书values('446601','TP4/13','数据库基础','马凌云','⼈民邮电出版社',insert into图书values('446602','TP4/13','数据库基础','马凌云','⼈民邮电出版社',insert into图书values('446603','TP4/13','数据库基础','马凌云','⼈民邮电出版社',insert into图书values('449901','TP4/14','FoxPro⼤全','周虹','科学出版社', insert into图书values('449902','TP4/14','FoxPro⼤全','周虹','科学出版社', insert into图书values('118801','TP4/15','计算机⽹络','黄⼒钧','⾼等教育出版社',insert into图书values('118802','TP4/15','计算机⽹络','黄⼒钧','⾼等教育出版社',insert into读者values('111','信息系','王维利','⼥','教授','1号楼')insert into读者values('112','财会系','李⽴','男','副教授','2号楼')insert into读者values('113','经济系','张三','男','讲师','3号楼')insert into读者values('114','信息系','周华发','男','讲师','1号楼')insert into读者values('115','信息系','赵正义','男','⼯程师','1号楼')insert into读者values('116','信息系','李明','男','副教授','1号楼')insert into读者values('117','计算机系','李⼩峰','男','助教','1号楼')insert into读者values('118','计算机系','许鹏飞','男','教授','1号楼')insert into读者values('119','计算机系','刘⼤龙','男','副教授','4号楼') insert into读者values('120','国际贸易','李雪','男','副教授','4号楼') insert into读者values('121','国际贸易','李爽','⼥','讲师','4号楼') insert into读者values('122','国际贸易','王纯','⼥','讲师','4号楼') insert into读者values('123','财会系','沈⼩霞','⼥','助教','2号楼') insert into读者values('124','财会系','朱海','男','讲师','2号楼')insert into读者values('125','财会系','马英明','男','副教授','2号楼')insert into借阅values('112','445501','1997-3-19')insert into借阅values('125','332211','1997-2-12')insert into借阅values('111','445503','1997-8-21')insert into借阅values('112','112266','1997-3-14')insert into借阅values('114','665544','1997-10-21')insert into借阅values('120','114455','1997-11-2')insert into借阅values('120','118801','1997-10-18')insert into借阅values('119','446603','1997-12-12')insert into借阅values('112','449901','1997-10-23')insert into借阅values('115','449902','1997-8-21')insert into借阅values('118','118801','1997-9-10')单表查询3.找出姓李的读者姓名和所在单位命令:select姓名,单位from读者where姓名like'李%'结果:4.列出图书库中所有藏书的书名以及出版单位命令:select distinct书名,出版单位from图书结果:5.查找出⾼等教育出版社的所有图书及单价,结果按单价降序排列命令:select distinct书名,单价from图书where出版单位='⾼等教育出版社' order by单价desc结果:6.查找出价格位于10元和20元之间的图书种类,结果按出版单位和单价升序排序命令:select*from图书where单价between 10 and 20 order by出版单位,单价结果:7.找出书名以“计算机”打头的所有图书和作者命令:select distinct书名,作者from图书where书名like'计算机%'结果:8.检索同时接借阅了总编号为112266和449901两本书的借书证号命令:select借书证号from借阅where总编号='112266'intersect select借书证号from借阅where总编号='449901'结果:9.求科学出版社图书的最⾼单价、最低单价和平均单价命令:select MAX(单价)最⾼单价,MIN(单价)最低单价,AVG(单价)平均单价from 图书where出版单位='科学出版社'结果:聚合查询10.找出藏书中各个出版社的册数、价值总额命令:select出版单位,COUNT(*)册数,SUM(单价)价值总额from图书group by 出版单位结果:11.求出各个出版社图书的最⾼价格、最低价格和册数命令:select出版单位,COUNT(*)册数,max(单价)最⾼价格,MIN(单价)最低价格from图书group by出版单位结果:多表查询12.查找所有借了书的读者的姓名以及所在单位命令:select distinct姓名,单位from读者join借阅on读者.借书证号=借阅.借书证号结果:13.找出李某所借图书的所有图书的书名及借书⽇期命令:select姓名,书名,借书⽇期from读者join借阅on读者.借书证号=借阅.借书证号join图书on借阅.总编号=图书.总编号where 姓名like'李%'结果:14.查询1997年10⽉以后借书的读者借书证号、姓名和单位命令:select distinct读者.借书证号,姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号whereDATEDIFF(MONTH,'1977-10-1',借书⽇期)>=0结果:15.找出借阅了FoxPro⼤全⼀书的借书证号命令:select借书证号from借阅join图书on借阅.总编号=图书.总编号where 书名='FoxPro⼤全'结果:16.分别找出借书⼈次超过1⼈次的单位及⼈次数命令:select单位,COUNT(*)⼈次数from借阅join读者on借阅.借书证号=读者.借书证号group by单位having COUNT(*)>1结果:⼦查询17.找出与赵正义在同⼀天借书的读者姓名、所在单位以及借书⽇期命令:select姓名,单位,借书⽇期from读者join借阅on读者.借书证号=借阅.借书证号where借书⽇期=(select借书⽇期from借阅join读者on借阅.借书证号=读者.借书证号where姓名='赵正义')结果:18.查询1997年7⽉以后没有借书的读者借书证号、姓名以及单位命令:select借书证号,姓名,单位from读者except select借阅.借书证号,姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号where DATEDIFF(DAY,'1997-7-1',借书⽇期)>=0结果:19.求信息系当前借阅图书的读者⼈次数命令:select COUNT(*)⼈次数from借阅join读者on借阅.借书证号=读者.借书证号where单位='信息系'结果:20.找出当前⾄少借阅了2本书的读者及所在单位命令:select姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号group by读者.姓名,单位having COUNT(*)>=2结果:21.查询经济系是否还清所有图书。
SQL查询习题

SQL查询习题一、单表查询练习1、查询<学生信息表>,查询学生"张三"的全部基本信息select *from xsbwhere xm='张三'2、查询<学生信息表>,查询学生"张三"和”张四”的基本信息select *from xsbwhere xm='张三'or xm='张四'3、查询<学生信息表>,查询姓"张"学生的基本信息select *from xsbwhere xm like '张%'4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息select *from xsbwhere xm like '%四%'5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。
select *from xsbwhere xm like '李_强'6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。
select *from xsbwhere xm like '张%'or xm='李%'7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息select *from xsbwhere xm like '张%'and jg='北京'8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息select *from xsbwhere jg='北京'or jg='上海'or jg='山东'or jg='新疆' orselect *from xsbwhere jg in ('北京','上海','山东','新疆')9、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息select *from xsbwhere xm like '张%'and jg!='北京'orselect *from xsbwhere xm like '张%'and jg<>'北京'orselect *from xsbwhere xm like '张%'and jg not like '%北京%'10、查询<学生信息表>,查询全部学生信息,并按照“性别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序select *from xsborder by xb,jg,bj11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份select distinct jgfrom xsb12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩select xh,kch,cjfrom cjbwhere cj is null13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序select *from cjbwhere cj is not nullorder by cj desc14、找出两个姓张的同学信息,只显示对应学生的姓名,性别和班级Select top 2 xm,xb,bjFrom xsbWhere xm like '张%'二、聚合函数练习1、统计<学生信息表>,统计共有多少个学生select count (*)from xsb2、统计<学生信息表>,统计年龄大于20岁的学生有多少个select count (*)from xsbwhere nl>='20'orselect count (*)from xsbwhere year(getdate())-year(csrq)>203、统计<学生信息表>,统计入学时间在1998年至2000年的学生人数select count (*)from xsbwhere rxrq>='1998-1-1' and rxrq<='2000-12-31'where rxrq between ‘1998-1-1’ and ‘2000-12-31’4、统计<学生选修信息表>,统计学号为"S001"的学生的平均成绩select AVG(cj)from cjbwhere xh='1'ORselect CONVERT(DECIMAL(18,2),AVG(cj)) ||保留小数点两位from cjbwhere xh='1'5、统计<学生选修信息表>,统计学号为"S001"的学生的总成绩select sum(cj)from cjbwhere xh='1'6、统计<学生选修信息表>,查询课程号为”C001”的课程的最高成绩select max(cj)from cjbwhere kch='23'7、统计<学生信息表>,查询所有学生中的最大年龄是多少select max(nl)from xsb三、分组查询练习1、统计<学生选修信息表>,统计每个课程的选修人数select kch,count(*)from cjbgroup by kch2、统计<学生选修信息表>,统计每个同学的总成绩select sum(cj)from cjbgroup by xh3、统计<学生信息表>,统计每个班级中每种性别的学生人数,并按照班级排序select bj,xb,count(*)from xsbgroup by bj,xb4、统计<学生选修信息表>,统计每门课程的平均成绩,并按照平均成绩降序排序select kch,AVG(cj)from cjbgroup by kchorder by AVG(cj) desc5、统计<学生选修信息表>,显示有两门以上课程不及格的学生的学号select xhfrom cjbwhere cj<'60'group by xhhaving count(*)>='2' 分组后的条件判断6、统计<学生信息表>,统计每个班级中的最大年龄是多少select bj,SUM(nl)from xsbgroup by bj四、嵌套查询练习1、用子查询实现,查询选修“高等数学”课的全部学生的总成绩1.课程表查课程号2.查所有高数成绩Select Sum( cj)from cjbwhere kch=( Select kchfrom kcbwhere kcm='高等数学')2、用子查询实现,统计<学生选修信息表>,显示学号为"S001"的学生在其各科成绩中,最高分成绩所对应的课程思考:如果该学号学生有两个课程分数都为最高的100分,查询会有什么结果学号一最高分最高分对应的课程号课程号对应课程名Select max(cj)From cjbWhere xh='1'Select kchFrom kcbWhere cj= (select max(cj ) from cjb ) and xh=’1’Select kcmFrom kcbWhere kch in ( Select kchFrom kcbWhere cj= (select max(cj ) from cjb ) and xh=’1’)3、用子查询实现,查询2班选修"数据库技术"课的所有学生的成绩之和1.班级二班学生Select xhFrom xsbWhere bj=’2’2.课程表里查课程号Select kchFrom kcbWhere kcm=’数据库技术’Select sum(cj)From cjbWhere xh in( Select xhFrom xsbWhere bj=’2’) and kch=( Select kchFrom kcbWhere kcm=’数据库技术’)4、用子查询实现,查询3班"张三"同学的"测试管理"成绩1.测试管理的课程号2.张三的学号Select xhFrom xsbWhere xm=’张三’and bj=’3’Select kchFrom kcbWhere kcm=’测试管理’Select cjFrom cjbWhere xh in ( Select xh ||in 可能有重名的多个‘张三’From xsbWhere xm=’张三’) and kcm=( Select kchFrom kcbWhere kcm=’测试管理’)五、联接查询练习1、查询"张三"的各科考试成绩,要求显示姓名、课程号和成绩查张三学号Select xhFrom xsbWhere xm=’张三’查学号对应成绩Select cj,kchFrom cjbWhere xh in(Select xhFrom xsbWhere xm=’张三’)Orselect xm, kch,cjfrom xsb,cjbwhere xsb.xh=cjb.xhand xm='张三'2、查询"张三"的各科考试成绩中,哪科没有记录考试成绩,要求显示姓名、课程号和成绩查张三学号Select xhFrom xsbWhere xm=’张三’学号对应的没有成绩的Select cj,kchFrom cjbWhere cj is nullSelect kchFrom cjbWhere cj=( Select cjFrom cjbWhere cj is null) and xh in (Select xhFrom xsbWhere xm=’张三’)Orselect xm, kch,cjfrom xsb,cjbwhere xsb.xh=cjb.xhand xm='张三'and cj is null3、查询"张三"的各门课程成绩,要求显示姓名、课程名称和成绩查张三学号学号对应成绩select xm,kcm,cjfrom xsb,cjb,kcbwhere xsb.xh=cjb.xhand cjb.kch=kcb.kchand xm='张三'4、查询3班"张三"的"测试管理"成绩,要求显示姓名、成绩查3班张三的学号查测试管理的课程号根据学号和课程号查成绩select xm,cjfrom xsb,cjb,kcbwhere xsb.xh=cjb.xhand cjb.kch=kcb.kchand xm='张三'and kcm='测试管理'and bj=’3’5、查询所有2000年以前入学的,各班男生的各科考试平均成绩select AVG(cj),bj,kchfrom xsb,cjbwhere xsb.xh=cjb.xhand rxrq<'2000 'and xb='男'group by bj,kch六、外联接查询查询”李坚强”所有课程的成绩,并显示学号、姓名、课程号和成绩,没有成绩记录的学号包括:('S009','S010','S011')1、使用左联接2、使用右联接3、对比等值连接七、补充提高1、查询“张三”比“王三”入学早几年2、查询所在班级和该班内学生的年龄之和,其中每个人的年龄都大于20岁,每个班的年龄之和大于60岁3、计算每种产品的剩余库存量表1,为产品进货表,产品名称name[char(10)],产品数量amount[int]表2,为产品出货表,产品名称name[char(10)],产品数量amount[int]业务逻辑:表1存储产品的总进货量,表2存储每种产品每次的出货量,如产品A进货为100,出货了3次,每次分别为10、20、30,那么A产品的库存就为40表A1 | 表A2-------------------|--------------------------- name amount | name amountA 100 | A 10B 100 | A 20| A 30| B 10| B 40。
sql练习题

sql练习题SQL练习题在现代信息化社会中,数据的处理和管理变得愈发重要。
而SQL(Structured Query Language)作为一种用于管理和处理关系型数据库的语言,也成为了各行各业从事数据分析和管理的必备技能之一。
为了提高自己的SQL技能,我们可以通过练习题来不断巩固和提升。
练习题一:查询商品信息假设有一个商品表(Product)和一个供应商表(Supplier),其中商品表包含了商品的ID、名称、价格和供应商ID等信息,供应商表包含了供应商的ID和名称等信息。
请写出一条SQL语句,查询出所有商品的名称、价格和供应商名称。
解答一:```sqlSELECT , Product.Price, FROM ProductJOIN Supplier ON Product.SupplierID = Supplier.ID;```练习题二:统计销售额假设有一个订单表(Orders)和一个订单详情表(OrderDetails),其中订单表包含了订单的ID、日期和客户ID等信息,订单详情表包含了订单详情的ID、订单ID、商品ID和数量等信息。
请写出一条SQL语句,统计每个客户的总销售额,并按销售额降序排序。
解答二:```sqlSELECT Orders.CustomerID, SUM(Product.Price * OrderDetails.Quantity) AS TotalSalesFROM OrdersJOIN OrderDetails ON Orders.ID = OrderDetails.OrderIDJOIN Product ON OrderDetails.ProductID = Product.IDGROUP BY Orders.CustomerIDORDER BY TotalSales DESC;```练习题三:查询员工信息假设有一个员工表(Employee)和一个部门表(Department),其中员工表包含了员工的ID、姓名和部门ID等信息,部门表包含了部门的ID和名称等信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设教学数据库Education有三个关系:
学生关系S(SNO(学号),SNAME(姓名),AGE(年龄),SEX(性别),SDEPT(系别));
学习关系SC(SNO(学号),CNO(课程号),GRADE(分数));
课程关系C(CNO(课程号),CNAME(课程名),CDEPT(课程部门),TNAME(老师姓名))
例3:查所年龄在20至23岁之间的学生姓名、系别及年龄。
SELECT Sname,Sdept,Sage FROM S WHERE Sage BETWEEN 20 AND 23;
例4:查计算机系、数学系、信息系的学生姓名、性别。
(不是计算机系, 数学系、信息系) SELECT Sname,Ssex FROM S WHERE Sdept IN (’CS’, ‘IS’, ‘MATH’);
例7:查姓“上官”且全名为3个汉字的学生姓名。
SELECT Sname FROM S WHERE Sname LIKE ‘上官_ _’;
例8:查所有不姓“张”的学生的姓名。
SELECT Sname,Sno,Ssex FROM S WHERE Sname NOT LIKE ‘张%’;
例10:查缺考的学生的学号和课程号。
SELECT Sno,Cno FROM SC WHERE Grade IS NULL;(不能用=代替)
{ 有成绩的 WHERE Grade IS NOT NULLL;}
例12:查计算机系20岁以下的学生的学号和姓名。
SELECT Sno,Sname FROM S WHERE Sdept=‘CS’ AND Sage<20;
例14:查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。
SELECT Sno,Grade FROM SC WHERE Cno=‘C3’ORDER BY Grade DESC;
例16:查询学生总人数。
SELECT COUNT(*) FROM S
例18:计算选修了C1课程的学生平均成绩。
SELECT AVG(Grade) FROM SC WHERE Cno=‘C1’;
例20:查询各个课程号与相应的选课人数。
SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno;。