前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >MySQL操作之数据查询语言:(DQL)(四-1)(单表操作)

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

作者头像
ha_lydms
发布2023-08-09 20:29:14
发布2023-08-09 20:29:14
20200
代码可运行
举报
文章被收录于专栏:学习内容学习内容
运行总次数: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
复制
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
复制
select * from product;

查询商品名和商品价格

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

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

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

去掉重复值(distinct)

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

价格+10元进行显示

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

三、条件查询(where)

3.1 关系运算符查询

关系运算符

说明

=

等于

<>

不等于

!=

不等于

<

小于

<=

小于等于

>

大于

>=

大于等于

  • <>!=是等价的

查询价格为800商品

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

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

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

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

代码语言:javascript
代码运行次数:0
复制
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
复制
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
复制
SELECT * FROM product WHERE price >= 200 AND price <=1000;
SELECT * FROM product WHERE price BETWEEN 200 AND 1000;

3.4 空值查询

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

查询grade为空的值

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

查询grade不为空的值

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

3.5 带LIKE关键之查询

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

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

代码语言:javascript
代码运行次数:0
复制
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
复制
SELECT * FROM product WHERE pname LIKE '%\%%' --匹配(nam&e)
SELECT * FROM product WHERE pname LIKE '%\_%' --匹配(nam_e)

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

  • 假如含有多个AND关键字,条件都满足时,才会被查询出来
代码语言:javascript
代码运行次数:0
复制
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
复制
SELECT id,name,age FROM student WHERE id<5 OR gender='女';

ANDOR关键字共同被使用

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

五、聚合函数

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

查询商品的总条数(count)

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

查询商品的价格和(sum)

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

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

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

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

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

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

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

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

格式:

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

使用价格排序(降序)

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

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

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

六、分组查询(group by)

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

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

having与where的区别:

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

根据分组进行查询数量

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

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

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

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

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

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

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

查询10条数据

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

查询第5~8位学生数据

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、简介
  • 二、简单查询(select、distinct)
  • 三、条件查询(where)
    • 3.1 关系运算符查询
    • 3.2 带IN关键字查询(IN)
    • 3.3 带BETWEEN AND 关键字的查询(BETWEEN AND)
    • 3.4 空值查询
    • 3.5 带LIKE关键之查询
    • 3.6 带AND关键字的多条件查询
    • 3.6 带OR关键字的多条件查询
  • 五、聚合函数
  • 四、排序查询(order by ASC/DESC)
  • 六、分组查询(group by)
  • 七、限制查询结果数量(LIMIT)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档