CREATE TABLE `teacher`(
`Tno` CHAR(3) NOT NULL COMMENT '教师号、主码',
`Tname` VARCHAR(8) COMMENT '教师名',
`Tsex` CHAR(2) COMMENT '性别、取值:男或女',
`Tbirthday` DATE COMMENT '出生日期',
`Tdept` CHAR(16) COMMENT '所在系',
PRIMARY KEY (`Tno`)
) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci;

CREATE TABLE `teaching`(
`Cno` CHAR(5) NOT NULL COMMENT '课程号、外码',
`Tno` CHAR(3) NOT NULL COMMENT '教师号、外码',
`Cterm` TINYINT(1) COMMENT '1-8之间'
) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci;
ALTER TABLE teaching ADD FOREIGN KEY(cno) REFERENCES course(cno);
ALTER TABLE teaching ADD FOREIGN KEY(tno) REFERENCES teacher(tno);

INSERT INTO `teacher` (`Tno`, `Tname`, `Tsex`, `Tbirthday`, `Tdept`)
VALUES ('101', '李新', '男', '1977-01-12', 'CS');
INSERT INTO `teacher` (`Tno`, `Tname`, `Tsex`, `Tbirthday`, `Tdept`)
VALUES ('102', '钱军', '女', '1968-06-04', 'CS');
INSERT INTO `teacher` (`Tno`, `Tname`, `Tsex`, `Tbirthday`, `Tdept`)
VALUES ('201', '王小花', '女', '1979-12-23', 'IS');
INSERT INTO `teacher` (`Tno`, `Tname`, `Tsex`, `Tbirthday`, `Tdept`)
VALUES ('202', '张小青', '男', '1968-08-25', 'IS');
INSERT INTO `teaching` (`Cno`, `Tno`, `Cterm`) VALUES ('C01', '101', '2');
INSERT INTO `teaching` (`Cno`, `Tno`, `Cterm`) VALUES ('C02', '102', '1');
INSERT INTO `teaching` (`Cno`, `Tno`, `Cterm`) VALUES ('C03', '201', '3');
INSERT INTO `teaching` (`Cno`, `Tno`, `Cterm`) VALUES ('C04', '202', '4');

二、完成下面查询
1.查询所有男生信息。

SELECT *
FROM student
WHERE Ssex='男';

2.查询年龄大于 20 岁的女生学号和姓名。

SELECT s.Sno,s.Sname
FROM student s
WHERE Ssex='女'
AND YEAR(CURDATE())-YEAR((Sbirthday))>20;

3.查询所有教师的 Tname、Tdept

SELECT t.tname,t.tdept
FROM teacher t;

4.查询“电子商务”专业的学生姓名、性别和出生日期

SELECT s.sname,s.ssex,s.sbirthday
FROM student s
WHERE speciality ='电子商务';

5.查询成绩低于 90 分的学生学号及课号,并按成绩降序排列。

SELECT r.sno,r.cno
FROM sc r
WHERE degree < 90
ORDER BY degree DESC;

6.查询 Student 表中所有的系名。

SELECT s.sdept
FROM student s;

7.查询“C01”课程的开课学期。

SELECT i.cterm
FROM teaching i
WHERE cno='C01';

8.查询成绩在 80 分至 90 之间的学生学号及课号

SELECT sc.sno,sc.cno
FROM sc
WHERE degree >= 80
AND degree <90;

9.统计有学生选修的课程门数。

SELECT COUNT(1)
FROM sc r
RIGHT JOIN course c
ON r.cno=c.cno
WHERE r.cno IS NULL;

10.查询成绩为 77,88 或 99 的记录

SELECT *
FROM sc
WHERE degree=77
OR degree=88
OR degree=99

11.计算“C01”课程的平均成绩。

SELECT AVG(r.degree)
FROM sc r
WHERE cno='C01'

12.输出有成绩的学生学号。

SELECT sc.sno
FROM sc
WHERE degree!=NULL

13.查询所有姓“刘”的学生信息

SELECT *
FROM student
WHERE sname
LIKE '刘%'

14.统计输出各系学生的人数

SELECT speciality,COUNT(1)
FROM student
GROUP BY speciality

15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列

SELECT sno,degree
FROM sc
WHERE cno='C03'
ORDER BY degree DESC

16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”

SELECT DISTINCT cno,COUNT(1) AS 人数
FROM sc
GROUP BY cno

17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”

SELECT DISTINCT cno,COUNT(1) AS 人数,MAX(degree) AS 最高分
FROM sc
GROUP BY cno

18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名
为“门数”、“总成绩”,并按选课门数降序排列。

SELECT DISTINCT Sno,COUNT(1) AS 门数,SUM(degree) AS 总成绩
FROM sc
GROUP BY Sno
ORDER BY 门数 DESC

思考题
1.聚集函数能否直接使用在:SELECT 子句、HAVING 子句、WHERE 子句、GROUP
BY 子句中?

可以,聚集函数只能用于SELECT子句,GROUP BY中的HAVING子句,WHERE子句是一个条件语句,在WHERE后面跟的是条件。

2.关键字 ALL 和 DISTINCT 有什么不同的含义

ALL:返回所有的记录
DISTINCT:去重
ALL在SELECT子句里省略,对结果无影响;在INION子句里省略则表示剔除有重复的行,反之则保留所有记录行

3.SELECT 语句中的通配符有几种?含义分别是什么

四种:百分号%、下划线_、[]、[^]或[!]
[]:匹配指定范围内或者属于方括号所指定的集合中的任意单个字符
_:匹配一个字符
[^]:匹配不在方括号之间指定的范围或集合内的任何单个字符
%:匹配包含零个或多个字符的任意字符串

4.利用 BETWEEN…AND 运算符表示数据的范围能否与其他方法表示?怎样表示?

score BETWEEN 80 AND 90

《数据库原理MySQL》第三次上机实验相关推荐

  1. 数据库原理—数据模型(三)

    数据库原理-数据模型(三)

  2. 南京邮电大学微型计算机原理与接口技术实验,南京邮电大学《微机原理与接口技术》上机实验参考答案(四次全).pdf...

    南京邮电⼤学 <微型计算机原理与接⼝技术> 上机实验 汇编语⾔参考程序(四次全) 1 第⼀次 • 实验 1.3.1 "排除语法错误" • 实验 3.1.1 " ...

  3. 微型计算机排除语法错误,南京邮电大学《微机原理与接口技术》上机实验参考答案(四次全)...

    南京邮电大学<微型计算机原理与接口技术>上机实验答案.包含全部四次试验内容,涵盖汇编语言源程序和硬件连接指导等. 第 一次 实验1.3.1 "排除语法错误" 实验3.1 ...

  4. 配置数据库jdbc:mysql:///(三条斜线),用户访问被拒绝

    jdbc:mysql:///(三条斜线)等同于jdbc:mysql://localhost:3306/,默认端口号为3306. 因mysql已设置端口号3307,因此出现以下报错信息: Access ...

  5. 南京廖华里mysql测试题1答案_数据库原理(一)研讨、实验、作业题安排

    第4周(第四章:数据更新.视图.嵌入式SQL部分自学) 一.实验课: 1. 建立计算机学院总评不及格成绩学生的视图,包括学生学号.姓名.性别.手机.所选 课程和成绩. 2. 在E表中插入记录,把每个学 ...

  6. mysql储存过程是什么意思_数据库原理mysql储存过程

    如大家所知道的,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE. 那么,这几种索引有什么功能和性能上的不同呢? FULLTEXT 即为全文索引,目前只有MyI ...

  7. 数据库原理及应用-李唯唯主编-实验3-2

    实验3-2 一.实验目的与要求 掌握单表查询 掌握多表连接查询 掌握子查询.集合查询. 掌握派生表查询. 掌握聚合函数使用方法 二.实验内容 实验平台: 操作系统:windows11 数据库:MySQ ...

  8. 数据库原理及应用-李唯唯主编-实验3-4

    实验3-4 数据更新 一.实验目的与要求 掌握插入数据.删除数据.修改数据 掌握实验子查询插入数据.更新数据 二.实验内容 实验平台: 操作系统:windows11 数据库:MySQL8 数据库管理平 ...

  9. 第三次上机实验报告(个人所得税计算器)

    * 文件名称: 个人所得税计算器 * 作    者:  赖诗文 * 完成日期:2016 年4 月 7 日  * 版 本 号:v1.0  * 对任务及求解方法的描述部分:个人所得税计算器 * 输入描述: ...

  10. c++第三次上机实验项目四

    /* * 文件名称:计算分段函数的值 * 作 者: 谢文锐* 完成日期: 2016 年 4 月 7 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分:求分段函数的值,用选择结构* 输入描述 ...

最新文章

  1. [转] Logistic函数
  2. 044_定义类或对象
  3. keil obj 文件 结构_【Python】数据分析前的入门教程 Python For Everybody P2:数据结构...
  4. GDCM:西门子CSA转DICOM文件的测试程序
  5. android homme一般多钱,【ANDROID HOMME】ANDROID HOMME官网介绍_ANDROID HOMME口碑_什么值得买...
  6. windows任务管理器中的工作设置内存,内存专用工作集,提交大小详解
  7. Linux Shell 脚本基础
  8. 货物配送问题的matlab,免疫算法求解配送中心选址问题matlab代码
  9. python测试驱动开发 中文版_GitHub - starryrbs/python_tdd: 使用Python测试驱动开发完成Django项目...
  10. jquery.blockUI.2.31.js 弹出层项目介绍
  11. 【预测模型-RBF】基于径向基神经网络实现数据分类附matlab代码
  12. 计算机进pe按键,台式机进入pe按什么键
  13. QTP之reporter对象方法全解析
  14. python生成word目录_Python word_cloud导出字体路径后找不到字体路径
  15. Python机器学习:值得反复练习的8个项目
  16. click与onclick的区别
  17. 多因子量化选股(1)
  18. DNS域名解析服务正向解析和反向解析
  19. Lotus Notes Send EMail from VB or VBA
  20. 微信编辑器实用小功能

热门文章

  1. 金蝶基础资料中物料信息中的计价方法详细解释!小白不能让客户虎住,多多了解
  2. ANSYS网格转化为模型、ANSYS网格导入到workbench分析
  3. 课堂笔记-爬虫beautifulsoup模块
  4. 行测测评——矩阵、圆形、环形三角图形数列推理解题技巧
  5. 畅捷通(chanjet)T3各版本
  6. coreldraw x4怎么会蓝屏_电脑蓝屏怎么办 七种方案轻松搞定【图文】
  7. 未来计算机职业规划怎么写,计算机大学生职业生涯规划书范文
  8. gambit多面整合
  9. Java 编程语言单词汇总
  10. 企业手机装配线平衡改善研究