MySql 中 select 使用
MySql select 多种查询方式
前言
在数据库使用过程中,使用最多的场景就是查询数据,所以今天我们总结一下常用用的查询
- 简单查询
- 带条件查询
- 多条件查询
- 输出指定字段查询
- 分组查询
- 查询结果排序
- 分页查询
- 多表之间查询
准备三张表:订单 orders 商品 commodity 用户 users 内容如下:
orders 表:

users 表:

commodity 表:

简单查询
语法:
select * from 表名
执行查询语句, 查询 commodity 表所有数据
select * from commodite ;

WHERE 带条件查询
- 带条件查询是在select 语句后面添加 where
- 可以使用 and 或者 or 链接一个或多个条件
- and 同时要满足两个或两个以上条件
- or 满足两个或两个以上其中一个条件
操作符: - = 等于 !=,<> 不等于 > 大于 < 小于 >= 大于等于 <=
语法
select * from 表名 where 条件1 and 条件2 or 条件3 ;
列子:查询 commodity 表中 id = 1 的商品信息
select * from commodity where id = 1 ;

多条件查询
查询 commodity 表中 order_id = 1 并且 user_id = 1
select * from commodity where order_id = 1 and user_id = 1 ;

查询 commodity 表中 order_id = 1 或者 user_id = 1
select * from commodity where order_id = 1 or user_id = 1 ;

输出指定字段查询
在查询表数据的时,有时我们只需要其中几个字段,这个是我们指定需要字段即可
语法
select 列1, 列2, ... from 表明 WHERE 条件可选
下面我们查询 commodity 表输出 商品名
select c_name from commodity ;

结果只输出了 c_name 一列数据
下面我们添加条件查询看下效果
select c_name from commodity where order_id = 1 ;

分组查询
在实际使用是,我们还会用到根据其中一列分组查询,下面我们看下语法
select 用于分组的列, 用于运算的列 from commodity group by 用于分组的列
下面我们查询 commodity ,按照 order_id 进行分组
select order_id from commodity group by order_id;

按照 order_id 分组之后我们再看下每一组具体有多少条数据
select order_id, COUNT(order_id) from commodity group by order_id;

- 按照 order_id 分组,计算每一组数量 count(order_id)
查询结果排序
很多时候我们需要对查询结果进行排序这个时候我们会用到 order by
select * from 表名 order by 排序字段 排序规则
排序规则
- DESC 降序
- ASC 升序 默认
现在我们查询一下 commodity 结果按 order_id 排序
select * from commodity order by order_id ASC ;

select * from commodity order by order_id DESC ;

分页查询
在实际业务常常会用到分页查询功能
语法
select * from commodity limit 条数 offset 起始位置;
下面我们查询 commodity 表,从第二条开始查询,结果输出两条数据
select * from commodity limit 2 offset 1;

下面我们把上面的所有语法练习一下
查询 commodity 表,条件是order_id = 1 或者 user_id != 4 按照 order_id 分组 按照user_id 排序 输出 order_id user_id 列 查询结果从第二条开始 只查询两条
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;

MySql 中 select 使用的更多相关文章
- MySQL中select * for update锁表的范围
MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...
- MySQL中select * for update锁表的问题
MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...
- mysql进阶(四)mysql中select
mysql中select * for update 注: FOR UPDATE 仅适用于InnoDB,且必须在事务区块(BEGIN/COMMIT)中才能生效. 作用 锁定该语句所选择到的对象.防止在 ...
- mysql中select into 和sql中的select into 对比
现在有张表为student,我想将这个表里面的数据复制到一个为dust的新表中去.answer 01: create table dust select * from student;//用于复制前未 ...
- MySQL中select * for update锁表的问题(转)
由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料 ...
- MySQL中SELECT语句简单使用
最近开始复习mysql,查漏补缺吧. 关于mysql 1.MySQL不区分大小写,但是在MySQL 4.1及之前的版本中,数据库名.表名.列名这些标识符默认是区分大小写的:在之后的版本中默认不区分大小 ...
- MySQL中select、insert、update批量操作语句
项目中经常的需要使用批量操作语句对数据进行操作,使用批量语句的时候需要注意MySQL数据库的条件限制,这里主要是数据的大小限制,这里对批量插入.批量查找及批量更新的基础操作进行下简单的汇总. 1.批量 ...
- 【原创】Mysql中select的正确姿势
引言 大家在开发中,还有很多童鞋在写查询语句的时候,习惯写下面这种不规范sql select * from table 而不写成下面的这种规范方式 select col1,col2,...,coln ...
- 数据库:Mysql中“select ... for update”排他锁分析
Mysql InnoDB 排他锁 用法: select … for update; 例如:select * from goods where id = 1 for update; 排他锁的申请前提:没 ...
- Mysql中select的正确姿势
引言 大家在开发中,还有很多童鞋在写查询语句的时候,习惯写下面这种不规范sql select * from table 而不写成下面的这种规范方式 select col1,col2,...,coln ...
随机推荐
- 龙蜥利器:系统运维工具 SysAK的云上应用性能诊断 | 龙蜥技术
简介:本文从大量的性能诊断实践出发,来介绍 SysAK 在性能诊断上的方法论及相关工具. 文/张毅:系统运维SIG核心成员.SysAK 项目负责人:毛文安:系统运维 SIG 负责人. 系统运维既 ...
- [Trading] 股票日内交易者能赚多少钱 - 看到日内交易的潜力并学习如何实现它
无论是为了生活方式.寻求刺激还是为了挑战,股票市场短线交易者能赚多少钱的问题不可避免地出现了. 股票日内交易者的交易量变化很大,一些当日交易者损失了他们的资金,而另一些人利用他们的资金创造了一个高的月 ...
- [FAQ] Argument 3 passed to Lcobucci\JWT\Signer\Hmac::doVerify() must be an instance of Lcobucci\JWT\Signer\Key, null given
出现这个错误,说明没有找到 key,在使用 laravel-jwt 之前需要生成加密 key,使用: $ php artisan jwt:secret Link:https://www.cnblogs ...
- WPF 框架开发 ColumnDefinition 和 RowDefinition 的代码在哪
我的 VisualStudio 在更新到 2022 就构建不通过 WPF 仓库,提示我在 Grid 的代码里面找不到 ColumnDefinitionCollection 和 RowDefinitio ...
- 2.生产环境k8s-1.28.2集群小版本升级到1.28.5
环境:https://www.cnblogs.com/yangmeichong/p/17956335 # 流程:先升级master,再升级node # 1.备份组件参考:https://kuberne ...
- LabView中使用VISA设备清零时,会发送00
最近有为小伙伴跟我说他使用串口的时候通信遇到了问题,我看到他的在程序循环中使用了VISA设备清零控件,出于好奇我就复现了一下,发现每次调用VISA设备清零控件的时候,会主动向串口中发送00数据 一.测 ...
- 源码研习 — TVM中的IR设计与技术实现
一.关键问题 TVM中的 IR 是什么,架构设计上分几层? 解答:TVM的整体结构图如下: 概念上,分为两层:上层为面向前端组网的Relay IR, 下层为面向LLVM的底层 IR. 但从设计实现上, ...
- WEB服务与NGINX(24)- LNMP架构部署wordpress
目录 1. LNMP架构项目实战 1.1 LNMP架构介绍 1.2 LNMP架构部署wordpress 1.2.1 LNMP环境介绍 1.2.2 二进制部署mariadb 1.2.3 部署php-fp ...
- DB2 关联更新
update GIS_TER_ADDRESS_MSG set (POS_X,POS_Y)=(select LAT,LON from TEMP_ATM where GIS_TER_ADDRESS_MSG ...
- 动态修改manifest.json
点击查看代码 // h5开发环境 const h5Dev = { baseUrl: 'https://devh5.....' } // h5测试环境 const h5Test= { baseUrl: ...