数据库实验报告2

查询课程表的全部信息。

  • course(课程表)

    cno(课程号)cname(课程名)credit(学分)hours(学时)examination(考核方式)
    G001线性代数348考试
    R003数据结构348考试
    R009离散数学348考试
    S023嵌入式系统与编程实验132考察
    G012大学物理464考试
SELECT * FROM course;

第2关:查询选定列

查询各位教师的工号、姓名和性别。

  • teacher(教师表)

    tno(工号)tname(姓名)sex(性别)title(职称)birthday(出生日期)
    0014李欣教授1969-07-25
    0078张云副教授1975-11-25
    0118王立高级工程师1985-04-28
    0193赵玲讲师1992-09-26
    0213杨梅副教授1986-06-07
    0030覃刚副教授1980-02-15
SELECT tno,tname,sex FROM teacher;

第3关:去重查询

通过班级表查询数据库中有哪些学院。

  • class(班级表)

    gno(班级号)gname(班级名)grade(年级)dept(学院)gnum(班级人数)
    0211801软件18级1班18级软件37
    0211903软件19级3班19级软件35
    0131901机械19级1班19级机械37
SELECT DISTINCT dept FROM class;

第4关:比较大小

查询职称为副教授的教师的工号和姓名。

  • teacher(教师表)

    tno(工号)tname(姓名)sex(性别)title(职称)birthday(出生日期)
    0014李欣教授1969-07-25
    0078张云副教授1975-11-25
    0118王立高级工程师1985-04-28
    0193赵玲讲师1992-09-26
    0213杨梅副教授1986-06-07
    0030覃刚副教授1980-02-15
SELECT tno,tname FROM teacher WHERE title = '副教授';

第5关:多重条件

查询1980年1月1日之后出生的女教师信息。

  • teacher(教师表)

    tno(工号)tname(姓名)sex(性别)title(职称)birthday(出生日期)
    0014李欣教授1969-07-25
    0078张云副教授1975-11-25
    0118王立高级工程师1985-04-28
    0193赵玲讲师1992-09-26
    0213杨梅副教授1986-06-07
    0030覃刚副教授1980-02-15
SELECT * FROM teacher WHERE birthday >= 1980-01-01 AND sex = '女';

第6关:确定范围

查询 1970年 - 1980年 之间出生的教师信息。

  • teacher(教师表)

    tno(工号)tname(姓名)sex(性别)title(职称)birthday(出生日期)
    0014李欣教授1969-07-25
    0078张云副教授1975-11-25
    0118王立高级工程师1985-04-28
    0193赵玲讲师1992-09-26
    0213杨梅副教授1986-06-07
    0030覃刚副教授1980-02-15
SELECT * FROM teacher WHERE EXTRACT(YEAR FROM birthday) BETWEEN 1970 AND 1980;

第7关:确定集合

查询17级和19级的班级信息。

  • class(班级表)

    gno(班级号)gname(班级名)grade(年级)dept(学院)gnum(班级人数)
    0211801软件18级1班18级软件37
    0211903软件19级3班19级软件35
    0131901机械19级1班19级机械37
SELECT * FROM class WHERE grade IN('17级','19级');

第8关:模糊查询

查询17级和19级的班级信息。

  • class(班级表)

    gno(班级号)gname(班级名)grade(年级)dept(学院)gnum(班级人数)
    0211801软件18级1班18级软件37
    0211903软件19级3班19级软件35
    0131901机械19级1班19级机械37
SELECT tno,tname,title FROM teacher WHERE tname LIKE '杨%';

第9关:求和、最大最小值

查询全校课程最高的学分数。

查询软件学院学生的总数。

  • course(课程表)

    cno(课程号)cname(课程名)credit(学分)hours(学时)examination(考核方式)
    G001线性代数348考试
    R003数据结构348考试
    R009离散数学348考试
    S023嵌入式系统与编程实验132考察
    G012大学物理464考试
SELECT MAX(credit) FROM course;
SELECT SUM(gnum) FROM class WHERE dept = '软件';

第10关:计数

统计软件学院的班级数量。

  • class(班级表)

    gno(班级号)gname(班级名)grade(年级)dept(学院)gnum(班级人数)
    0211801软件18级1班18级软件37
    0211903软件19级3班19级软件35
    0131901机械19级1班19级机械37
SELECT COUNT(gname) FROM class WHERE dept = '软件';

第10关:计数

统计软件学院的班级数量。

  • class(班级表)

    gno(班级号)gname(班级名)grade(年级)dept(学院)gnum(班级人数)
    0211801软件18级1班18级软件37
    0211903软件19级3班19级软件35
    0131901机械19级1班19级机械37
SELECT COUNT(gname) FROM class WHERE dept = '软件';

第11关:Group by子句使用

查询每个教师的工号及其任课的班级数。

  • teaching(教师授课表)

    cno(课程号)tno(工号)gno(班级号)term(开课学期)classroom(教室)
    G001007802119031A101
    G001007801319011A101
    R003011802118012S001
    R009021302119032S002
    S023019302118011S001
    G012003001319012B003
SELECT tno,COUNT(*) FROM teaching GROUP BY tno;

第12关:Having子句使用

查询人数超过70人(大于70)的学院的名称和人数。

查询第1学期授课数量多于1门(大于1)的教师工号和数量。

  • class(班级表)

    gno(班级号)gname(班级名)grade(年级)dept(学院)gnum(班级人数)
    0211801软件18级1班18级软件37
    0211903软件19级3班19级软件35
    0131901机械19级1班19级机械37
  • teaching(教师授课表)

    cno(课程号)tno(工号)gno(班级号)term(开课学期)classroom(教室)
    G001007802119031A101
    G001007801319011A101
    R003011802118012S001
    R009021302119032S002
    S023019302118011S001
    G012003001319012B003
SELECT dept,SUM(gnum) FROM class GROUP BY dept HAVING (SUM(gnum)>70);
SELECT tno,COUNT(tno) FROM teaching GROUP BY tno HAVING (COUNT(tno)>1);

第13关:单因素排序

查询软件学院班级的班号、班级名和人数,并按人数升序排列。

  • class(班级表)

    gno(班级号)gname(班级名)grade(年级)dept(学院)gnum(班级人数)
    0211801软件18级1班18级软件37
    0211903软件19级3班19级软件35
    0131901机械19级1班19级机械37
    SELECT gno,gname,gum FROM class WHERE dept = '软件' ORDER BY gnum ASC;

    第14关:多因素排序

    查询教师授课情况,结果先按学期升序排列,再按工号降序排列。

  • teaching(教师授课表)

    cno(课程号)tno(工号)gno(班级号)term(开课学期)classroom(教室)
    G001007802119031A101
    G001007801319011A101
    R003011802118012S001
    R009021302119032S002
    S023019302118011S001
    G012003001319012B003
    SELECT * FROM teaching ORDER BY term ASC,tno DESC;

  • 45
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫月入梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值