精华内容
下载资源
问答
  • 数据库编程题
    千次阅读
    2017-08-06 22:13:52
    1.表名User 

    Name Tel Content Date  

    张三 13333663366 大专毕业 2006-10-11 

    张三 13612312331 本科毕业 2006-10-15 

    张四 021-55665566 中专毕业 2006-10-15

    (a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中 

    (b) 请用sql语句把张三的时间更新成为当前系统时间

    (c) 请写出删除名为张四的全部记录

    解答:

    (a)insert into user values('小王','13254748547','高中毕业','2007-05-06'); 

    (b)UPDATE `user` set date=NOW() where name='张三'; 

    (c)DELETE FROM `user` WHERE NAME='张四'


    2.


    更多相关内容
  • sQL数据库编程题sQL数据库编程题
  • sql数据库编程题经典
  • access数据库编程题题目共10套.pdf
  • (9001491)软件复用在网络数据库编程题自动化考试中的应用
  • 是全美经典学习知道系列关于数据库的书籍,包含两本书,都是扫描版
  • 一、写一个算法对1,8,5,2,4,9,7进行顺序排列并给出所使用方法。  我所用的方法: int[] a={1,8,5,2,4,9,7};  for(int i=0;i<a>a[j]){  //通过交换位置进行...  编程思想:看到题目上的数字,首
  • 实验四数据库编程 1、实验目的: (1)掌握基本的DBMS的使用 (2)理解JDBC的概念 (3)运用JDBC-ODBC桥开发数据库系统 2、基本要求: (1)注意自始至终贯彻课程中所绍程序设计风格,养成良好的编程习惯。 (2)独立完成所布置...
  • Accp8.0\S2\使用Java实现数据库编程 第二章 附授课资料以及上机练习+课后作业
  • (一)附加上次实验所创建的数据库“db_Library”,并回顾该库的数据表信息。 (二)练习创建和管理存储过程 1、创建一个名为“PROC_系部读者借阅信息”的无参存储过程,要求显示计算机系读者2014-1-1以后借阅的图书...

    一、实验目的
    1、掌握存储过程的概念、优点、特点及用途;
    2、掌握创建、执行、修改和删除存储过程的方法。
    二、实验内容
    (一)附加上次实验所创建的数据库“db_Library”,并回顾该库的数据表信息。
    (二)练习创建和管理存储过程
    1、创建一个名为“PROC_系部读者借阅信息”的无参存储过程,要求显示计算机系读者2014-1-1以后借阅的图书信息,包括“读者姓名”、 “图书编号”和“借阅日期”三个字段。
    创建完成之后,执行上述存储过程,观察执行结果。
    2、修改上述的存储过程为带参的存储过程,要求根据所提供的系部名称和时间,查询出该系部在该时间之后借阅了图书的读者信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段,并按照读者姓名升序排列,并将读者的总数作为输出参数返回。
    创建完成之后,执行上述存储过程,观察执行结果。
    3、创建一个名为“Proc_删除读者信息”的存储过程,要求根据所提供的读者编号,删除该编号所对应的读者,如果不存在此编号的读者,则显示“该编号的读者不存在!”。创建完成之后,执行上述存储过程,观察执行结果。
    4、创建一个名为“Proc_修改借阅信息”的存储过程,要求根据所提供的读者编号和天数,将该读者的归还日期增加相应的天数,如果不存在该读者的借阅信息,则显示“该读者没有借阅图书!”。创建完成之后,执行上述存储过程,观察执行结果。
    5、删除存储过程“Proc_修改借阅信息”。

    三、实验步骤
    1、创建一个名为“PROC_系部读者借阅信息”的无参存储过程,要求显示计算机系读者2014-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段。
    创建完成之后,执行上述存储过程,观察执行结果。
    在这里插入图片描述
    执行结果:
    在这里插入图片描述

    2、修改上述的存储过程为带参的存储过程,要求根据所提供的系部名称和时间,查询出该系部在该时间之后借阅了图书的读者信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段,并按照读者姓名升序排列,并将读者的总数作为输出参数返回。
    创建完成之后,执行上述存储过程,观察执行结果。

    ALTER PROCEDURE PROC_系部读者借阅信息
    @Dept char(12),@datetime date
    AS 
    BEGIN
    SELECT Rname'读者姓名',Bno'图书编号',Bodate'借阅日期'
    FROM tb_borow,tb_reader
    WHERE tb_borow.Rno=tb_reader.Rno AND tb_reader.Dept=@Dept AND Bodate>@datetime
    END
    EXEC PROC_系部读者借阅信息 '计算机系','2014-09-20'
    

    执行结果:
    在这里插入图片描述

    3、创建一个名为“Proc_删除读者信息”的存储过程,要求根据所提供的读者编号,删除该编号所对应的读者,如果不存在此编号的读者,则显示“该编号的读者不存在!”。创建完成之后,执行上述存储过程,观察执行结果。

    CREATE PROC Proc_删除读者信息
    @Rno char(6)
    AS
    BEGIN
    IF EXISTS(SELECT * FROM tb_reader WHERE tb_reader.Rno=@Rno)
    DELETE 
    FROM tb_reader
    WHERE tb_reader.Rno=@Rno
    ELSE
    Print'该编号读者不存在'
    END
    EXEC Proc_删除读者信息 R10099
    

    执行结果:
    在这里插入图片描述

    4、创建一个名为“Proc_修改借阅信息”的存储过程,要求根据所提供的读者编号和天数,将该读者的归还日期增加相应的天数,如果不存在该读者的借阅信息,则显示“该读者没有借阅图书!”。创建完成之后,执行上述存储过程,观察执行结果。

    CREATE PROCEDURE PROC_修改借阅信息
    @Rno char(6),@days INT
    AS 
    BEGIN
    IF EXISTS(SELECT * FROM tb_borow WHERE tb_borow.Rno=@Rno)
    UPDATE tb_borow 
    SET Rdate=DATEADD(d,@days,Rdate)
    FROM tb_borow
    WHERE tb_borow.Rno=@Rno 
    ELSE 
    PRINT'该读者没有借阅图书'
    END
    
    

    执行结果:
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    5、删除存储过程“Proc_修改借阅信息”。

    DROP PROC PROC_修改借阅信息
    

    四、实验总结
    进一步熟悉sql语言,与之前知识建立联系,对知识了解更深刻。

    本实验是学习中的记录,不足之出,望指出!!!

    展开全文
  • 设学生课程数据库中有三个关系:  学生关系S(S#,SNAME,AGE,SEX) 学习关系SC(S#,C#,GRADE) 课程关系C(C#,CNAME) 其中S#、C#、SNAME、AGE、SEX、GRADE、CNAME分别表示学号、课程号、姓名、年龄、性别、...

    设学生课程数据库中有三个关系:
    学生关系S(S#,SNAME,AGE,SEX)
    学习关系SC(S#,C#,GRADE)
    课程关系C(C#,CNAME)
    其中S#、C#、SNAME、AGE、SEX、GRADE、CNAME分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。
    用SQL语句表达下列操作 
    (1)检索选修课程名称为“MATHS”的学生的学号与姓名
    SELECT S.S#,SNAME FROM S,C,SC WHERE S.S#=SC.S# AND C.C#=SC.C# AND CNAME=‘MATHS’;

    (2)检索至少学习了课程号为“C1”和“C2”的学生的学号
    SELECT S# FROM SC WHERE C#=‘C1’ AND S# IN(SELECT S# FROM SC WHERE C#=‘C2’);

    (3)检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄
    SELECT S#,SNAME,AGE FROM S WHERE AGE BETWEEN 18 AND 20 AND SEX=‘女’;

    (4)检索平均成绩超过80分的学生学号和平均成绩
    SELECT S#,AVG(GRADE) FROM SC GROUP BY S# HAVING AVG(GRADE)>80;

    (5)检索选修了全部课程的学生姓名
    SELECT SNAME FROM S WHERE NOT EXISTS(SELECT * FROM C WHERE NOT EXISTS(SELECT * FROM SC WHERE SC.S#=S.S# AND SC.C#=C.C#));

    (6)检索选修了三门课以上的学生的姓名
    SELECT SNAME FROM S,SC WHERE S.S#=SC.S# GROUP BY S.S# HAVING COUNT(*)>3;

    SQL测试

    1.设计表(#为特殊符号,全部替换为NO进行测试

    学生关系

    在这里插入图片描述
    学习关系

    在这里插入图片描述

    课程关系

    在这里插入图片描述
    2.插入数据

    INSERT INTO `s`(`SNO`, `SNAME`, `AGE`, `SEX`) VALUES ('1', '张三', 15, '男');
    INSERT INTO `s`(`SNO`, `SNAME`, `AGE`, `SEX`) VALUES ('2', '李四', 16, '女');
    INSERT INTO `s`(`SNO`, `SNAME`, `AGE`, `SEX`) VALUES ('3', '王五', 17, '男');
    INSERT INTO `s`(`SNO`, `SNAME`, `AGE`, `SEX`) VALUES ('4', '赵六', 18, '女');
    INSERT INTO `s`(`SNO`, `SNAME`, `AGE`, `SEX`) VALUES ('5', '琪琪', 19, '男');
    INSERT INTO `s`(`SNO`, `SNAME`, `AGE`, `SEX`) VALUES ('6', '粑粑', 20, '女');
    INSERT INTO `s`(`SNO`, `SNAME`, `AGE`, `SEX`) VALUES ('7', '久久', 21, '男');
    INSERT INTO `s`(`SNO`, `SNAME`, `AGE`, `SEX`) VALUES ('8', '试试', 22, '女');
    INSERT INTO `s`(`SNO`, `SNAME`, `AGE`, `SEX`) VALUES ('9', '十一', 23, '男');
    
    INSERT INTO `c`(`CNO`, `CNAME`) VALUES ('C1', 'CHINESE');
    INSERT INTO `c`(`CNO`, `CNAME`) VALUES ('C2', 'COMPUTER');
    INSERT INTO `c`(`CNO`, `CNAME`) VALUES ('C3', 'MATHS');
    INSERT INTO `c`(`CNO`, `CNAME`) VALUES ('C4', 'ENGLISH');
    INSERT INTO `c`(`CNO`, `CNAME`) VALUES ('C5', 'BIOLOGY');
    
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (1, '1', 'C1', '76');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (2, '1', 'C2', '84');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (3, '1', 'C3', '85');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (4, '1', 'C4', '91');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (5, '2', 'C1', '81');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (6, '2', 'C2', '72');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (7, '2', 'C3', '82');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (8, '3', 'C1', '91');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (9, '3', 'C2', '60');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (10, '3', 'C3', '82');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (11, '3', 'C4', '60');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (12, '4', 'C1', '52');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (13, '4', 'C2', '91');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (14, '5', 'C2', '82');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (15, '5', 'C3', '73');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (16, '6', 'C2', '72');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (17, '6', 'C4', '82');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (18, '7', 'C2', '92');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (19, '7', 'C3', '75');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (20, '7', 'C4', '88');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (21, '8', 'C1', '89');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (22, '8', 'C2', '84');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (23, '8', 'C3', '74');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (24, '8', 'C4', '76');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (25, '8', 'C5', '77');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (26, '9', 'C1', '88');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (27, '9', 'C2', '95');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (28, '9', 'C3', '75');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (29, '9', 'C4', '85');
    INSERT INTO `sc`(`NO`, `SNO`, `CNO`, `GRADE`) VALUES (30, '9', 'C5', '78');
    

    3.查询测试

    SELECT S.SNO,SNAME FROM S,C,SC WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND CNAME='MATHS';
    SELECT SNO FROM SC WHERE CNO='C1' AND SNO IN(SELECT SNO FROM SC WHERE CNO='C2');
    SELECT SNO,SNAME,AGE FROM S WHERE AGE BETWEEN 18 AND 20 AND SEX='女';
    SELECT SNO,AVG(GRADE) FROM SC GROUP BY SNO HAVING AVG(GRADE)>80;
    SELECT SNAME FROM S WHERE NOT EXISTS(SELECT * FROM C WHERE NOT EXISTS(SELECT * FROM SC WHERE SC.SNO=S.SNO AND SC.CNO=C.CNO));
    SELECT SNAME FROM S,SC WHERE S.SNO=SC.SNO GROUP BY S.SNO HAVING COUNT(*)>3;
    

    4.查看结果

    在这里插入图片描述

    展开全文
  • Accp8.0\S2\使用Java实现数据库编程 第五章 附授课资料+上机练习+课后作业
  • trip数据库编程考试试题
  • oracle数据库网上经典45道练习及答案写法 CREATE TABLE STUDENT (SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL, SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATE, CLASS NUMBER NOT NULL); CREATE TABLE ...

    oracle数据库网上经典45道练习题及答案写法

    CREATE TABLE STUDENT
    (SNO VARCHAR(3) NOT NULL,
    SNAME VARCHAR(4) NOT NULL,
    SSEX VARCHAR(2) NOT NULL,
    SBIRTHDAY DATE,
    CLASS NUMBER NOT NULL);

     
    CREATE TABLE COURSE
    (CNO VARCHAR(5) NOT NULL,
    CNAME VARCHAR(10) NOT NULL,
    TNO VARCHAR(10) NOT NULL);

    CREATE TABLE SCORE
    (SNO VARCHAR(3) NOT NULL,
    CNO VARCHAR(5) NOT NULL,
    DEGREE NUMBER NOT NULL);

     
    CREATE TABLE TEACHER
    (TNO VARCHAR(3) NOT NULL,
    TNAME VARCHAR(4) NOT NULL,
    TSEX VARCHAR(2) NOT NULL,
    TBIRTHDAY DATE NOT NULL,
    PROF VARCHAR(6),
    DEPART VARCHAR(10) 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);

    commit;*/

    /*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);

    commit;*/

    /*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);

    commit;*/

    /*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列。

    SELECT s.sname, s.ssex, s.class FROM student s

    --2、查询教师所有的单位即不重复的Depart列。

    SELECT DISTINCT depart FROM teacher

    --3、查询Student表的所有记录。

    SELECT * FROM student

    --4、查询Score表中成绩在60到80之间的所有记录。

    SELECT * FROM score sc WHERE sc.degree BETWEEN 60 AND 80

    --5、查询Score表中成绩为85,86或88的记录。

    SELECT * FROM score sc WHERE sc.degree IN (85, 86, 88)

    --6、查询Student表中“95031”班或性别为“女”的同学记录。

    SELECT * FROM student s WHERE s.ssex='女' OR s.class='95031'

    --7、以Class降序查询Student表的所有记录。

    SELECT * FROM student s ORDER BY s.class DESC

    --8、以Cno升序、Degree降序查询Score表的所有记录。

    SELECT * FROM score sc ORDER BY sc.cno, DEGREE DESC

    --9、查询“95031”班的学生人数。

    SELECT COUNT(*) FROM student s WHERE s.class='95031'

    --10、查询Score表中的最高分的学生学号和课程号。

    SELECT * FROM score sc WHERE sc.degree=(SELECT MAX(DEGREE) FROM score)

    --ALL

    --11、查询‘3-105’号课程的平均分。

    SELECT sc.cno, AVG(sc.degree) FROM score sc WHERE sc.cno='3-105' GROUP BY sc.cno

    --12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

    SELECT sc.cno, AVG(sc.degree) FROM score sc WHERE sc.cno LIKE '3%' GROUP BY sc.cno HAVING COUNT(sc.cno) >= 5

    --13、查询最低分大于70,最高分小于90的Sno列。

    SELECT * FROM score sc WHERE sc.degree BETWEEN 70 AND 90

    --14、查询所有学生的Sname、Cno和Degree列。

    SELECT s.sname, sc.cno, sc.degree FROM student s LEFT JOIN score sc ON s.sno=sc.sno

    SELECT s.sname, sc.cno, sc.degree FROM student s, score sc WHERE s.sno=sc.sno

    --15、查询所有学生的Sno、Cname和Degree列。

    SELECT s.sno, (SELECT c.cname FROM course c WHERE c.cno=sc.cno) cname, sc.degree FROM student s LEFT JOIN score sc ON s.sno=sc.sno

    --16、查询所有学生的Sname、Cname和Degree列。

    SELECT s.sname, (SELECT c.cname FROM course c WHERE c.cno=sc.cno) cname, sc.degree FROM student s LEFT JOIN score sc ON s.sno=sc.sno

    --17、查询“95033”班所选课程的平均分。

    SELECT SC.CNO, AVG(SC.DEGREE)

      FROM SCORE SC

     WHERE SC.SNO IN (SELECT SNO FROM STUDENT S WHERE S.CLASS = '95033')

     GROUP BY SC.CNO

    --18、现查询所有同学的Sno、Cno和rank列。

    SELECT SC.SNO, SC.CNO, G.RANK

      FROM SCORE SC

      LEFT JOIN GRADE G

        ON SC.DEGREE BETWEEN G.LOW AND G.UPP

    --19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。

    SELECT *

      FROM STUDENT S

     WHERE S.SNO IN

           (SELECT SC.SNO

              FROM SCORE SC

             WHERE SC.CNO = '3-105'

               AND SC.DEGREE > ALL

             (SELECT DEGREE FROM SCORE SC1 WHERE SC1.SNO = 109))

    --20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。

    --第一种写法

    SELECT *

      FROM (SELECT SC1.*,

                   ROW_NUMBER() OVER(PARTITION BY SC1.CNO ORDER BY SC1.DEGREE DESC) ORD

              FROM SCORE SC1

             WHERE SC1.CNO IN (SELECT SC.CNO

                                 FROM SCORE SC

                                GROUP BY SC.CNO

                               HAVING COUNT(*) > 1)) R

     WHERE R.ORD != 1

    --第二种写法

    WITH RE1 AS

     (SELECT SC1.*

        FROM SCORE SC1

       WHERE SC1.CNO IN

             (SELECT SC.CNO FROM SCORE SC GROUP BY SC.CNO HAVING COUNT(*) > 1))

    SELECT *

      FROM RE1

     WHERE RE1.DEGREE NOT IN (SELECT MAX(DEGREE) FROM RE1 GROUP BY RE1.CNO)

    --21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。

    SELECT *

      FROM SCORE SC1

     WHERE SC1.DEGREE > ANY (SELECT SC.DEGREE

              FROM SCORE SC

             WHERE SC.SNO = 109

               AND SC.CNO = '3-105') ORDER BY sc1.sno

    /*

           any,all,some的区别

    */

    --22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。

    SELECT *

      FROM STUDENT S

     WHERE TO_CHAR(S.SBIRTHDAY, 'yyyy') =

           (SELECT TO_CHAR(S1.SBIRTHDAY, 'yyyy')

              FROM STUDENT S1

             WHERE S1.SNO = '108')

       AND S.SNO != '108'

    --23、查询“张旭“教师任课的学生成绩。

    SELECT SC.*

      FROM COURSE C

      LEFT JOIN TEACHER T

        ON C.TNO = T.TNO

      LEFT JOIN SCORE SC

        ON SC.CNO = C.CNO

       AND T.TNAME = '张旭'

    --24、查询选修某课程的同学人数多于5人的教师姓名。

    SELECT T.TNAME

      FROM COURSE C

      LEFT JOIN TEACHER T

        ON C.TNO = T.TNO

      LEFT JOIN SCORE SC

        ON SC.CNO = C.CNO

     GROUP BY T.TNAME

    HAVING COUNT(*) > 5

    --25、查询95033班和95031班全体学生的记录。

    SELECT * FROM student s WHERE s.class IN (95033, 95031)

    --26、查询存在有85分以上成绩的课程Cno.

    SELECT * FROM score sc WHERE sc.degree > 85

    --27、查询出“计算机系“教师所教课程的成绩表。

    SELECT *

      FROM SCORE SC

     WHERE SC.CNO IN (SELECT C.CNO

                        FROM COURSE C, TEACHER T

                       WHERE C.TNO = T.TNO

                         AND T.DEPART = '计算机系')

    --28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。

    SELECT T.TNAME, T.PROF

      FROM TEACHER T

     WHERE DEPART = '计算机系'

       AND PROF NOT IN (SELECT PROF FROM TEACHER WHERE DEPART = '电子工程系');

    --29、查询选修编号为“3-105“且成绩至少高于选修编号为“3-245”的同学的Cno,Sno和Degree并按Degree从高到低次序排序。

    SELECT *

      FROM SCORE

     WHERE DEGREE > ANY (SELECT DEGREE FROM SCORE WHERE CNO = '3-245')

     ORDER BY DEGREE DESC;

    --30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”的同学的Cno、Sno和Degree.

    SELECT * FROM SCORE WHERE DEGREE > ALL(SELECT DEGREE FROM SCORE WHERE CNO='3-245') ORDER BY DEGREE DESC;

    --31、查询所有教师和同学的name、sex和birthday.

    SELECT T.TNAME, T.TSEX, T.TBIRTHDAY

      FROM TEACHER T

    UNION ALL

    SELECT S.SNAME, S.SSEX, S.SBIRTHDAY

      FROM STUDENT S

    --32、查询所有“女”教师和“女”同学的name、sex和birthday.

    SELECT *

      FROM (SELECT T.TNAME, T.TSEX, T.TBIRTHDAY

              FROM TEACHER T

            UNION ALL

            SELECT S.SNAME, S.SSEX, S.SBIRTHDAY

              FROM STUDENT S) R

     WHERE R.TSEX = '女'

    --33、查询成绩比该课程平均成绩低的同学的成绩表。

    SELECT *

      FROM SCORE SC1,

           (SELECT SC.CNO, AVG(SC.DEGREE) AVD FROM SCORE SC GROUP BY SC.CNO) R

     WHERE SC1.CNO = R.CNO

       AND SC1.DEGREE < R.AVD

    --34、查询所有任课教师的Tname和Depart.

    SELECT t.tname, t.depart FROM teacher t

    --35、查询所有未讲课的教师的Tname和Depart.

    SELECT *

      FROM TEACHER T

     WHERE T.TNO NOT IN

           (SELECT C.TNO

              FROM COURSE C

             WHERE C.CNO IN (SELECT SC.CNO FROM SCORE SC))

    --36、查询至少有2名男生的班号。

    SELECT s.class FROM student s GROUP BY s.class HAVING COUNT(*) >= 2

    --37、查询Student表中不姓“王”的同学记录。

    SELECT * FROM student s WHERE s.sname NOT LIKE '王%'

    --38、查询Student表中每个学生的姓名和年龄。

    SELECT s.sname, ROUND((SYSDATE-s.sbirthday)/365) 年龄 FROM student s

    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

    --41、查询“男”教师及其所上的课程。

    SELECT * FROM course c, teacher t WHERE c.tno=t.tno AND t.tsex='男'

    --42、查询最高分同学的Sno、Cno和Degree列。

    SELECT S.SNO, SC.CNO, SC.DEGREE

      FROM STUDENT S, SCORE SC

     WHERE S.SNO = SC.SNO

       AND SC.DEGREE = (SELECT MAX(DEGREE) FROM SCORE)

    --43、查询和“李军”同性别的所有同学的Sname.

    SELECT *

      FROM STUDENT S

     WHERE S.SNAME != '李军'

       AND S.SSEX = (SELECT DISTINCT SSEX FROM STUDENT WHERE SNAME = '李军')

    --44、查询和“李军”同性别并同班的同学Sname.

    SELECT *

      FROM STUDENT S

     WHERE S.SNAME != '李军'

       AND S.SSEX = (SELECT DISTINCT SSEX FROM STUDENT WHERE SNAME = '李军')

       AND S.CLASS = (SELECT DISTINCT CLASS FROM STUDENT WHERE SNAME = '李军')

    --45、查询所有选修“计算机导论”课程的“男”同学的成绩表

    SELECT S.SNAME, S.SSEX, SC.*

      FROM SCORE SC, COURSE C, STUDENT S

     WHERE SC.CNO = C.CNO

       AND S.SNO = SC.SNO

       AND C.CNAME = '计算机导论'

       AND S.SSEX = '男'
     

    展开全文
  • 2、连接数据库分为那几步?3、在使用JDBC操作数据库时如何实现批量添加数据?4、简述JDBC中的常用的类和接口5、JDBC事务的特性及常用方法6、简述JDBC原理 1、PreparedStatement接口与Statement接口相比,有哪些优势...
  • 数据库期末考试编程题.doc
  • mysql经典例题,带答案,欢迎下载.分值不高....
  • 一、选择 1、修改存储过程使用的语句是( )。 A. ALTER PROCEDURE B. DROP PROCEDURE C. INSERT PROCEDUE D. DELETE PROCEDUE  【答案:】A 2、创建存储过程的语句是( )。 A. ALTER PROCEDURE B. DROP...
  • MySQL数据库面试(2020最新版)

    万次阅读 多人点赞 2020-03-10 17:20:40
    文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储...
  • Oracle是大企业常用的数据库,常设数据库维护岗位,相关岗位应聘涉及数据库基础知识的考试,本次提供试题100
  • MySQL数据库笔试试题及答案(全),单选题103题,多选题58题,填空题30题,编程题若干题
  • 《JAVA高级&数据库编程》题库[参照].pdf
  • 《JAVA高级&数据库编程》题库[归纳].pdf
  • 数据库原理编程与性能第2版 课程学习,编程及习题解答
  • 数据库习题课.ppt

    2020-07-13 12:42:47
    数据库编程,这个是作为一个程序员的基本功,绝大多数软件开发公司数据库编程都是由程序员自己完成的,因为他的工作量不是很大,也不是很复杂。所以作为一个综合的程序员,学习数据库编程,像数据库四大操作,增删...
  • 常见的java面试,包括: JAVA面试集基础篇.pdf JAVA面试编程篇.pdf JAVA面试集高级篇.pdf 就业面试题库(数据库).pdf 数据库.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 141,477
精华内容 56,590
关键字:

数据库编程题