mysql笔记

1.结构

1. 1 查询语句(书写格式)

在这里插入图片描述

1.2 查询语句执行步骤

在这里插入图片描述

在这里插入图片描述

1.3 group by

在这里插入图片描述

  • group by 分组,输出是分组后第一条数据,如上图所示。

在这里插入图片描述
在这里插入图片描述

1.4 count(1) 与 count(name) 区别

在这里插入图片描述
在这里插入图片描述

  • 也就是说,count(1)时候,会自动帮我们虚拟化一个temp出来,全是写入1, 然后根据分组情况 数 1 的个数(如上图),但是如果count(name) 情况下,出现 name为空,count(name) 不记录它的值。
  • count(distinct *) count()中可以加 distinct, 如果是count(distinct 1) 那么结果就是 1
  • group by可以多列分组
    在这里插入图片描述
1.5 聚集函数

在这里插入图片描述

  • count(1) 等价于 sum(1), 计数
  • count(name) 计数 name 中不为NULL 的数值
  • count(distinct name) 计数name 不为NULL 且不重复
  • 注:count(1) 等于 sum(1), count(2) 等于 count(1),
  •   sum(2) 等于 2*count(2) 
    
1.6 清空表数据
  •   TRUNCATE  表名;
    
1.7 having

在这里插入图片描述

  •   where 与 having 都是有过滤的功能,但是 where 中的过滤是对 from 得到的表中内容进行过滤,having 过滤是对group by 之后的内容进行过滤
    
1.7 case when

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  •   case when 也只是一种查询(在select中出现),没有修改数据库本身的内容,只是展示出的内容进行了修改,
    

在这里插入图片描述

1.8 join

在这里插入图片描述

  •   	join 相当于是笛卡尔乘,A表的每一行与B表相乘,组合成一个大表
    

在这里插入图片描述

  •   join on ,on(条件)  是 进行过滤
    
	left join 与 join 区别:
	1. left join 必须要有 on 条件
	2. 会检查左边表的数据是否都包含在新生成的表中,
	是,则与join没有区别
	否,用NULL与不包含的行组成新行加入新表

在这里插入图片描述

  •   left join 两边的表 不能互相交换,否则会出现不一样的结果
    
1.9 索引
  •   索引的使用规则:数据分的越开,建立索引越好
    

在这里插入图片描述
在这里插入图片描述

  •   索引使用,看能不能进行比较过滤
    
  • SQL语句中查看有没有走索引的关键字: EXPLAIN,查看 key值是否为空,不为空则走了索引,比如
  •    EXPLAIN SELECT * FROM stuss where id = 2;
    
  • 在单列索引中,一般 where 条件中的 and , =‘值’,between and,> , <都是可以走索引的,like" 值% "可以走索引,但是like “%值” 不能走索引。也就是可以比较过滤就可以走索引
2.1 聚簇索引 与 非聚簇索引

在这里插入图片描述

  •   非聚簇索引依赖于聚簇索引,非聚簇索引中存储主键,聚簇索引中存储完整的信息。一般主键是聚簇索引,主键外的索引是非聚簇索引
    

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 联合索引

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值