当前位置:首页 » 操作系统 » 数据库语句练习题

数据库语句练习题

发布时间: 2023-10-14 09:16:13

1. 数据库select语句练习题啊!!!

10.题答案
select 课程号,总分,平均分,最高分,最低分(
select 课程号,
总分=sum(成绩),
平均分=sum(成绩)/count(*),
最高分=max(成绩),
最低分=min(成绩)
from 成绩
group by 课程号) as kc order by 平均分 desc
11.题答案
select 课程号,
平均分=sum(成绩)/count(*)
from 成绩
where 课程号='1001' or 课程号='1002'
group by 课程号
12.题答案
select 姓名,xs.学号,kc.平均分
from 学生 as xs
left join (select 学号,
平均分=sum(成绩)/count(*)
from 成绩
group by 学号) as kc on kc.学号=xs.学号
where kc.平均分>80

2. 求一道SQL数据库的语句题解答!求SQL专家完全解答!!!!

use 教师数据库
go
/*1、创建教师表*/
create table 教师表
(
教师编号 char(6) primary key,
姓名 varchar(10) not null,
性别 varchar(10) not null,
职称 varchar(10),
身份证号 varchar(10) unique nonclustered
)
/*2、创建课程表*/
create table 课程表
(
课号 char(6) primary key,
名称 varchar(20) not null
)
/*3、创建任课表*/
create table 任课表
(
ID int null,
教师编号 char(6) references 教师表(教师编号),
课号 char(6) references 课程表(课号),
课时数 int
)
/*4、将下列课程信息添加到课程表的代码*/
insert 课程表 values ('100001','SQL Server数据库')
insert 课程表 values ('100002','数据结构')
insert 课程表 values ('100003','VB程序设计')
/*5 、查找所有教师的信息。*/
select * from 教师表
/*6、检索有一门或一门以上课程课时数大于90的所有教师的信息,包括编号、姓名。*/
select 教师编号,姓名 from 教师表 where EXISTS (select count(*) from 任课表 where 教师表.教师编号=任课表.教师编号 group by 教师编号 HAVING count(*)>90)
/*7、查找张老师的代课总课数。*/
select count(*) from 任课表 where EXISTS (select * from 教师表 where 教师表.教师编号=任课表.教师编号 and 姓名='张老师')

3. SQL的练习,求答案!!!

有一些类似的题看看吧 一定有帮助
实验一
练习1、请查询表DEPT中所有部门的情况。
select * from dept;

练习2、查询表DEPT中的部门号、部门名称两个字段的所有信息。
select deptno,dname from dept;

练习3、请从表EMP中查询10号部门工作的雇员姓名和工资。
select ename,sal from emp where deptno=10;

练习4、请从表EMP中查找工种是职员CLERK或经理MANAGER的雇员姓名、工资。
select ename,sal from emp where job='CLERK' or job='MANAGER';

练习5、请在EMP表中查找部门号在10-30之间的雇员的姓名、部门号、工资、工作。
select ename,deptno,sal,job from emp where deptno between 10 and 30;

练习6、请从表EMP中查找姓名以J开头所有雇员的姓名、工资、职位。
select ename,sal,job from emp where ename like 'J%';

练习7、请从表EMP中查找工资低于2000的雇员的姓名、工作、工资,并按工资降序排列。
select ename,job,sal from emp where sal<=2000 order by sal desc;

练习8、请从表中查询工作是CLERK的所有人的姓名、工资、部门号、部门名称以及部门地址的信息。
select ename,sal,emp.deptno,dname,loc from emp,dept where emp.deptno=dept.deptno and job=’CLERK’;

练习9、查询表EMP中所有的工资大于等于2000的雇员姓名和他的经理的名字。
select a.ename,b.ename from emp a,emp b where a.mgr=b.empno(+) and a.sal>=2000;

练习10、在表EMP中查询所有工资高于JONES的所有雇员姓名、工作和工资。
select ename,job,sal from emp where sal>(select sal from emp where ename=’JONES’);

练习11、列出没有对应部门表信息的所有雇员的姓名、工作以及部门号。
select ename,job,deptno from emp where deptno not in (select deptno from dept);

练习12、查找工资在1000~3000之间的雇员所在部门的所有人员信息
select * from emp where deptno in (select distinct deptno from emp where sal between 1000 and 3000);

练习13、雇员中谁的工资最高。
select ename from emp where sal=(select max(sal) from emp);
select ename from (select * from emp order by sal desc) where rownum<=1;

*练习14、雇员中谁的工资第二高(考虑并列第一的情况,如何处理)。
select ename,sal from (select ename ,sal from emp where sal<(select max(sal) from emp) order by sal desc) where rownum<=1;
实验二
1. 查询所有雇员的姓名、SAL与COMM之和。
select ename,sal+nvl(comm,0) “sal-and-comm” from emp;

2. 查询所有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’);

3. 查询各部门中81年1月1日以后来的员工数
select deptno,count(*) from emp where hiredate>=to_date(‘1981-01-01’,’yyyy-mm-dd’) group by deptno;

4. 查询所有在CHICAGO工作的经理MANAGER和销售员SALESMAN的姓名、工资
select ename,sal from emp where (job=’MANAGER’ or job=’SALES’) and deptno in (select deptno from dept where loc=’CHICAGO’);

5. 查询列出来公司就职时间超过24年的员工名单
select ename from emp where hiredate<=add_months(sysdate,-288);

6. 查询于81年来公司所有员工的总收入(SAL和COMM)
select sum(sal+nvl(comm,0)) from emp where to_char(hiredate,’yyyy’)=’1981’;

7. 查询显示每个雇员加入公司的准确时间,按××××年××月××日 时分秒显示。
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;

8. 查询公司中按年份月份统计各地的录用职工数量
select to_char(hiredate,'yyyy-mm'),loc,count(*) from emp,dept
where emp.deptno=dept.deptno group by to_char(hiredate,'yyyy-mm'),loc;

9. 查询列出各部门的部门名和部门经理名字
select dname,ename from emp,dept where emp.deptno=dept.deptno and job=’MANAGER’;

10. 查询部门平均工资最高的部门名称和最低的部门名称
select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) ) where rownum<=1)
union all select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) desc ) where rownum<=1);

11. *查询与雇员号为7521员工的最接近的在其后进入公司的员工姓名
select ename from (select ename from
(select ename from emp where hiredate>(select hiredate from emp where empno=7521) order by hiredate ) where rownum<=1)

热点内容
惠普畅游人14是什么配置表 发布:2025-01-23 05:57:39 浏览:295
简单搭建ftp服务器 发布:2025-01-23 05:49:41 浏览:227
有qq号没密码如何登上 发布:2025-01-23 05:34:08 浏览:469
javajsdes加密 发布:2025-01-23 05:33:21 浏览:770
qq怎么上传视频到电脑上 发布:2025-01-23 05:07:27 浏览:972
如何申请i7服务器地址 发布:2025-01-23 04:42:15 浏览:848
浏览器内核源码 发布:2025-01-23 04:41:34 浏览:662
精英版缤智少了些什么配置 发布:2025-01-23 04:41:30 浏览:359
编写c编译器 发布:2025-01-23 04:41:30 浏览:971
可以解压war包的编译软件 发布:2025-01-23 04:38:28 浏览:989