Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL操作之数据查询语言:(DQL)(四-1)(单表操作)

MySQL操作之数据查询语言:(DQL)(四-1)(单表操作)

作者头像
ha_lydms
发布于 2023-08-09 12:29:14
发布于 2023-08-09 12:29:14
25500
代码可运行
举报
文章被收录于专栏:学习内容学习内容
运行总次数:0
代码可运行

序号

类型

地址

1

MySQL

MySQL操作之概念、SQL约束(一)

2

MySQL

MySQL操作之数据定义语言(DDL)(二)

3

MySQL

MySQL操作之数据操作语言(DML)(三)

4

MySQL

MySQL操作之数据查询语言:(DQL)(四-1)(单表操作)

5

MySQL

MySQL操作之数据查询语言:(DQL)(四-2)(多表查询)

6

MySQL

MySQL操作之数据控制语言:(DC)(五)

7

MySQL

MySQL操作之数据库函数

8

MySQL

MySQL管理之数据类型

9

MySQL

MySQL管理之索引

10

MySQL

MySQL管理之事务管理

11

MySQL

MySQL管理之存储过程

12

MySQL

MySQL管理之视图

13

MySQL

MySQL管理之数据备份与还原

14

MySQL

Linux(centos 7.5)服务器安装MySQL

15

MyBatis

MyBatis从入门到多表关联

16

MyBatis

MyBatis常用方法

17

MyBatis

Mybatis逆向工程的使用(附文件地址)

18

MyBatis

spring boot连接Mybatis数据库的配置文件(MySql、SQLserver、Oracle)

19

MyBatis-Plus

Mybatis-Plus使用案例(包括初始化以及常用插件)

20

MyBatis-Plus

Mybatis-Plus(Service CRUD 接口)

21

MyBatis-Plus

Mybatis-plus 4种条件构造器方式

22

MyBatis-Plus

Mybatis-Plus 执行自定义SQL

23

MyBatis-Plus

MyBatis-plus配置自定义SQL(执行用户传入SQL)

24

MyBatis-Plus

Mybatis-Plus(连接Hive)

25

MyBatis-Plus

Mybatis-Plus 代码生成器

一、简介

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT [DISTINCT] * 字段名1,字段名2,字段名3...
			FROM 表名
			[WHERE 条件表达式1]
			[GROUP BY 字段名[HAVING  条件表达式2]]
			[ORDER BY 字段名 [AES|DESC]]
			[LIMIT [OFFSET]记录数]
  1. SELECT [DISTINCT] * :表示通配符,查询全部,去重(distinct)
  2. FROM:查询的表名
  3. WHERE:用于指定查询条件
  4. [GROUP BY 字段名[HAVING 条件表达式2]]GROUP BY是可选参数,用于将查询结果,按照指定字段排序。HAVING可选参数,对分组后数据进行过滤。
  5. [ORDER BY 字段名 [AES|DESC]]:将查询结果按指定字段进行排序。
  6. LIMIT:限制单词查询出的数据量。

二、简单查询(select、distinct)

distinct使用:

  • 可以用于多个字段的去重。
  • 当多个字段值相同时,才会被去除。(name,age值都一致,才会被判定为重复)

查询所有的商品

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from product;

查询商品名和商品价格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select pname,price from product;

别名查询.使用的关键字是as(as可以省略的)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select pname as pn from product as p

去掉重复值(distinct)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select distinct price from product

价格+10元进行显示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select price+10 from product

三、条件查询(where)

3.1 关系运算符查询

关系运算符

说明

=

等于

<>

不等于

!=

不等于

<

小于

<=

小于等于

>

大于

>=

大于等于

  • <>!=是等价的

查询价格为800商品

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM product WHERE price = 800

查询价格不是800的所有商品

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM product WHERE price != 800

查询商品价格在200到1000之间所有商品

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM product WHERE price >= 200 AND price <=1000;
SELECT * FROM product WHERE price BETWEEN 200 AND 1000;

3.2 带IN关键字查询(IN)

IN关键字,用于判断某个字段,是否存在于指定集合中

BETWEEN…AND…

显示在某一区间的值(含头含尾)

一定区间内的数

IN(set)

显示在in列表中的值,例:in(100,200)

两个数中的一个

查询商品价格是200或800的所有商品

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM product WHERE price = 200 OR price = 800;
SELECT * FROM product WHERE price IN (200,800);

3.3 带BETWEEN AND 关键字的查询(BETWEEN AND)

  • 显示在某一区间的值(含头含尾)

查询商品价格在200到1000之间所有商品

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM product WHERE price >= 200 AND price <=1000;
SELECT * FROM product WHERE price BETWEEN 200 AND 1000;

3.4 空值查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * |字段1,字段2....
		FROM 表名
		WHERE 字段名 IS [NOT] NULL

查询grade为空的值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT id,name,grade FROM student WHERE grade IS NULL;

查询grade不为空的值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT id,name,grade FROM student WHERE grade IS NOT NULL;

3.5 带LIKE关键之查询

  • 进行模糊查询
  • 通配符有%_
  • %:匹配多个,单个语句中可以有多个。
  • _:匹配单个,可以存在多个。

查询含有’霸’字的所有商品

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM product WHERE pname LIKE '%霸%'
SELECT * FROM product WHERE pname LIKE '香%';--以香开头的
SELECT * FROM product WHERE pname LIKE '_想%'--第二个字为想的
SELECT * FROM product WHERE pname LIKE 'G__gle'--匹配(google)
SELECT * FROM product WHERE pname LIKE 'My SQL'--匹配(M_ _QL)

配置文本中含有%_

采用\%\_进行判断

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM product WHERE pname LIKE '%\%%' --匹配(nam&e)
SELECT * FROM product WHERE pname LIKE '%\_%' --匹配(nam_e)

3.6 带AND关键字的多条件查询

  • 假如含有多个AND关键字,条件都满足时,才会被查询出来
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT id,name,gender FROM student 
	WHERE gender='男' OR gender='女' AND id=5;

结果(先取id为5的,再与gender=男/gender=男取交集):

id

gender

name

5

张三

4

李四

2

王五

3.6 带OR关键字的多条件查询

  • 使用OR关键字,2个条件中,只要满足其中一个就被查询出来
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT id,name,age FROM student WHERE id<5 OR gender='女';

ANDOR关键字共同被使用

  • ANDOR共同被使用时,AND优先级高于OR
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT id,name,age FROM student WHERE id<5 OR gender='女';

五、聚合函数

  • COUNT( ):统计指定列不为NULL的记录行数;
  • SUM( ):计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
  • MAX( ):计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
  • MIN( ):计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
  • AVG( ):计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

查询商品的总条数(count)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT COUNT(*) FROM product

查询商品的价格和(sum)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select sum(price) as 'totalprice' FROM product

查询分类为’c002’所有商品的平均价格(AVG)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT AVG(price) FROM product WHERE category_id = 'c002'

查询商品的最大价格(MAX)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT MAX(price) FROM product

查询商品的最小价格(MIX)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT MIN(price) FROM product

四、排序查询(order by ASC/DESC)

格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT 字段1,字段2... 
	FROM 表名
	ORDER BY 字段1[ASC|DESC],字段2[ASC|DESC]... 
  • 排序默认是升序(AES)
  • 假如某条记录为NULL,则它会呗排序第一条中(默认NULL为最小值)

使用价格排序(降序)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM product ORDER BY price DESC

在价格排序(降序)的基础上,以分类排序(降序)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM product ORDER BY price DESC,category_id DESC

六、分组查询(group by)

分组查询是指使用group by字句对查询信息进行分组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT 字段1,字段2FROM 表名 
		GROUP BY 字段1,字段2[HAVING 分组条件];

having与where的区别:

having是在分组后对数据进行过滤. where是在分组前对数据进行过滤 having后面可以使用聚合函数(统计函数) where后面不可以使聚合函数

根据分组进行查询数量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT category_id ,COUNT(*) FROM product GROUP BY category_id;

统计各个分类商品的个数,且只显示个数大于1的信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT category_id ,COUNT(*) FROM product GROUP BY category_id HAVING COUNT(*) > 1;

统计各个分类商品的平均价格,且只显示平均价格>800的信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT category_id,AVG(price) FROM product GROUP BY category_id HAVING AVG(price)>800;

七、限制查询结果数量(LIMIT)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT 字段1,字段2,...
	FROM 表名
		LIMIT [OFFSET,]记录数
  • OFFSET表示偏移量。
  • 偏移量为0,则从第一条记录开始查询。

查询10条数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM student LIMIT 10;

查询第5~8位学生数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM student ORDER BY grade DESC LIMIT 4,4;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL数据库基础(十):DQL数据查询语言
之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。
Lansonli
2024/03/19
1920
MySQL数据库基础(十):DQL数据查询语言
MySQL操作之数据查询语言:(DQL)(四-2)(多表查询)
建立外键约束是为了保证数据的完整性和一致性,但是如果主表中数据被删除或修改,从表中数据应该如何?
ha_lydms
2023/08/09
3780
MySQL操作之数据查询语言:(DQL)(四-2)(多表查询)
MySQL 练习题和答案,以及运行结果截图
一共四道大题,运行结果截图在最后面。 SQL 题目一 数据准备 # 创建数据库 renda01 CREATE DATABASE renda01 CHARACTER SET utf8; # 使用数据库 USE renda01; # 创建商品表: CREATE TABLE product( pid INT, # 主键 ID pname VARCHAR(20), # 商品名称 price DOUBLE, # 商品价格 category_name VARCHAR(32) #
RendaZhang
2020/09/08
1.5K0
MySQL 练习题和答案,以及运行结果截图
第三十天-加强2-多表查询&JDBC&连接池&DBUtils&综合案例【悟空教程】
第三十天-加强2-多表查询&JDBC&连接池&DBUtils&综合案例【悟空教程】
Java帮帮
2018/07/27
8330
第三十天-加强2-多表查询&JDBC&连接池&DBUtils&综合案例【悟空教程】
数据库语法之DQL-数据库查询,基本查询和条件语句
# 1.查询所有的商品. select * from product; # 2.查询商品名和商品价格. select pname,price from product; # 3.去掉重复值. select distinct price from product; # 4.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示. select pname,price+10 from product; # 5.别名查询.使用的关键字是as(as可以省略
名字是乱打的
2022/05/13
7090
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
学生表中存在一个birth字段,这个字段表示学生的出生年份。而运用MySQL的算术运算符用当前的年份减学生出生的年份,那么得到的就是这个学生的实际年龄数据。
盛透侧视攻城狮
2024/10/22
3780
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
MySQL常用基础 - 小白必看
2、create database if not exists 数据库名 (判断数据库是否存在,不存在则创建)
EXI-小洲
2023/01/09
1.3K0
MySQL常用基础 - 小白必看
MySQL 基础(二)
外键是数据库表中的一个字段(或字段组合),用于建立两个表之间的逻辑关联。它指向另一个表的主键(或唯一键),确保引用的数据在关联表中存在,从而维护数据的完整性和一致性。
落幕
2025/05/27
940
MySQL 基础(二)
第68节:Java中的MYSQL运用从小白到大牛
BootStrap是轻量级开发响应式页面的框架,全局css组件,js插件.栅格系统是将页面的宽度分为12等分.
达达前端
2019/07/03
1.1K0
第68节:Java中的MYSQL运用从小白到大牛
MySQL 常用基础知识,多学一门技能,不求人
外键约束:是指在主键关联的外键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。
微芒不朽
2022/09/13
5220
单表查询练习
# ORDER BY price DESC 排序查询, DESC是降序 ASC是升序 默认 ASC -- 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 -- 格式: -- SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; -- ASC 升序 (默认) -- DESC 降序 SELECT pname,price FROM product ORDER BY price DESC; SELECT pid,pname,price
名字是乱打的
2022/05/13
1.1K0
【MySQL数据库】 数据库的基本查询 DQL
根据定义,聚合函数对一组值执行计算并返回单个值。. MySQL提供了许多聚合函数,包括 AVG , COUNT , SUM , MIN , MAX 等。. 除 COUNT 函数外,其它聚合函数在执行计算时会忽略 NULL 值。
小小程序员
2022/12/01
6.4K1
【数据库】常用数据库简介
sql 结构化查询语言(Structured Query Language)简称SQL
小言从不摸鱼
2024/09/24
4330
【数据库】常用数据库简介
MySQL操作之数据定义语言(DDL)(二)
简称DDL(Data Defifinition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等。
ha_lydms
2023/08/09
2730
MySQL操作之数据定义语言(DDL)(二)
MySQL 数据查询语言(DQL)& 事务控制语言(TCL)详解
一、 数据查询语言(DQL)(重中之重) 完整语法格式: - select 表达式1|字段,.... - from 表名 where 条件 - group by 列名 - having 条件 - order by 列名 asc|desc - limit 位置,数量 <1> 普通查询 select 查询表达式; // 最简单的sql语句,是一个函数 select database(); select version(); select now(); <2> 条件查询 wh
ruochen
2021/02/13
9830
MySQL 数据查询语言(DQL)& 事务控制语言(TCL)详解
MySQL基础(一)
数据库就是==存储数据的仓库==,其本质是一个文件系统,按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作
落幕
2025/05/27
1850
MySQL基础(一)
MySQL(九)之数据表的查询详解(SELECT语法)一
这一篇是MySQL中的重点也是相对于MySQL中比较难得地方,个人觉得要好好的去归类,并多去练一下题目。MySQL的查询也是在笔试中必有的题目。希望我的这篇博客能帮助到大家! 重感冒下的我,很难受!keep on going,never givp up.(小编高中最喜欢用的句子,因为只记得这一句) 对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)等一些复杂查询,还有多表查询与子查询都是应用十分广泛的。 一、SEL
用户1195962
2018/01/18
3.8K0
MySQL(九)之数据表的查询详解(SELECT语法)一
数据库_mysq单表操作
1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段 ASC|DESC; ASC 升序 (默认) DESC 降序 #1.使用价格排序(降序) SELECT * FROM product ORDER BY price DESC; #2.在价格排序(降序)的基础上,以分类排序(降序) SELECT * FROM product ORDER BY price DESC,cate
Java学习
2018/04/17
1.5K0
数据库_mysq单表操作
数据库介绍以及使用
第1章 数据库介绍 1.1 数据库概述 l 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 l 什么是数据库管理系统 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。 l 数据库与数据库管理系统
Java学习
2018/04/17
1.2K0
数据库介绍以及使用
第二十九天-加强1-Junit&类加载&反射&Properties&BeanUtils&xml&动态代理&数据库【悟空教程】
第二十九天-加强1-Junit&类加载&反射&Properties&BeanUtils&xml&动态代理&数据库【悟空教程】
Java帮帮
2018/07/27
1.2K0
第二十九天-加强1-Junit&类加载&反射&Properties&BeanUtils&xml&动态代理&数据库【悟空教程】
推荐阅读
相关推荐
MySQL数据库基础(十):DQL数据查询语言
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验