IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> DQL——数据查询语言 -> 正文阅读

[大数据]DQL——数据查询语言

DQL全称是Data Query?Language,即数据查询语言,主要是查询数据库中表的记录。DQL语法结构为:

select

? ? ? ? 字段列表

from

? ? ? ? 表名列表

where

? ? ? ? 条件列表

group by

? ? ? ? 分组字段列表

having

? ? ? ? 分组后条件列表

order by

? ? ? ? 排序字段列表

limit

? ? ? ? 分页参数

?一、基本查询

注:下列语句中紫色字体为固定内容,黑色字体改为具体信息

#查询多个字段数据
select 字段1,字段2,…… from 表名;
#查询全部字段数据
select * from 表名;

#设置别名

select 字段1 as 别名1,字段2?as 别名2,…… from 表名;

#去除重复记录

select distinct 字段1,字段2,…… from 表名;

注:设置别名语句中,as可以省略。例如:select name?'姓名',age as 年龄from users;

二、条件查询

?

?接下来,我们介绍一下between…and…,is null,in(…),like这四个稍难理解的运算符。

?注:下列语句中紫色字体为固定内容,黑色字体改为具体信息

#条件查询

select 字段列表 from 表名 where 条件列表

#between…and…

#查询users表中age字段的值处于[19,20]的数据(左右都是闭区间)

select * from users where age between 19 and 20;

#查询users表中age字段的值处于[10,20]并且sex字段的值为'女'的数据

select * from users where age between 10 and 20 and sex='女';

?#is null

#查询telephone_number字段为空的数据(telephone_number==null是错误写法!!!)

select * from users where telephone_number is null;

#in(…)

#查询age字段的值为19或20的数据

select * from users where age in(19,20);

#like->占位符——模糊匹配(_匹配单个字符,%匹配任意个字符)

#查询name字段的长度为3的数据(like不是只能比较字符类型的字段,整型类型也适用)select * from users where name like('_ _ _');

#查询name字段第一位是'黄'的数据(第一位是'黄',后面可以匹配任意个字符。)

select * from users where name like('黄%');

#查询name字段长度为4并且第一位是'B'的数据

select * from users where name like('B_ _ _');

?三、聚合函数

常用的聚合函数有以下几个:

?注:聚合函数作用于纵向数据计算

????????下列语句中紫色字体为固定内容,黑色字体改为具体信息

?#聚合函数语法

select 聚合函数(字段列表) from 表名;

#统计整张表中的数据量

select count(*) from users;

#统计整张表中name字段的数据量(name字段中为null的数据不被记录)

select count(name) from users;

四、分组查询?

?注:下列语句中紫色字体为固定内容,黑色字体改为具体信息
????????[ ]内的内容可以省略。

#分组查询语法

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

?where与having的区别

  • 执行时机不同:where是分组之前过滤,不满足where条件的不参与分组;而having是对分组后的数据进行过滤。
  • 判断条件不同:where不能对聚合函数进行判断,而having可以。

#对男女进行分组,并分别统计男、女的数量

select sex,count(sex) from users group by sex;?

#查询年龄小于50岁的人数,然后按照地址分类,获取人数大于等于2的地址

select address,count(address) from users where age<50 group by address having count(address)>=2;

五、排序查询?

?注:下列语句中紫色字体为固定内容,黑色字体改为具体信息

#排序查询语法

select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2…;

?如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
? ? ?排序方式:asc—升序(默认值)? ? ? ? desc—降序

#根据sex字段进行降序排序,若sex字段的值相同时,则根据age字段的值升序排序。
select * from users order by sex desc,age;

六、分页查询?

注:下列语句中紫色字体为固定内容,黑色字体改为具体信息

#分页查询语法

select 字段列表 from 表名 limit 起始索引,查询记录数;

?起始索引从0开始
? ? 分页查询是数据库的方言,不同数据库有不同的实现,MySQL中是limit
? ? 如果查询的是第一页数据,那么
起始索引可以省略,简写为limit 10;(获取前十条数据)

#按照age字段降序排序,然后从索引为4的数据开始查询两条数据(第四、五条)

select * from users order by age desc limit 4,2;

七、DQL语句的执行顺序?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:48:45  更:2022-10-08 20:52:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 -2025/5/1 14:01:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码