练习三 单表查询

一、表结构修改

1.在练习二的所建立的数据库中增加Teacher表,结构如下:

字段名称

数据类型

长度

精度

小数位数

是否允许Null值

说明

Tno

Char

3

0

0

教师号,主码

Tname

Varchar

8

0

0

教师名

Tsex

Char

2

0

0

性别,取值:男或女

Tbirthday

Date

8

0

0

出生日期

Tdept

Char

16

0

0

所在系

这里我发现我没给字段`Tno`加主码

这里加上:

而且显示表格的时候会明确标出主键Tno

2.在练习二的所建立的数据库中增加Teaching表,表结构如下:

Teaching表(授课表)的表结构

字段名称

数据类型

长度

精度

小数位数

是否允许Null值

说明

Cno

Char

5

0

0

课程号,外码

Tno

Char

3

0

0

教师号,外码

Cterm

Tinyint

1

0

0

1-8之间

这里我发现我没给`Cno`和`Tno`加外码:

这里我给Cno和Tno添加外码:

当我第一次向teaching表中的Cno添加外码的时候,发现外码的名字cn重复的,我尽力去寻找,原来在这个数据库中的sc表中的Cno字段也向主表course中的Cno添加了外键,而且外键的名字也叫cn,所以这里说的外键名cn重复就只需要将cn改个名字即可

对于Tno的外键也是如此:

但是这道题目的意思貌似是得在创建表格的时候加入主键和外键,因此------把这两张新建的表格drop了QAQ

当我想要删除表teacher的时候会报错,原因就是teacher是teaching表中Tno字段的外键束缚的主表,因此我们要先删除从表teaching,(删除表之后,表里的外键自然就会被删除了),接下来我们删除teacher表才能成功

下面就是本题的本意:在创建表的时候就创建好主键和外键:

在创建表格的时候添加外键

3.向上述两表中输入如下数据记录

Cno

Tno

Cterm

C01

101

2

C02

102

1

C03

201

3

C04

202

4

教师表Teacher                         授课表Teaching

Tno

Tname

Tsex

Tbirthday

Tdept

101

李新

1977-01-12

CS

102

钱军

1978-06-04

CS

201

王小华

1979-12-23

IS

202

张小青

1978-08-25

IS

往teacher表里添加数据:

往teaching表里添加数据:

自此完成了表格的创建:

二、完成下面查询(将代码写在下面空白处)

1.查询所有男生信息。

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

注意使用year()函数获取Sbrithday字段的年

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

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

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

参数 ASC表示按照升序排序,DESC表示按照降序排序;默认情况下,按照ASC方式排序。通常情况下,ORDER BY子句位于整个SELECT语句的末尾。

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

如何解决?----可以在Sdept字段前加distinct

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

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

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

但是查询一个sc表:

数据有重复,可以使用distinct

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

根据我们上表的查看sc表里没有这三条记录

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

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

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

%用于匹配任意长度的字符串。例如,字符串“a%”匹配以字符a开始任意长度的字符串;”%a”匹配以字符a结束任意长度的字符串;”%a%”匹配包含字符a1的任意长度的字符串

14.统计输出各系学生的人数。按系分组

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

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

但是我发现字段人数没有显示出来

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

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

  1. 思考题

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

可以

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

ALL修饰的字段可以出现重复的值(并且默认为ALL)

DISTINCT修饰的字段不会出现重复的值(如果需要,需要加上DSITINCT)

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

%通配符:%用于匹配任意长度的字符串。例如,字符串“a%”匹配以字符a开始任意长度的字符串;”%a”匹配以字符a结束任意长度的字符串;”%a%”匹配包含字符a1的任意长度的字符串

_通配符:下划线通配符只匹配单个字符,如果要匹配多个字符,需要连续使用多个下划线通配符。例如,字符串“ab_”匹配以字符串“ab”开始长度为3的字符串,如abc、abp等等;字符串“a__d”匹配在字符“a”和“d”之间包含两个字符的字符串,如"abcd"、"atud"等等。

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

例如where age between 15 and 18就可以 where age>=15 and age<=18

【数据库】MySQL单表查询相关推荐

  1. python操作数据库统计_python数据库-MySQL单表查询基本操作(50)

    一.条件查询 1.查询的基本语法 select * from 表名; from关键字后面写表名,表示数据来源于是这张表 select后面写表中的列名,如果是*表示在结果中显示表中所有列 在select ...

  2. mysql数据库实验3查询_MySQL数据库实验:任务三 数据库的单表查询设计

    任务三 数据库的单表查询设计 文章目录任务三 数据库的单表查询设计[实训目的与要求][实训原理][实训步骤]一.简单查询二.按条件查询1.比较大小查询2.带in关键字的查询(确定集合)3.带BETWE ...

  3. mysql关键字使用顺序_MySQL数据库之单表查询中关键字的执行顺序

    MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from where group by having order by limit 2 执行顺序 from ...

  4. MySQL数据库实验:任务三 数据库的单表查询设计

    任务三 数据库的单表查询设计 文章目录 任务三 数据库的单表查询设计 [实训目的与要求] [实训原理] [实训步骤] 一.简单查询 二.按条件查询 1.比较大小查询 2.带in关键字的查询(确定集合) ...

  5. mysql数据库查询关键字级别_MySQL数据库之单表查询中关键字的执行顺序

    MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from where group by having order by limit 2 执行顺序 from ...

  6. mysql 性别以女生升序_MySQL数据库实验:任务三 数据库的单表查询设计

    任务三 数据库的单表查询设计 文章目录 任务三 数据库的单表查询设计 [实训目的与要求] [实训原理] [实训步骤] 一.简单查询 二.按条件查询 1.比较大小查询 2.带in关键字的查询(确定集合) ...

  7. 7.数据库-查-单表查询

    7 .数据库-查-单表查询 因为查询有很多分支 所以分 单表查询 和 多表查询: 简单查询 1.1 SELECT语句 在MySQl中查询语句 最基本就是SELECT语句了,可以用不用的条件来查询表中的 ...

  8. 运维高级学习(三):MySQL单表查询作业

    MySQL第三次作业 MySQL单表查询作业 素材如下: DROP TABLE IF EXISTS `course`; CREATE TABLE `course` ( `cs_id` int(11) ...

  9. MySQL单表查询基础卷(A)

    MySQL单表查询基础卷(A) 第一章 数据准备 第二章 数据展示 第三章 题目说明 第四章 参考答案 第一章 数据准备 -- 创建数据库,指定字符集 utf8 CREATE DATABASE IF ...

  10. 数据库实验3 数据库的单表查询

    数据库的单表查询 3.1实验目的及要求 掌握简单表的数据查询.数据排序和表链接查询的操作方法 3.2实验内容 简单查询操作和连接查询方式. 3.3实验步骤 3.3.1单表查询: 1.查询全体学生的学号 ...

最新文章

  1. modlesim使用
  2. react 组件的属性
  3. sudo规则支持正则
  4. mysql proxy读写分离实现_使用mysql-proxy实现读写分离
  5. C语言实现简单的面向对象例子
  6. oracle窗帘位图索引,Greenplum数据库设计开发规范参考.docx
  7. java antd实现登录,AntDesign(React)学习-4 登录页面提交数据简单实现
  8. 1.3MB 的超轻YOLO算法!全平台通用,准确率接近YOLOv3,速度快上45%丨开源
  9. 安装rocketmq-console插件
  10. edge打开pdf不显示印章_SumatraPDF - 免费轻量的 PDF 阅读器
  11. mysql8 create table 语法错误_MySQL8.0 Window Function 剖析
  12. 国内物联网平台初探(二) ——阿里云物联网套件
  13. 解决:Failed to create 'build\outputs\apk\watch-debug-unaligned.apks': 拒绝访问。
  14. excel对比两列不同
  15. ggalluvial | 冲击图/ 桑基图绘制
  16. python万年历函数输入某一年某一月_Python自定义函数计算给定日期是该年第几天的方法示例...
  17. Python制作塔防小游戏
  18. 【学习笔记】李宏毅2021春机器学习课程第6.2节:生成式对抗网络 GAN(二)
  19. flask项目详情页后端,前端逻辑梳理
  20. 今天情人节,程序员该如何绝地反击?

热门文章

  1. ansys命令流——布尔运算
  2. 大M单纯形算法的MATLAB实现
  3. 一个三流大学生的北京三年
  4. DP1363F国产NFC射频前端芯片替代CLRC663/RC522
  5. 让SQL用户快速进入Hadoop大数据时代 —— Transwarp Inceptor是怎样炼成的
  6. 枚举算法,常用的三种
  7. WinEdt 的 LaTeX 生成的 pdf 无法中文正向搜索/中文复制后乱码解决
  8. oracle 汉字转五笔码,芈月传的芈字怎么打?用五笔拆解并输入方法图解
  9. 在MATLAB中处理RAW图像
  10. 使用Pytorch实现UCF101视频分类