找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
请用SQL完成以下的操作:
1.查询出学习成绩及格以上的学生姓名与成绩;
select sname,grade from A left join B on A.sid=B.sid where grade >60;
2.查询姓名以ny结尾的学生姓名及其任课老师姓名;
select A.sname,C.teacher
from A left join B on A.sid=B.sid left join C on B.cid=C.cid where A.sname like "%ny";
3.选修课名为Maths的学生学号与姓名;
select A.sid,A.sname
from A left join B on A.sid=B.sid left join C on B.cid=C.cid where cNAME="maths";
4.选修课号为C2和C4的学生学号;
select A.sid
from A left join B on A.sid=B.sid left join C on B.cid=C.cid where C.cid='C2' OR C.cid='C4';
5.请问没有参加考试的学生的姓名及其学号;
select A.sid,A.sname
from  A left join B on A.sid=B.sid left join C on B.cid=C.cid where B.GRADE=0;
6.请问总分在80分以上的学生姓名;
select A.sname
from A left join B on A.sid=B.sid left join C on B.cid=C.cid where B.GRADE>80;
7.请问考试不及格的考生姓名以及科目名称;
SELECT A.sname,C.cname
from A left join B on A.sid=B.sid left join C on B.cid=C.cid where B.GRADE<60;
8.找出Dany的所有考试后成绩中最高的科目的任课老师姓名;
select MAX(B.GRADE),C.CNAME,C.TEACHER
from A left join B on A.sid=B.sid left join C on B.cid=C.cid where sname='Dany';
9.各个科目的平均成绩各是多少;
select avg(B.GRADE),CNAME
from B left join C on B.cid=C.cid group by ;
10.由于录入员的失误,导致TOM同学有成绩不及格的科目,请帮忙将其合理修正;
update B LEFT JOIN A ON A.SID=B.SID left join C ON B.CID=C.CID
SET B.GRADE=60 WHERE GRADE <60 AND SNAME='Tom';
11.显示出参加考试的学生的学号和姓名;
SELECT A.SID,A.SNAME
FROM A LEFT JOIN B ON A.SID=B.SID WHERE B.GRADE IS NULL;
12.请问TOM一共参加了几门科目的考试;
SELECT COUNT(GRADE)
FROM A left join B on A.sid=B.sid left join C on B.cid=C.cid where SNAME='TOM';
13.期末,DBA发现学生表中没有班级字段,请帮忙将其合理修正;
ALTER TABLE A ADD CLASS char(6) not null AFTER SEX;

select * from A;


insert into A(Sid,SNAME,AGE,SEX,class)values(1111,'David',28,1,'1ban'),(1112,'Dany',23,0,'2ban'),(1113,'TOM',38,1,'1ban'),(1114,'Lily',20,0,'2ban');

select * from A;
14.学校新招了1位美术老师叫“白雪”,请在课程表中增加一条相应的记录,课程编号为C5;
insert into C(cid,cname,teacher) values ('C5','artist','baixue');

select * from C;
15.赵姓的老师很早就离职了,然而课程表中却还有其上课的记录,请帮忙删除;
课程表C(Cid,CNAME,TEACHER)

DELETE FROM C WHERE CID='C1';


select * from C;
16.请求出TOM同学所有任课老师的名字及其所教的课程名;
SELECT C.TEACHER,C.CNAME
FROM A left join B on A.sid=B.sid left join C on B.cid=C.cid where A.SNAME='TOM';
17.求每个同学的各科(总分或者平均)成绩,并以每一个人的成绩的先大后小的顺序显示;
SELECT  SNAME,GRADE
FROM A left join B on A.sid=B.sid left join C on B.cid=C.cid ORDER BY GRADE DESC;
18.请问张老师教什么课程,以及他班上所有学生的姓名;
SELECT CNAME,SNAME
FROM  A left join B on A.sid=B.sid left join C on B.cid=C.cid where C.CID='C4';


单表题目:
1、查找部门30中员工的详细信息。
SELECT*
FROM E WHERE DEPTNO=30;
2、找出从事职员工作的员工的编号、姓名、部门号。(clerk  职员,办事员)
SELECT empno,ename,deptno
FROM E WHERE JOB='职员';
3、检索出奖金多于基本工资的员工信息。
SELECT *
FROM E  WHERE  SAL < COMM;
4、检索出奖金多于基本工资60%的员工信息
SELECT *
FROM E where SAL*0.6 < COMM;

5、找出10部门的经理、20部门的职员 的员工信息。(manager经理;管理
select *
from E where deptno=10 and job='mangaer' or deptno=20 and  job='职员';
6、找出10部门的经理、20部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息。(sal 工资)
select *
from E WHERE DEPtNO=10 AND JOB='manager' OR DEPTNO=20 AND JOB='职员' and deptno !='manager' and deptno !='职员' and sal >2000;

7、找出获得奖金的员工的工作。(comm奖金)
select job,
from E where comm >0;
8、找出奖金少于100或者没有获得奖金的员工的信息。
select *
from E where comm<100 or comm is null;
9、找出姓名以A、B、S开始的员工信息.
SELECT *
FROM E,D WHERE ENAME LIKE 'A%' OR 'B%' OR 'S%';
10、找到名字长度为6个字符的员工信息。
SELECT *
FROM E WHERE LENGTH(ENAME)=6;
11、名字中不包含R字符的员工信息。
select *
from E where ename not like '%R%';
12、查找员工的详细信息并按姓名排序。
SELECT *
FROM
13、返回员工的信息并按工作降序工资升序排列。(升序的规则)
SELECT *
FROM E ORDER BY JOB DESC AND SELECT *
FROM E ORDER BY  SAL ASC;

14、计算员工的日薪(按30天)。
SELECT ENAME ((NVL(COMM,0)+SAL)/30)AS 月 from E;

15、找出姓名中包含A的员工信息。
select *
from E where ename  like '%A%';

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册