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 使用的更多相关文章

  1. MySQL中select * for update锁表的范围

    MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...

  2. MySQL中select * for update锁表的问题

    MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...

  3. mysql进阶(四)mysql中select

    mysql中select * for update 注:  FOR UPDATE 仅适用于InnoDB,且必须在事务区块(BEGIN/COMMIT)中才能生效. 作用 锁定该语句所选择到的对象.防止在 ...

  4. mysql中select into 和sql中的select into 对比

    现在有张表为student,我想将这个表里面的数据复制到一个为dust的新表中去.answer 01: create table dust select * from student;//用于复制前未 ...

  5. MySQL中select * for update锁表的问题(转)

    由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料 ...

  6. MySQL中SELECT语句简单使用

    最近开始复习mysql,查漏补缺吧. 关于mysql 1.MySQL不区分大小写,但是在MySQL 4.1及之前的版本中,数据库名.表名.列名这些标识符默认是区分大小写的:在之后的版本中默认不区分大小 ...

  7. MySQL中select、insert、update批量操作语句

    项目中经常的需要使用批量操作语句对数据进行操作,使用批量语句的时候需要注意MySQL数据库的条件限制,这里主要是数据的大小限制,这里对批量插入.批量查找及批量更新的基础操作进行下简单的汇总. 1.批量 ...

  8. 【原创】Mysql中select的正确姿势

    引言 大家在开发中,还有很多童鞋在写查询语句的时候,习惯写下面这种不规范sql select * from table 而不写成下面的这种规范方式 select col1,col2,...,coln ...

  9. 数据库:Mysql中“select ... for update”排他锁分析

    Mysql InnoDB 排他锁 用法: select … for update; 例如:select * from goods where id = 1 for update; 排他锁的申请前提:没 ...

  10. Mysql中select的正确姿势

    引言 大家在开发中,还有很多童鞋在写查询语句的时候,习惯写下面这种不规范sql select * from table 而不写成下面的这种规范方式 select col1,col2,...,coln ...

随机推荐

  1. 在游戏运营行业,Serverless 如何解决数据采集分析痛点?

    简介: 众所周知,游戏行业在当今的互联网行业中算是一棵常青树.在疫情之前的 2019 年,中国游戏市场营收规模约 2884.8 亿元,同比增长 17.1%.2020 年因为疫情,游戏行业更是突飞猛进. ...

  2. Dubbo-Admin 正式支持 3.0 服务治理

    ​简介:Dubbo 相信大家并不陌生,是一款微服务开发框架,它提供了 RPC 通信与微服务治理两大关键能力.大家在日常开发中更多使用的是 Dubbo 提供的 RPC 通信这一部分能力,而对其提供的服务 ...

  3. [FAQ] 部署二进制运行时 go-ego/gse 如何正确加载分词字典

    运行Golang编译后二进制运行时,此时运行二进制时所在目录就是Golang源码程序认为的根目录了. 所以只需要把字典文件拷贝到与二进制所在同一目录内,然后使用 seg.LoadDict('dicti ...

  4. dotnet 读 WPF 源代码笔记 WPF 是如何做到一套代码兼容多个 .NET Framework 版本

    在 .NET Framework 时代里面,有一组有趣的概念,那就是 SDK 和 Runtime 这两个概念.开发模式十分有趣,在开发者设备上,可以指定 .NET Framework 的 SDK 版本 ...

  5. 3. ETCD数据备份与恢复

    首先为运行在https://127.0.0.1:2379 上的现有etcd实例创建快照并将快照保存到 /srv/data/etcd-snapshot.db. 注:为给定实例创建快照预计能在几秒钟内完成 ...

  6. 鸿蒙HarmonyOS实战-ArkUI事件(触屏事件)

    前言 触屏事件是指通过触摸屏幕来进行操作和交互的事件.常见的触屏事件包括点击(tap).双击(double tap).长按(long press).滑动(swipe).拖动(drag)等.触屏事件通常 ...

  7. Fast Möbius Transform 学习笔记 | FMT

    小 Tips:在计算机语言中 \(\cap\) = & / and, \(\cup\) = | / or First. 定义 定义长度为 \(2^n\) 的序列的 and 卷积 \(A = B ...

  8. 一个list分成 list长度/step_length 向上取整个小list集合

    一.具体实现方法 /** * 将一个list按照新的步长分成list长度/step_length 向上取整个小list * @param list * @param step_length * @re ...

  9. ubuntu16下升级python3的版本--升级到3.8

    ubuntu16下升级python3的版本,这里是升级到3.8. 1.首先添加安装源,在命令行输入如下命令: $ sudo add-apt-repository ppa:jonathonf/pytho ...

  10. 一种利用光电容积描记(PPG)信号和深度学习模型对高血压分类的新方法

    具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI 据世界心脏联合会统计,截至 2022 年,全球有 13 亿人被诊断患有高血压,每年约有 1000 万人死 ...