MySQL数据库(五)

1.  数据库去重

  • distinct
  • 去除重复的字段
命令格式:select distinct 字段名 from 表名

2.  分组

group by

例:按照班级分组并且统计各个班级有多少人

select count (*),classid from students group by classid

2.2 分组后加条件

having

命令格式:select 字段 from 表名 group by 字段 having 条件

3. 查询进阶

3.1链接查询

将两张或多张表联合起来进行查询,这种查询叫链接查询

  • 交叉查询
  • 表中每一行分别和其他表中的每一行组成一个新的行
  • 新表中的行数是两个表的行数相乘,列数是两张表的列数相加

但是需要注意的是:会存在大量无用数据

命令格式:

select * from 表名,表名       #得出来的结果叫笛卡尔积表
  • 自然链接
  • 将多个表中符合条件的链接
  • 在交叉链接的基础上,通过家条件可以得到自然链接

我们需要的是自然链接的结果

例: (如下图)

3.2 字段和表别名

格式

select 字段名 as 新名字 from 表名 ...
select 字段名 from 表名 as 新名字...

注意:表如果有了新名字,那么必须使用,否则会报错

3.3 使用自然链接存在的问题

  • 会导致数据缺失
  • 解决方法:用左外链接、右外链接
  • 左表:前面的 
  • 右表:后面的

3.3.1 左外链接:

  • 显示结果以左表为准
  • 左表中的数据会全部出现,右表中的数据有就显示,没有就显示为空

格式

select * from 左表 left join 右表 on 左表.字段=右表.字段

3.3.2 右外链接

  • 显示结果以左表为准
  • 右表中的数据会全部出现,左表中的数据有就显示,没有就显示为空

格式

select * from 左表 right join 右表 on 左表.字段=右表.字段

例:使用右链接查询两个表中的数据(如下图)

4. 子查询

在查询中使用另外一个语句的查询结果

例:(如下图)

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值