2020/01/08 01-SELECT单表和多表查询

mysql客户端命令不需要;分号结束,服务端命令需要分号;结束,sql语句

manipulation操作
DDL 数据定义
DML数据操作语言(增删改)
DCL,主要是数据控制语言,权限问题
DQL数据查询语言
在这里插入图片描述
group可以做聚合运算,比如按照男女分类在这里插入图片描述
count()是系统自带的函数
在这里插入图片描述
PRI是主键,不为空在这里插入图片描述
主键的数量就是整个表里记录的数量
在这里插入图片描述
classid有空的,少了两个NULL,这样就会丢失记录数
在这里插入图片描述
求平均年龄,avg
在这里插入图片描述在这里插入图片描述
**按照性别分组,group **
在这里插入图片描述
统计每个班最大年龄
在这里插入图片描述在这里插入图片描述在这里插入图片描述
这里的值最好是有意义的,比如聚合函数或者分组本身,有些数据库,这么写会报错
在这里插入图片描述
查男生的平均年龄,分组前过滤和分组后过滤关键字不一样
在这里插入图片描述
男生的各个班平均年龄,女生的各个班平均年龄
在这里插入图片描述
order by排序在这里插入图片描述
desc倒序
在这里插入图片描述
NULL默认排序在最前
在这里插入图片描述
加个-,原来的还是从小到大,但是NULL排最后了
在这里插入图片描述
同一个 班级的i情况下,可以对年龄再排序
在这里插入图片描述
可以多列排序
在这里插入图片描述在这里插入图片描述
用别名也可以在这里插入图片描述
也可以不用别名在这里插入图片描述
也可以过滤完再排序
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
一般页面展示都是要限定下,就可以用limit
在这里插入图片描述
正则表达式写法
在这里插入图片描述在这里插入图片描述

多表操作

在这里插入图片描述
纵向合并,是要字段类型一样,名字可以不一样,现在这两张字段数都不一样,合并不了
在这里插入图片描述
union纵向合并在这里插入图片描述
teacher增加了一i个讲师在这里插入图片描述
但是这里只有29条,应该是30条记录,因为union去重在这里插入图片描述
这样可以把自己完全一样的记录去重在这里插入图片描述在这里插入图片描述
横向合并,简单粗暴,笛卡尔乘积,cross join,交叉链接在这里插入图片描述
这个查询方式相当于两个表取交集在这里插入图片描述在这里插入图片描述
先看看老的写法,横向合并,取交集
在这里插入图片描述在这里插入图片描述
不明确的列名name,要加哪个表在这里插入图片描述
这个是比较老旧的写法,新的写法如下
inner join代表内链接
可以多张表取交集

在这里插入图片描述
可以试试用inner join取老师学生同龄的在这里插入图片描述
同龄的
在这里插入图片描述
取交集前后无影响,没有先后次序
在这里插入图片描述
内连接相当于取两个表的交集
在这里插入图片描述
左外连接和右外链接
学生表有些有老师,有些没老师

A表和B表的交集+A表
在这里插入图片描述在这里插入图片描述
取学生表全部,teacherID对应teacher表的
在这里插入图片描述
右外连接是由右边表决定
在这里插入图片描述在这里插入图片描述
左外链接,右外连接,有方向性,谁在前在后差别很大

年级大于50的讲师在这里插入图片描述
on应该是取交集的条件在这里插入图片描述
应该加上where,对整个结构再次过滤
在这里插入图片描述在这里插入图片描述
不要交集就剩下面这些了在这里插入图片描述
TID为空就是不属于交集
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值