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;
相关推荐
Java水解19 小时前
Mysql查看执行计划、explain关键字详解(超详细)
后端·mysql
知其然亦知其所以然1 天前
MySQL 社招必考题:如何优化查询过程中的数据访问?
后端·mysql·面试
DemonAvenger1 天前
NoSQL与MySQL混合架构设计:从入门到实战的最佳实践
数据库·mysql·性能优化
程序新视界1 天前
如何在MySQL中创建聚集索引?
mysql
AAA修煤气灶刘哥1 天前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql
程序新视界2 天前
学习MySQL绕不开的两个基础概念:聚集索引与非聚集索引
mysql
RestCloud2 天前
跨境数据传输:ETL如何处理时区与日期格式差异
mysql·api
得物技术2 天前
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术
数据库·后端·mysql
xiaok2 天前
mysql中怎么创建一个可控权限数据库账号密码给到开发者
mysql
ByteBlossom2 天前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试