zoukankan      html  css  js  c++  java
  • Oracle 100多道练习题~

    drop table PRODUCT cascade constraints;
    create table PRODUCT
    (
      id         NUMBER not null,		--主键
      pcode      VARCHAR2(20) not null,	--商品编号
      pname      VARCHAR2(20),		--商品名称
      inprice    NUMBER(7,2),		--进价
      outprice   NUMBER(7,2),		--售价
      toma       VARCHAR2(20),		--管理员名称
      lastcou    NUMBER,			--剩余数量
      ptype      VARCHAR2(5),		--商品类型
      mark       NUMBER,			--有效标志
      createtime DATE			--生产日期
    );
    alter table PRODUCT
      ADD CONSTRAINT pk_product primary key (ID);
    
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (1, 'f-qq45', '香蕉', 2.8, 4, '张三', 12, 'a', 1, to_date('05-05-2017', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (2, 'f-56tt', '苹果', 3.4, 5, '张三', 33, 'a', 1, to_date('16-06-2016', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (3, 'f-332', '梨', 2.7, 4, '张三', 76, 'a', 1, to_date('23-09-2016', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (4, 'f-20', '猪肉', 14, 16, '张三', 56, 'b', 1, to_date('31-12-2013', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (5, 'f-qq46', '圆珠笔', 3, 5, '王五', 55, 'e', 1, to_date('14-09-2016', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (6, 'f-57tt', '樱桃', 8, null, '王五', 12, 'a', 1, to_date('22-05-2006', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (7, 'f-292', '三文鱼', 5, 8, '王五', 23, 'b', 1, to_date('31-07-2001', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (8, 'f-604', '螺丝刀', 12, 15, '王五', 72, 'c', 1, to_date('24-02-2013', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (9, 'f-qq47', '扳手', 14, 19, '王五', 90, 'c', 1, to_date('14-05-2015', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (10, 'f-58tt', '钳子', 10, 13, '张三', 97, 'c', 1, to_date('28-03-2012', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (11, 'f-916', '矿泉水', 2.5, 3, '李四', 44, 'd', 1, to_date('21-07-2012', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (12, 'f-1228', '杏仁露', 4, 5, '李四', 38, 'd', 1, to_date('22-02-2013', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (13, 'f-59tt', '钢笔', null, 43, '李四', 22, 'e', 1, to_date('30-09-2013', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (14, 'f-1540', '铅笔', .5, .8, '赵六', 72, 'e', 1, to_date('14-05-2017', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (15, 'f-1852', '大马哈鱼', 1.5, 2, '赵六', 76, 'b', 1, to_date('17-05-2012', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (16, 'f-2164', '鸡蛋', 2.7, 4, '赵六', 56, 'b', 1, to_date('14-09-2010', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (17, 'p-123h', '雪碧', 2, 3, '王五', 50, 'd', 1, to_date('01-05-2017', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (18, 'p-111h', '冰红茶', 2, 3, '王五', 40, 'd', 1, to_date('18-05-2017', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (19, 'p-18-h', '可乐', 2, 3, '王五', 30, 'd', 1, to_date('09-05-2017', 'dd-mm-yyyy'));
    insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
    values (20, 'f-qq46', '圆珠笔', 3, 5, '王五', 55, 'e', 1, to_date('14-09-2016', 'dd-mm-yyyy'));
    commit;
    
    -- 为商品名称添加一个非空约束, 为剩余数量添加一个检查约束(剩余数量 >= 5)
    -- 使用insert into任意添加三条数据(数据信息自定)加到这个表中
    -- 删除'猪肉'的那条记录
    -- 将'扳手'和'钳子'的商品名称分别改为'16号扳手'和'小号钳子', 并将这两个商品的管理人员都改为'赵六'
    -- 查询商品类型为'a'的所有商品, 并按照售价由大到小排序
    -- 查询王五负责的c类商品
    -- 查询剩余数量小于50的所有商品
    -- 查询剩余数量在60-80之间的所有商品
    -- 查询商品名称带'笔'的和带'鱼'的记录
    -- 查询商品编号中带'tt'的记录
    -- 查询商品类型为a, d, c的所有商品
    -- !查询商品编号重复的记录, 并将他们删除
    -- 查询整个表中每一类商品的剩余数量, 并按照剩余数由大到小排序
    -- 查询所有'e'类型商品, 并按照剩余库存数量排序
    -- 查询管理商品种类数量少于4的管理员名称和管理的商品种类数量
    
    -- 查询所有的管理员名称和其手上所管理的所有商品种类数量
    -- .查询所有的管理员名称和其手上所管理的所有'a'类商品种类数量, 数量为0的直接显示为0
    
    -- 查询所有商品中剩余数量最少的一个
    -- 查询生产日期在2015-5-31之前的数据   //棒棒哒~~
    
    -- !假设所有商品的有效期是一年(按照365天计算), 截止到2017-06-01为标准, 查询所有商品的信息, 并且加一列标注是否过期
    -- !将所有过期的商品的有效标志改为0
    -- 查询每个管理员所管理的所有商品的平均进价价格和售价价格, 并四舍五入保留2位小数
    -- !!查询假设每个管理员把所有商品售完后各自的利润总和(不计进价和售价为空的商品 用nvl)
    
    省市区三表合一建新表:
    
    CREATE TABLE ssq AS 
    (SELECT c.cityid ID,c.city NAME,c.provinceid parentids FROM city c
    UNION 
    SELECT a.areaid,a.area,a.cityid FROM area a
    UNION 
    SELECT p.provinceid,p.province,'0' FROM province p)
    

    往数据库某个表中,循环添加400条有序数据,主要是格式别忘了

    BEGIN
       FOR cnum IN 100..500
         LOOP 
           INSERT INTO USER_ t VALUES(sq_user_.nextval,'realname'||cnum,'1',
            1323232|| cnum,'user'||cnum,'123'||
            cnum,sysdatedbms_random.value(300,500),
    //在范围内随机的一个时间
            '1','4','4',sq_user_info.nextval);
           END LOOP;
          END;            
    

      

    select t.*, t.rowid from PRODUCT t;
    
    --添加三条数据
    INSERT INTO product t VALUES(21,'xg','西瓜',1.99,3.00,'
    张三',50,'d',1,to_date(20170908,'yyyymmdd'));
    INSERT INTO product t VALUES(22,'lb','萝卜',1.22,2.00,'
    李四',34,'e',1,SYSDATE);
    INSERT INTO product t VALUES(23,'dg','冬瓜',1.5,2.10,'
    赵六',68,'c',1,SYSDATE);
    COMMIT;
    
    --删除猪肉那条数据
    DELETE product WHERE ID =4;
    COMMIT;
    
    --将'扳手'和'钳子'的商品名称分别改为'16号扳手'和'小号钳子', 并将这两个商品的管理人员都改为'赵六'
    UPDATE product t SET pname = '16号扳手' ,toma ='赵六' WHERE t.id = 9;
    UPDATE product t SET pname = '小号钳子',toma ='赵六'  WHERE t.id = 10;
    COMMIT;
    
    --查询商品类型为'a'的所有商品, 并按照售价由大到小排序
    SELECT t.* FROM product t WHERE t.ptype = 'a' ORDER BY t.outprice desc;
    -- 查询王五负责的c类商品
    SELECT t.* FROM product t WHERE t.toma = '王五' AND t.ptype = 'c';
    --查询剩余数量小于50的所有商品
    SELECT t.* FROM product t WHERE t.lastcou < 50;
    --查询剩余数量在60-80之间的所有商品
    SELECT t.* FROM product t WHERE t.lastcou > 60 AND t.lastcou < 80 ;
    --查询商品名称带'笔'的和带'鱼'的记录
    SELECT t.* FROM product t where  t.pname LIKE '%笔%' OR t.pname LIKE '%鱼%'
    --查询商品编号中带'tt'的记录
    SELECT t.* FROM product t WHERE t.pcode LIKE '%tt%'
    --查询商品类型为a, d, c的所有商品
    select t.* from PRODUCT t WHERE t.ptype = 'a' OR t.ptype = 'b' OR  t.ptype = 'c' 
    --查询商品编号重复的记录, 并将他们删除 DELETE FROM product WHERE pcode =(SELECT t.pcode from PRODUCT t GROUP BY t.pcode HAVING COUNT(1)>1); COMMIT; -- 查询整个表中每一类商品的剩余数量, 并按照剩余数由大到小排序 SELECT t.* FROM product t ORDER BY t.lastcou DESC -- 查询所有'e'类型商品, 并按照剩余库存数量排序 SELECT t.* FROM product t WHERE t.ptype = 'e' ORDER BY t.lastcou -- 查询管理商品种类数量少于4的管理员名称和管理的商品种类数量 SELECT t.toma,COUNT(1) FROM product t GROUP BY t.toma HAVING COUNT(1) < 4; -- 查询所有的管理员名称和其手上所管理的所有商品种类数量 SELECT t.toma,COUNT(1) FROM product t GROUP BY t.toma --?!查询所有的管理员名称和其手上所管理的所有'a'类商品种类数量, 数量为0的直接显示为0 SELECT t.toma 管理员,nvl(count(t.ptype),0) 种类 FROM product t
    WHERE t.ptype = 'a' GROUP BY t.toma SELECT t.toma,COUNT(1) FROM product t
    WHERE t.ptype = 'a' GROUP BY t.toma -- 查询所有商品中剩余数量最少的一个 --SELECT * FROM product t WHERE t.lastcou <= ALL(SELECT t2.lastcou FROM product t2 ) SELECT * FROM product t WHERE t.lastcou = (SELECT MIN(t.lastcou) FROM product t ); -- 查询生产日期在2015-5-31之前的数据 SELECT t.* FROM product t WHERE t.createtime > (to_date(20150531,'yyyymmdd')) -- !!假设所有商品的有效期是一年(按照365天计算), 截止到2017-06-01为标准, 查询所有商品的信息, 并且加一列标注是否过期 SELECT t.pname 商品名,CASE WHEN to_date(20170601,'yyyymmdd') -t.createtime > 365 THEN '过期' ELSE '保质期内' END 是否过期 FROM product t -- !将所有过期的商品的有效标志改为0 UPDATE product t SET t.mark = 0 WHERE to_date(20170601,'yyyymmdd') -t.createtime > 365; COMMIT; -- 查询每个管理员所管理的所有商品的平均进价价格和售价价格, 并四舍五入保留2位小数 SELECT t.toma,ROUND (AVG (t.inprice),2) 平均进价 , ROUND (AVG (t.outprice),2) 平均售价 from PRODUCT t GROUP BY t.toma; -- !查询假设每个管理员把所有商品售完后各自的利润总和(不计进价和售价为空的商品) SELECT t.toma 管理员, SUM ((nvl(t.outprice,0) - nvl(t.inprice,0))*t.lastcou) 利润总和 from PRODUCT t GROUP BY t.toma

     

    第二波:

    表结构:
    drop table student;
    drop table course;
    drop table score;
    drop table teacher;
    
    CREATE TABLE STUDENT
    (SNO VARCHAR(30) NOT NULL, 
    SNAME VARCHAR(40) NOT NULL,
    SSEX VARCHAR(20) NOT NULL, 
    SBIRTHDAY DATE,
    CLASS NUMBER NOT NULL);
    
    CREATE TABLE COURSE
    (CNO VARCHAR(50) NOT NULL, 
    CNAME VARCHAR(100) NOT NULL, 
    TNO VARCHAR(100) NOT NULL);
    
    CREATE TABLE SCORE 
    (SNO VARCHAR(30) NOT NULL, 
    CNO VARCHAR(50) NOT NULL, 
    DEGREE NUMBER NOT NULL);
    
    CREATE TABLE TEACHER 
    (TNO VARCHAR(30) NOT NULL, 
    TNAME VARCHAR(40) NOT NULL, 
    TSEX VARCHAR(20) NOT NULL, 
    TBIRTHDAY DATE NOT NULL, 
    PROF VARCHAR(60), 
    DEPART VARCHAR(100) NOT NULL);
    
    INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (108 ,'曾华' ,'男' ,to_date('1977-09-01','yyyy-mm-dd'),95033);
    INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (105 ,'匡明' ,'男' ,to_date('1975-10-02','yyyy-mm-dd'),95031);
    INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (107 ,'王丽' ,'女' ,to_date('1976-01-23','yyyy-mm-dd'),95033);
    INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (101 ,'李军' ,'男' ,to_date('1976-02-20','yyyy-mm-dd'),95033);
    INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (109 ,'王芳' ,'女' ,to_date('1975-02-10','yyyy-mm-dd'),95031);
    INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (103 ,'陆君' ,'男' ,to_date('1974-06-03','yyyy-mm-dd'),95031);
    
    INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-105' ,'计算机导论',825);
    INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-245' ,'操作系统' ,804);
    INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('6-166' ,'数据电路' ,856);
    INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('9-888' ,'高等数学' ,100);
    
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,'3-245',86);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (105,'3-245',75);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (109,'3-245',68);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,'3-105',92);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (105,'3-105',88);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (109,'3-105',76);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (101,'3-105',64);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (107,'3-105',91);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (108,'3-105',78);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (101,'6-166',85);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (107,'6-106',79);
    INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (108,'6-166',81);
    
    INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (804,'李诚','男',to_date('1958-12-02','yyyy-mm-dd'),'副教授','计算机系');
    INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (856,'张旭','男',to_date('1969-03-12','yyyy-mm-dd'),'讲师','电子工程系');
    INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (825,'王萍','女',to_date('1972-05-05','yyyy-mm-dd'),'助教','计算机系');
    INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (831,'刘冰','女',to_date('1977-08-14','yyyy-mm-dd'),'助教','电子工程系');
    commit;
    
    题目:
    1、 查询Student表中的所有记录的Sname、Ssex和Class列。
    2、 查询教师所有的单位即不重复的Depart列。
    3、 查询Student表的所有记录。
    4、 查询Score表中成绩在60到80之间的所有记录。
    5、 查询Score表中成绩为85,86或88的记录。
    6、 查询Student表中“95031”班或性别为“女”的同学记录。
    7、 以Class降序查询Student表的所有记录。
    8、 以Cno升序、Degree降序查询Score表的所有记录。
    9、 查询“95031”班的学生人数。
    10、查询Score表中的最高分的学生学号和课程号。
    11、查询‘3-105’号课程的平均分。
    12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
    13、查询最低分大于70,最高分小于90的Sno列。
    14、查询所有学生的Sname、Cno和Degree列。
    15、查询所有学生的Sno、Cname和Degree列。
    16、查询所有学生的Sname、Cname和Degree列。
    17、查询“95033”班所选课程的平均分。
    18、假设使用如下命令建立了一个grade表:
    create table grade
    (low number,
    upp number,
    rank char(1));
    insert into grade values(90,100,'A');
    insert into grade values(80,89,'B');
    insert into grade values(70,79,'C');
    insert into grade values(60,69,'D');
    insert into grade values(0,59,'E');
    commit;
    现查询所有同学的Sno、Cno和rank列。
    19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
    20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。(所有分数)
    21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
    22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
    23、查询“张旭“教师任课的学生成绩。
    24、查询选修某课程的同学人数多于5人的教师姓名。
    25、查询95033班和95031班全体学生的记录。
    26、查询存在有85分以上成绩的课程Cno.
    27、查询出“计算机系“教师所教课程的成绩表。
    28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。
    29、查询选修编号为“3-105“且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。
    30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”的同学的Cno、Sno和Degree.
    31、查询所有教师和同学的name、sex和birthday.
    32、查询所有“女”教师和“女”同学的name、sex和birthday.
    33、查询成绩比该课程平均成绩低的同学的成绩表。
    34、查询所有任课教师的Tname和Depart.
    35、查询所有未讲课的教师的Tname和Depart. 
    36、查询至少有2名男生的班号。
    37、查询Student表中不姓“王”的同学记录。
    38、查询Student表中每个学生的姓名和年龄。
    39、查询Student表中最大和最小的Sbirthday日期值。
    40、以班号和年龄从大到小的顺序查询Student表中的全部记录。
    41、查询“男”教师及其所上的课程。
    42、查询最高分同学的Sno、Cno和Degree列。
    43、查询和“李军”同性别的所有同学的Sname.
    44、查询和“李军”同性别并同班的同学Sname.
    45、查询所有选修“计算机导论”课程的“男”同学的成绩表
    

      

    --SELECT s.* FROM student s
    --SELECT c.* FROM course c
    --SELECT sc.* FROM score sc
    --SELECT t.* FROM teacher  t
    --SELECT g.* FROM grade g
    题目:
    1、 查询Student表中的所有记录的Sname、Ssex和Class列。
    	SELECT s.class , s.sname, s.ssex FROM student s
    2、 查询教师所有的单位即不重复的Depart列。
    	SELECT DISTINCT t.depart FROM teacher t 
    3、 查询Student表的所有记录。
    	SELECT s.* FROM student s
    4、 查询Score表中成绩在60到80之间的所有记录。
    	SELECT sc.* FROM score sc WHERE  sc.degree < 80 AND sc.degree>60
    5、 查询Score表中成绩为85,86或88的记录。
    	SELECT sc.* FROM score sc WHERE  sc.degree =85 OR sc.degree = 86 OR sc.degree = 88 
    6、 查询Student表中“95031”班或性别为“女”的同学记录。	
    	SELECT s.* FROM student s WHERE s.class = '95031' OR s.ssex = '女'
    7、 以Class降序查询Student表的所有记录。
    	SELECT s.* FROM student s ORDER BY s.class DESC;
    8、 以Cno升序、Degree降序查询Score表的所有记录。
    	SELECT sc.* FROM score sc ORDER BY  sc.cno ASC,sc.degree DESC;
    9、 查询“95031”班的学生人数。
    	SELECT count(s.sno) FROM student s WHERE s.class ='95031' 
    10、查询Score表中的最高分的学生学号和课程号。
    	SELECT sc.cno,sc.sno,sc.degree FROM score sc WHERE sc.degree = (SELECT MAX(sc.degree) FROM score sc)
    11、查询‘3-105’号课程的平均分。
    	SELECT AVG(sc.degree) 平均分 FROM score sc WHERE sc.cno = '3-105';
    12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
    	SELECT sc.cno 课程编号,COUNT(sc.sno) 选修人数,AVG(sc.degree) 平均分 FROM score sc WHERE sc.cno LIKE '3%' GROUP BY sc.cno 
    HAVING COUNT(1)>=5;
    13、查询最低分大于70,最高分小于90的Sno列。
    	SELECT sc.sno FROM score sc 
    group by sc.sno HAVING  MIN (sc.degree) >70 AND MAX (sc.degree) <90
    14、查询所有学生的Sname、Cno和Degree列。
    	SELECT s.sname 姓名,sc.cno 课程名,sc.degree 成绩
    FROM student s, score sc
    WHERE s.sno = sc.sno
    	--查询所有学生的Sname、Cno和Degree列。再以课程,成绩排个序嘻嘻
    SELECT s.sname 姓名,sc.cno 课程,sc.degree 成绩  FROM student s LEFT JOIN score sc ON sc.sno = s.sno ORDER BY sc.cno,sc.degree DESC
    
    15、查询所有学生的Sno、Cname和Degree列。
    SELECT sc.sno 学生编号, c.cname 课程名, sc.degree 成绩 FROM score sc LEFT JOIN course c ON c.cno = sc.cno
    //on的后面对应相同的列,使两个表对应起来
    16、查询所有学生的Sname、Cname和Degree列。
    	SELECT s.sname,c.cname,sc.degree  FROM score sc,course c,student s WHERE sc.cno = c.cno AND s.sno = sc.sno;//多表查询
    	SELECT s.sname 姓名, d.cname 课程名,d.degree 成绩 
    FROM student s
    LEFT JOIN  (SELECT sc.sno,c.cname,sc.degree FROM course c LEFT JOIN score sc ON c.cno = sc.cno) d 
    ON s.sno = d.sno //多行子查询外链接
    17、查询“95033”班所选课程的平均分。
    	SELECT sc.cno,AVG(sc.degree) FROM score sc LEFT JOIN student s ON s.sno = sc.sno WHERE s.class = '95033' GROUP BY sc.cno
    18、假设使用如下命令建立了一个grade表:
    create table grade
    (low number,
    upp number,
    rank char(1));
    insert into grade values(90,100,'A');
    insert into grade values(80,89,'B');
    insert into grade values(70,79,'C');
    insert into grade values(60,69,'D');
    insert into grade values(0,59,'E');
    commit;
    现查询所有同学的Sno、Cno和rank列。
    	SELECT  sc.sno,sc.cno,g.rank
    FROM grade g JOIN score sc ON sc.degree  BETWEEN g.low AND g.upp
    19、!!!查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
    	select * from student s right join(SELECT  * 
    FROM  score sc WHERE sc.cno = '3-105' AND sc.degree > (
    SELECT  sc.degree FROM  score sc WHERE sc.sno = '109' AND sc.cno  = '3-105')) r on s.sno = r.sno
    20、查询(score中选学一门以上课程)的同学中(分数为非最高分成绩)的记录。(所有分数)
    	SELECT * FROM score cc
    WHERE cc.degree < (SELECT MAX(scc.degree) FROM score scc WHERE scc.cno = cc.cno ) AND 
    cc.sno IN (SELECT sc.sno
    FROM score sc  GROUP BY sc.sno HAVING COUNT(sc.cno)>1) ;
    	
    21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
    	SELECT *FROM score cc WHERE cc.degree >(SELECT sc.degree FROM score sc WHERE sc.cno = '3-105' AND sc.sno = '109')
    22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
    	SELECT st.sno,st.sname,st.sbirthday FROM student st WHERE to_char(st.sbirthday,'yyyy') =(
    SELECT to_char(s.sbirthday,'yyyy') FROM student s WHERE s.sno = '108')
    23、!查询“张旭“教师任课的学生成绩。
    	SELECT sc.sno,sc.degree FROM score sc WHERE sc.cno = (
             SELECT c.cno FROM course c  RIGHT JOIN teacher t ON t.tno = c.tno WHERE t.tname = '张旭')
    24、查询选修某课程的同学人数多于5人的教师姓名。
    	SELECT t.tname
    FROM teacher t WHERE t.tno =
    (SELECT c.tno FROM course c WHERE c.cno =
    (SELECT  sc.cno 
    FROM score sc GROUP BY sc.cno HAVING COUNT(sc.sno)>5) )
    25、查询95033班和95031班全体学生的记录。
    	SELECT * FROM student s WHERE s.class = '95033' OR s.class = '95031'
    26、查询存在有85分以上成绩的课程Cno.
    	SELECT sc.cno FROM score sc WHERE sc.degree >'85'
    27、查询出“计算机系“教师所教课程的成绩表。
    	SELECT sc.cno 课程,sc.degree 成绩
    FROM score sc WHERE   sc.cno IN
    (SELECT c.cno
    FROM course c WHERE c.tno 
    IN
    (SELECT t.tno
    FROM teacher t WHERE t.depart = '计算机系'))
    28、?! 查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。
    	SELECT t.tname,t.prof
    FROM teacher t WHERE t.prof  NOT IN (SELECT te.prof FROM teacher te WHERE t.depart NOT IN te.depart)
    29、查询选修编号为“3-105“且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。
    	SELECT s.cno,s.sno,s.degree
    FROM score s WHERE s.cno = '3-105' AND s.degree
    >Any(SELECT sc.degree FROM score sc WHERE sc.cno ='3-245')
    ORDER BY s.degree DESC
    30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”的同学的Cno、Sno和Degree
    	SELECT s.cno,s.sno,s.degree
    FROM score s WHERE s.cno = '3-105' AND s.degree
    >ALL (SELECT sc.degree FROM score sc WHERE sc.cno ='3-245').
    
    31、查询所有教师和同学的name、sex和birthday.
    	SELECT s.sname,s.ssex,s.sbirthday
    FROM student s
    UNION
    SELECT t.tname,t.tsex,t.tbirthday
    FROM teacher t
    32、查询所有“女”教师和“女”同学的name、sex和birthday.
    	SELECT s.sname,s.ssex,s.sbirthday
    FROM student s WHERE s.ssex ='女'
    UNION
    SELECT t.tname,t.tsex,t.tbirthday
    FROM teacher t WHERE t.tsex = '女'
    33、!查询成绩比该课程平均成绩低的同学的成绩表。
    	SELECT s.sno ,s.cno,s.degree,(SELECT AVG(sc.degree)
             FROM  score sc WHERE sc.sno = s.sno) 平均分
    FROM score s WHERE s.degree
    < (SELECT AVG(sc.degree)
             FROM  score sc WHERE sc.sno = s.sno)
    34、查询所有任课教师的Tname和Depart.
    	SELECT t.tname,t.depart
    FROM teacher t
    35、查询所有未讲课的教师的Tname和Depart. 
    	SELECT t.tname,t.depart
    FROM teacher t WHERE t.tno NOT IN  (
    SELECT c.tno
    FROM course c )
    36、查询至少有2名男生的班号。
    	 SELECT  s.class
      FROM student s
      WHERE s.ssex = '男' 
      GROUP BY s.class 
      HAVING COUNT(s.ssex) >=2
    37、查询Student表中不姓“王”的同学记录。
    	SELECT *
    FROM student s WHERE  s.sname NOT LIKE '王%'
    38、查询Student表中每个学生的姓名和年龄。
    	SELECT s.sname,(to_char(SYSDATE,'yyyy') - to_char(s.sbirthday,'yyyy')) 年龄 FROM student s
    39、查询Student表中最大和最小的Sbirthday日期值。
    	  SELECT MAX(s.sbirthday) 最大日期 ,MIN(s.sbirthday) 最小日期
             FROM student s 
    40、以班号和年龄从大到小的顺序查询Student表中的全部记录。
    	 SELECT *
             FROM student s ORDER BY s.class DESC ,s.sbirthday DESC 
    41、查询“男”教师及其所上的课程。
    	SELECT c.tno,c.cname
     FROM  course c WHERE c.tno IN
             (SELECT t.tno
             FROM teacher t
             WHERE t.tsex = '男')
    42、查询最高分同学的Sno、Cno和Degree列。
    	SELECT sc.sno,sc.cno,sc.degree
    FROM  score sc WHERE sc.degree =
    (SELECT MAX(c.degree) FROM score c )
    43、查询和“李军”同性别的所有同学的Sname.
    	 SELECT s.sname
             FROM student s WHERE s.ssex =(
             SELECT st.ssex  FROM student st WHERE st.sname = '李军')
    44、查询和“李军”同性别并同班的同学Sname.
    	 SELECT s.sname
             FROM student s WHERE s.ssex =(
             SELECT st.ssex  FROM student st WHERE st.sname = '李军' ) AND
              s.class = (SELECT st.class FROM student st WHERE st.sname = '李军' ) 
    	
    45、查询所有选修“计算机导论”课程的“男”同学的成绩表
    	SELECT  *
             FROM score sc 
             WHERE sc.sno  IN
             (SELECT s.sno
             FROM student s WHERE s.ssex = '男') AND sc.cno = 
             (SELECT c.cno
             FROM course c  WHERE c.cname = '计算机导论')
    	
    

     第三波:

    drop table COURSE cascade constraints;
    drop table STUDENT cascade constraints;
    drop table STU_COUR cascade constraints;
    
    create table COURSE
    (
      id          NUMBER not null,
      cour_code   VARCHAR2(20),
      cour_name   VARCHAR2(30),
      p_cour_code VARCHAR2(20)
    );
    comment on column COURSE.cour_code
      is '课程代码';
    comment on column COURSE.cour_name
      is '课程名称';
    comment on column COURSE.p_cour_code
      is '父级课程代码';
    alter table COURSE
      add constraint PK_COURSE primary key (ID);
    alter table COURSE
      add constraint UK_COURSE unique (COUR_CODE);
    
    create table STUDENT
    (
      id       NUMBER not null,
      name     VARCHAR2(20),
      code     VARCHAR2(20),
      sex      CHAR(1),
      birthday DATE,
      major    VARCHAR2(20),
      note     VARCHAR2(300)
    );
    comment on column STUDENT.name
      is '学生姓名';
    comment on column STUDENT.code
      is '学生学号';
    comment on column STUDENT.sex
      is '性别';
    comment on column STUDENT.birthday
      is '生日';
    comment on column STUDENT.major
      is '专业';
    comment on column STUDENT.note
      is '备注';
    alter table STUDENT
      add constraint PK_STUDENT primary key (ID);
    
    create table STU_COUR
    (
      id        NUMBER not null,
      stu_code  VARCHAR2(20),
      cour_code VARCHAR2(20),
      degree     NUMBER(4,1)
    );
    comment on column STU_COUR.stu_code
      is '学生学号';
    comment on column STU_COUR.cour_code
      is '课程代码';
    comment on column STU_COUR.degree
      is '课程分数';
    
    alter table STU_COUR
      add constraint PK_STU_COURT primary key (ID);
    
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (1, 'LAU-100', '汉语言文学专业', null);
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (2, 'C-LAU-101', '语言学概论', 'LAU-001');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (3, 'C-LAU-102', '现代汉语', 'LAU-001');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (4, 'C-LAU-103', '中国当代文学史', 'LAU-001');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (5, 'C-LAU-104', '大学英语', 'LAU-001');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (6, 'NEWS-100', '国际新闻专业', null);
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (7, 'C-NEWS-101', '新闻采访', 'NEWS-100');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (8, 'C-NEWS-102', '报纸编辑', 'NEWS-100');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (9, 'C-NEWS-103', '电视新闻', 'NEWS-100');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (10, 'HIS-121', '历史学专业', null);
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (11, 'C-HIS-335', '中国古代史', 'HIS-121');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (12, 'C-HIS-336', '世界古代史', 'HIS-121');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (13, 'C-HIS-337', '中国近代史', 'HIS-121');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (14, 'ADV-609', '广告学专业', null);
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (15, 'C-ADV-239', '广告文案写作', 'ADV-609');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (16, 'C-ADV-240', '基础美术', 'ADV-609');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (17, 'C-ADV-241', '平面广告设计与制作', 'ADV-609');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (18, 'C-ADV-242', '市场营销学', 'ADV-609');
    insert into COURSE (id, cour_code, cour_name, p_cour_code)
    values (19, 'C-ADV-243', '大众传播学', 'ADV-609');
    commit;
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (1, '陈迪', 'stu-1011', '1', to_date('14-04-1993', 'dd-mm-yyyy'), 'LAU-100', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (2, '肖东菁', 'stu-1014', '1', to_date('15-02-1992', 'dd-mm-yyyy'), 'HIS-121', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (3, '汪佳丽', 'stu-1017', '2', to_date('16-08-1990', 'dd-mm-yyyy'), 'NEWS-100', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (19, '车晓', 'stu-1042', '1', to_date('18-03-1990', 'dd-mm-yyyy'), 'ADV-609', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (5, '王聪', 'stu-1023', '1', to_date('18-03-1990', 'dd-mm-yyyy'), 'ADV-609', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (6, '李璇', 'stu-1026', '2', to_date('19-05-1991', 'dd-mm-yyyy'), 'HIS-121', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (7, '马舒滟', 'stu-1029', '1', to_date('20-01-1990', 'dd-mm-yyyy'), 'NEWS-100', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (20, '张光北', 'stu-1018', '1', to_date('15-02-1992', 'dd-mm-yyyy'), 'HIS-121', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (9, '徐丹', 'stu-1035', '2', null, 'NEWS-100', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (11, '田野', 'stu-1041', '1', null, 'ADV-609', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (12, '彭亚光', 'stu-1044', '2', to_date('25-11-1990', 'dd-mm-yyyy'), 'HIS-121', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (14, '黄欢', 'stu-1050', '1', to_date('27-06-1990', 'dd-mm-yyyy'), 'ADV-609', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (15, '庞琳', 'stu-1053', '1', to_date('28-05-1989', 'dd-mm-yyyy'), 'HIS-121', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (16, '张子腾', 'stu-1056', '2', to_date('18-03-1990', 'dd-mm-yyyy'), 'LAU-100', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (17, '姜春阳', 'stu-1059', '2', to_date('30-05-1988', 'dd-mm-yyyy'), 'HIS-121', '1');
    insert into STUDENT (id, name, code, sex, birthday, major, note)
    values (18, '陈冰若', 'stu-1062', '1', to_date('31-10-1990', 'dd-mm-yyyy'), 'NEWS-100', '1');
    commit;
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (1, 'stu-1011', 'C-LAU-101', 35);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (2, 'stu-1011', 'C-LAU-102', 65);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (3, 'stu-1011', 'C-LAU-103', 25);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (4, 'stu-1011', 'C-LAU-104', 97);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (5, 'stu-1014', 'C-HIS-335', 53);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (6, 'stu-1014', 'C-HIS-336', 35);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (7, 'stu-1014', 'C-HIS-337', 65);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (8, 'stu-1017', 'C-NEWS-101', 25);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (9, 'stu-1017', 'C-NEWS-102', 65);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (10, 'stu-1017', 'C-NEWS-103', 25);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (11, 'stu-1023', 'C-ADV-239', 33);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (12, 'stu-1023', 'C-ADV-240', 42);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (13, 'stu-1023', 'C-ADV-241', 66);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (14, 'stu-1023', 'C-ADV-242', 69);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (15, 'stu-1023', 'C-ADV-243', 82);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (16, 'stu-1026', 'C-HIS-335', 37);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (17, 'stu-1026', 'C-HIS-336', 77);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (18, 'stu-1026', 'C-HIS-337', 34);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (19, 'stu-1029', 'C-NEWS-101', 35);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (20, 'stu-1029', 'C-NEWS-102', 75);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (21, 'stu-1029', 'C-NEWS-103', 32);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (22, 'stu-1035', 'C-NEWS-101', 19);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (23, 'stu-1035', 'C-NEWS-102', 11);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (24, 'stu-1035', 'C-NEWS-103', 93);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (25, 'stu-1041', 'C-ADV-239', 99);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (26, 'stu-1041', 'C-ADV-240', 88);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (27, 'stu-1041', 'C-ADV-241', 89);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (28, 'stu-1041', 'C-ADV-242', 63);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (29, 'stu-1041', 'C-ADV-243', 44);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (30, 'stu-1044', 'C-HIS-335', 73);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (31, 'stu-1044', 'C-HIS-336', 65);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (32, 'stu-1044', 'C-HIS-337', 25);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (33, 'stu-1050', 'C-ADV-239', 33);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (34, 'stu-1050', 'C-ADV-240', 42);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (35, 'stu-1050', 'C-ADV-241', 25);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (36, 'stu-1050', 'C-ADV-242', 33);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (37, 'stu-1050', 'C-ADV-243', 42);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (38, 'stu-1053', 'C-HIS-335', 66);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (39, 'stu-1053', 'C-HIS-336', 69);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (40, 'stu-1053', 'C-HIS-337', 35);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (41, 'stu-1056', 'C-LAU-101', 65);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (42, 'stu-1056', 'C-LAU-102', 25);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (43, 'stu-1056', 'C-LAU-103', 97);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (44, 'stu-1056', 'C-LAU-104', 53);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (45, 'stu-1059', 'C-HIS-335', 35);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (46, 'stu-1059', 'C-HIS-336', 25);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (47, 'stu-1059', 'C-HIS-337', 97);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (48, 'stu-1062', 'C-NEWS-101', 32);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (49, 'stu-1062', 'C-NEWS-102', 19);
    insert into STU_COUR (id, stu_code, cour_code, degree)
    values (50, 'stu-1062', 'C-NEWS-103', 11);
    commit;
    
    
    --题目
    --查询学生表中的姓名,专业
    --查询学生表, 按照学号由小到大排序, 前五个同学的姓名,专业
    --查询专业为国际新闻的学生的所有信息
    --查询1991年出生的学生姓名和专业
    --查询历史, 广告, 国际新闻专业的所有学生信息
    --查询姓名是两个字的姓王, 姓陈, 姓李的所有学生信息
    --查询没有学分的学生信息
    --查询课程表中不是专业的记录
    --查询计算机专业的没有记录生日的学生信息
    --查询按照专业降序,学号升序排列所有学生信息
    --查询表中前三个的学生的姓名,专业,到现在的年龄并按照年龄降序排列
    --查询学生表中专业, 并显示为文字
    --查询所有的课程代码和每个课程的平均成绩并按照课程号排序
    --查询出每个课程代码的最高分和最低分
    --查询学号为stu-1023的学生的各课成绩
    --查询各专业各有多少人
    --查询出历史学专业有多少人
    --查询出各专业里男女生各有多少人
    --查询出学生所有课程的平均分在50分以上的学生学号
    --查询每个学生有几门课成绩高于80分
    --查询所有学生的学号,姓名,专业课程号,成绩
    --查询课程号为C-HIS-336的学生的姓名和成绩
    --查询选修广告学专业的基础美术这门课程的学生学号,姓名,成绩
    --查询选修课程号为C-NEWS-101这门课的所有学生信息和成绩
    --查询生日是同一天的学生信息
    --查询各课的课程名,课程号,每门课所有学生的平均成绩
    --查询所有学生的平均成绩
    --查询每个专业的每个课程的平均分是多少
    --查询平均分大于40分的国际新闻专业的每个学生姓名,学号和各课的平均分
    --查询平均分大于等于课程号为C-ADV-239的课程号和平均分
    --查询历史学专业下的课程的及格率(课程得分在50以上的人数除以总人数)
    --查询没有选修C-NEWS-101这门课程的学生信息和课程信息
    --查询没有课程成绩的学生信息
    --假设在一个页面上要显示成绩表, 按照成绩降序排列, 分页显示信息, 每页显示5条, 查询出第2页的信息
    

      

    --查询学生表中的姓名,专业
    	SELECT s.name,s.major
    FROM student s 
    --!伪列|查询学生表, 按照学号由小到大排序, 前五
    
    个同学的姓名,专业
    	SELECT  ROWNUM , d.name,d.major
         FROM  ( SELECT * FROM student s ORDER BY 
    
    s.id) d  
         WHERE ROWNUM <6
    --查询专业为国际新闻的学生的所有信息
    	  SELECT *
             FROM student s WHERE s.major IN
             (SELECT c.cour_code
             FROM course c 
             WHERE c.cour_name LIKE '%国际新闻%')
    --查询1991年出生的学生姓名和专业
    	SELECT st.name,(SELECT c.cour_name  
    
    FROM course c WHERE c.cour_code = st.major) 专
    
    业
    FROM student st
    WHERE to_char(st.birthday,'yyyy') = '1991'
    --查询历史, 广告, 国际新闻专业的所有学生信息
    	   SELECT *
            FROM student s 
            WHERE  s.major IN (
            SELECT c.cour_code FROM course c 
            WHERE c.cour_name LIKE '%历史%' OR  
    
    c.cour_name LIKE '%广告%' OR c.cour_name LIKE 
    
    '%国际新闻%' )
    
    --查询姓名是两个字的姓王, 姓陈, 姓李的所有学生
    
    信息
    	 s.name LIKE '王_'  OR
    --查询没有学分/成绩的学生信息
    	  SELECT *
             FROM student s
             WHERE s.code NOT IN
             (SELECT st.stu_code FROM stu_cour st 
    
    GROUP BY st.stu_code )
    --查询课程表中不是专业的记录
    SELECT c.*
    FROM course c WHERE c.p_cour_code IS NOT NULL
    --查询国际新闻专业的没有记录生日的学生信息
    	SELECT *
    FROM student s WHERE s.major =(
    SELECT c.cour_code  FROM course c WHERE 
    
    c.cour_name = '国际新闻专业')
    AND s.birthday IS NULL
    --查询按照专业降序,学号升序排列所有学生信息
    	SELECT * FROM student s ORDER BY 
    
    s.major DESC,s.code ASC
    --查询表中前三个的学生的姓名,专业,到现在的年
    
    龄并按照年龄降序排列
    select *
    	from (SELECT  s.name ,  s.major , 
    
    (to_char(SYSDATE,'yyyy') -to_char
    
    (s.birthday,'yyyy')) 年龄
    FROM student s where s.birthday id not null 
    
    ORDER BY 年龄 DESC)r
    where rownum <=3
    --查询学生表中专业, 并显示为文字
    	SELECT (SELECT c.cour_name FROM course 
    
    c WHERE c.cour_code = s.major) FROM student s 
    --查询所有的课程代码和每个课程的平均成绩并按照
    
    课程号排序
    	SELECT SC.COUR_CODE, AVG(SC.DEGREE)
      FROM STU_COUR SC
     GROUP BY SC.COUR_CODE
     ORDER BY SC.COUR_CODE
    --查询出每个课程代码的最高分和最低分
    	SELECT SC.COUR_CODE, MIN(SC.DEGREE), 
    
    MAX(SC.DEGREE)
      FROM STU_COUR SC
     GROUP BY SC.COUR_CODE
     ORDER BY SC.COUR_CODE
    --查询学号为stu-1023的学生的各课成绩
    	SELECT * FROM stu_cour sc WHERE 
    
    sc.stu_code='stu-1023'
    --查询各专业各有多少人
    	SELECT s.major, COUNT(s.major) FROM 
    
    student s GROUP BY s.major
    --查询出历史学专业有多少人
    	SELECT S.MAJOR, COUNT(S.MAJOR)
      FROM STUDENT S
     WHERE S.major = (SELECT C.cour_CODE FROM 
    
    COURSE C WHERE C.COUR_NAME LIKE '%历史%')
     GROUP BY S.MAJOR
    --查询出各专业里男女生各有多少人
    	SELECT S.MAJOR,s.sex, COUNT(s.sex)
      FROM STUDENT S
     GROUP BY S.MAJOR, s.sex
    --查询出学生所有课程的平均分在50分以上的学生学
    
    号
    	SELECT sc.stu_code, AVG(sc.degree) FROM 
    
    stu_cour sc GROUP BY sc.stu_code HAVING AVG
    
    (sc.degree) > 50
    
    --查询每个学生有几门课成绩高于80分
    	SELECT SC.STU_CODE, COUNT(SC.DEGREE)
      FROM (SELECT * FROM STU_COUR WHERE DEGREE > 
    
    80) SC
     GROUP BY SC.STU_CODE
    --查询所有学生的学号,姓名,专业,课程号,成绩
    	SELECT S.CODE, S.NAME, S.MAJOR, 
    
    SC.COUR_CODE, SC.DEGREE
      FROM STUDENT S
      LEFT JOIN STU_COUR SC
        ON S.CODE = SC.STU_CODE
    --查询课程号为C-HIS-336的学生的姓名和成绩
    	
    --查询选修广告学专业的基础美术这门课程的学生学
    
    号,姓名,成绩
    SELECT c.cour_code FROM course c WHERE 
    
    c.cour_name ='基础美术'
    --查询选修课程号为C-NEWS-101这门课的所有学生信
    
    息和成绩
    --查询生日是同一天的学生信息
    	SELECT R.BIRTHDAY, WM_CONCAT(DISTINCT 
    
    R.NAME)
      FROM (SELECT S1.NAME, S1.BIRTHDAY
              FROM STUDENT S1, STUDENT S2
             WHERE S1.BIRTHDAY = S2.BIRTHDAY
               AND S1.CODE != S2.CODE) R
     GROUP BY R.BIRTHDAY
    --查询各课的课程名,课程号,每门课所有学生的平
    
    均成绩
    	SELECT SC.COUR_CODE,
           (SELECT C.COUR_NAME FROM COURSE C WHERE 
    
    C.COUR_CODE = SC.COUR_CODE),
           AVG(SC.DEGREE)
      FROM STU_COUR SC
     GROUP BY SC.COUR_CODE
    --查询所有学生的平均成绩
    --查询每个专业的每个课程的平均分是多少
    --查询平均分大于40分的国际新闻专业的每个学生姓
    
    名,学号和各课的平均分
    	SELECT SC.STU_CODE, AVG(SC.DEGREE)
      FROM STU_COUR SC
     WHERE SC.COUR_CODE IN
           (SELECT C.COUR_CODE
              FROM COURSE C
             WHERE C.P_COUR_CODE =
                   (SELECT C.COUR_CODE
                      FROM COURSE C
                     WHERE C.COUR_NAME LIKE '%国际
    
    新闻%'))
     GROUP BY SC.STU_CODE
    HAVING AVG(SC.DEGREE) > 40
    --查询平均分大于等于课程号为C-ADV-239的课程号和
    
    平均分
    	SELECT SC.cour_code, AVG(SC.DEGREE)
      FROM STU_COUR SC
     GROUP BY SC.COUR_CODE
    HAVING AVG(SC.DEGREE) > (SELECT AVG(SC.DEGREE)
                               FROM STU_COUR SC
                              WHERE SC.COUR_CODE = 
    
    'C-ADV-239'
                              GROUP BY 
    
    SC.COUR_CODE)
    --查询历史学专业下的课程的及格率(课程得分在50以
    
    上的人数除以总人数)
    	SELECT SC.COUR_CODE,
           (SUM(CASE
                 WHEN SC.DEGREE > 50 THEN
                  1
                 ELSE
                  0
               END) / COUNT(SC.DEGREE))*100||'%' 及
    
    格率
      FROM STU_COUR SC
     WHERE SC.COUR_CODE IN
           (SELECT C.COUR_CODE
              FROM COURSE C
             WHERE C.P_COUR_CODE IS NOT NULL
            CONNECT BY PRIOR C.COUR_CODE = 
    
    C.P_COUR_CODE
             START WITH C.COUR_NAME LIKE '%历史
    
    学%')
     GROUP BY SC.COUR_CODE
    --查询没有选修C-NEWS-101这门课程的学生信息和课
    
    程信息
    	SELECT * FROM stu_cour sc WHERE 
    
    sc.cour_code <> 'C-NEWS-101'
    --假设在一个页面上要显示成绩表, 按照成绩降序排
    
    列, 分页显示信息, 每页显示5条, 查询出第2页的信
    
    息
    
    SELECT *
      FROM (SELECT R.*, ROWNUM RM
              FROM (SELECT * FROM STU_COUR SC ORDER 
    
    BY SC.DEGREE DESC) R
             WHERE ROWNUM <= 10) R1
     WHERE R1.RM > 5
    

      

     

     

      

  • 相关阅读:
    Linux 守护进程一
    Linux 改进捕捉信号机制(sigaction,sigqueue)
    Linux 发送信号
    Linux 信号捕捉
    Heartbeat+DRBD+MFS高可用
    centos7 MFS drbd keepalived
    RabbitMQ-官方指南-RabbitMQ配置
    CentOS 7 单用户模式+救援模式
    CentOS6.8 x64+Nginx1.3.8/Apache-httpd 2.4.3+PHP5.4.8(php-fpm)+MySQL5.5.28+CoreSeek4.1源码编译安装
    nginx定制header返回信息模块ngx_headers_more
  • 原文地址:https://www.cnblogs.com/ziyanxiaozhu/p/8028364.html
Copyright © 2011-2022 走看看