MySQL查询模块详解

本节目标,即完成对MySQL查询模块的详细分析解读

1、基本的select语句

注意:SQL语言大小写不敏感、可以写在一行或者多行、关键字不能被缩写或是分行、各子句一般要分行写、使用缩进提高语句的可读性。

  1. 查询全部列的全部数据
    在这里插入图片描述
  2. 查询指定列的全部数据
    在这里插入图片描述
  3. 列的别名=>主要是用于修改数据展示的列的表头,如刚刚上面查询的username,我给他设置成name
    (1)用法:一般是 需要查询的列名 as 想取的列名(其中as也可以省略,建立留着,提高代码可读性)
    在这里插入图片描述
  4. 字符串:其中日期和字符只能在单引号中出现
  5. 显示表结构:describe 表名
    在这里插入图片描述

2、过滤和排序数据

过滤:可以理解为把不满足条件的筛选掉

  1. 例如,查询刚刚person表中名字为谭笑生的个人信息=>where即是过滤,一定放在from之后
    在这里插入图片描述

2.1、常用运算:以product表为例

在这里插入图片描述

  1. 查询价格在100 到 1000之间的商品:用between … and …
    在这里插入图片描述
  2. 查询索尼和松下的商品:用in
    在这里插入图片描述
  3. 模糊查询:用like
    (1)%代表任意字符:例子查询价格首字母为数字9的商品
    在这里插入图片描述

(2)_代表一个字符:例子查询价格第三个字母为9的商品
在这里插入图片描述

  1. null:判断空值

2.2逻辑运算

  1. and(要求并的关系为真):例子查询价格大于1000且品牌为罗技的商品
    在这里插入图片描述
  2. or(要求或的关系为真):例子查询索尼或松下的产品 => 神似in,注意理解
    在这里插入图片描述
  3. not in(不包含):与in形成相反对比,这里就不做过多描述

2.3、排序数据

  1. order by子句:放在selec的结尾
    (1)asc 升序(不写默认升序):例子将商品价格按照升序排序
    在这里插入图片描述
    在这里插入图片描述

(2)desc降序

3、分组函数 及 分组查询

3.1、分组函数

概述:作用于一组数据(即一列),并对一组数据返回一个值

  1. AVG(平均数):查询商品价格的平均值,其他同理
    在这里插入图片描述

  2. COUNT(个数)

  3. MAX(最大值)

  4. MIN(最小值)

  5. SUM(总数)

3.2、分组查询

在这里插入图片描述

  1. 找出id为1和id为2的笔的平均价格,这个时候我们就要用到AVG函数,并且要分组,即按照id分组
    在这里插入图片描述
  2. 注意:不能再where中使用组函数,可以在having中使用
  3. having子句:例子找到商品平均价格大于10块的商品
    在这里插入图片描述

4、多表查询

在这里插入图片描述

4.1、笛卡尔积

  1. 产生条件:
    (1)省略连接条件
    (2)连接条件无效
    (3)所有表中的所有行互相连接
    在这里插入图片描述
    在这里插入图片描述
  2. 避免:可以在where中加入有效的连接条件

4.2、等值连接

在这里插入图片描述
注意点:

  1. 在where中写入连接条件
  2. 表中含有相同列的时候,在列名之前加上表名的前缀
  3. 表的别名:用现有名字 as 想改的名字
  4. 连接n个表:至少需要n-1个条件

4.3、join连接

分类:

  1. 内连接:(inner) join on
    在这里插入图片描述
    在这里插入图片描述

  2. 外连接
    (1)左外连接:left join on
    在这里插入图片描述

(2)右外连接:right join on
在这里插入图片描述

  1. 多表连接
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder陈、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值