MySql 中 select 使用

MySql select 多种查询方式

前言

在数据库使用过程中,使用最多的场景就是查询数据,所以今天我们总结一下常用用的查询

  • 简单查询
  • 带条件查询
  • 多条件查询
  • 输出指定字段查询
  • 分组查询
  • 查询结果排序
  • 分页查询
  • 多表之间查询

准备三张表:订单 orders 商品 commodity 用户 users 内容如下:

orders 表:

users 表:

commodity 表:

简单查询

语法:

sql 复制代码
select * from 表名

执行查询语句, 查询 commodity 表所有数据

sql 复制代码
select * from commodite ;

WHERE 带条件查询

  • 带条件查询是在select 语句后面添加 where
  • 可以使用 and 或者 or 链接一个或多个条件
  • and 同时要满足两个或两个以上条件
  • or 满足两个或两个以上其中一个条件
    操作符:
  • = 等于 !=,<> 不等于 > 大于 < 小于 >= 大于等于 <=
    语法
sql 复制代码
select * from 表名 where 条件1 and 条件2 or 条件3 ;

列子:查询 commodity 表中 id = 1 的商品信息

sql 复制代码
select * from commodity where id = 1 ;

多条件查询

查询 commodity 表中 order_id = 1 并且 user_id = 1

sql 复制代码
select * from commodity where order_id = 1 and user_id = 1 ;

查询 commodity 表中 order_id = 1 或者 user_id = 1

sql 复制代码
select * from commodity where order_id = 1 or user_id = 1 ;

输出指定字段查询

在查询表数据的时,有时我们只需要其中几个字段,这个是我们指定需要字段即可

语法

sql 复制代码
select 列1, 列2, ... from 表明 WHERE 条件可选

下面我们查询 commodity 表输出 商品名

sql 复制代码
select c_name from commodity ;

结果只输出了 c_name 一列数据

下面我们添加条件查询看下效果

sql 复制代码
select c_name from commodity where order_id = 1 ;

分组查询

在实际使用是,我们还会用到根据其中一列分组查询,下面我们看下语法

sql 复制代码
select 用于分组的列, 用于运算的列 from commodity group by 用于分组的列

下面我们查询 commodity ,按照 order_id 进行分组

sql 复制代码
select order_id from commodity group by order_id;

按照 order_id 分组之后我们再看下每一组具体有多少条数据

sql 复制代码
select order_id, COUNT(order_id) from commodity group by order_id;
  • 按照 order_id 分组,计算每一组数量 count(order_id)

查询结果排序

很多时候我们需要对查询结果进行排序这个时候我们会用到 order by

sql 复制代码
select * from 表名 order by 排序字段 排序规则

排序规则

  • DESC 降序
  • ASC 升序 默认

现在我们查询一下 commodity 结果按 order_id 排序

sql 复制代码
select * from commodity order by order_id ASC ;
sql 复制代码
select * from commodity order by order_id DESC ;

分页查询

在实际业务常常会用到分页查询功能

语法

select * from commodity limit 条数 offset 起始位置;

下面我们查询 commodity 表,从第二条开始查询,结果输出两条数据

sql 复制代码
select * from commodity limit 2 offset 1;

下面我们把上面的所有语法练习一下

查询 commodity 表,条件是order_id = 1 或者 user_id != 4 按照 order_id 分组 按照user_id 排序 输出 order_id user_id 列 查询结果从第二条开始 只查询4条

sql 复制代码
select order_id, user_id from commodity where order_id = 1 or user_id != 4 group by order_id, user_id order by user_id DESC limit 4 offset 1;
相关推荐
Ren_xixi2 小时前
redis和mysql的区别
数据库·redis·mysql
追逐时光者4 小时前
免费、简单、直观的数据库设计工具和 SQL 生成器
后端·mysql
drebander4 小时前
MySQL 查询优化案例分享
数据库·mysql
小林coding7 小时前
阿里云 Java 后端一面,什么难度?
java·后端·mysql·spring·阿里云
18号房客7 小时前
高级sql技巧进阶教程
大数据·数据库·数据仓库·sql·mysql·时序数据库·数据库架构
翔云1234568 小时前
MySQL purged gtid是如何生成和维护的
数据库·mysql
平行线也会相交10 小时前
云图库平台(三)——后端用户模块开发
数据库·spring boot·mysql·云图库平台
恒辉信达11 小时前
hhdb客户端介绍(53)
数据库·mysql·hhdb·数据库可视化界面客户端
Hello.Reader12 小时前
Redis热点数据管理全解析:从MySQL同步到高效缓存的完整解决方案
redis·mysql·缓存
是程序喵呀13 小时前
MySQL备份
android·mysql·adb