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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL---DQL语言 -> 正文阅读

[大数据]MySQL---DQL语言

MySQL的语法规范

学习DQL语言之前我们需要先了解MySQL的语法规范

  1. 不区分大小写
  2. 使用“;”结尾
  3. 各子句一般分行写
  4. 关键字不能缩写也不能分行
  5. 注释:单行注释: #注释文字; 单行注释:– 注释文字;多行注释:/* 注释文字 */

DQL语言

一、简单查询

语法:

select 查询列表 from 表名;

查询列表可以是 单个字段、多个字段、常量值、表达式、函数
如果要去除重复则使用:distinct函数
去别名:用as取别名,也可省略用空格
查询的表格是一个虚拟的表格
注意: 如果查询的是表中的所有字段,则查询列表可以使用“*”来代替

二、条件查询
语法:

select 查询列表 from 表名 where 筛选条件;

注意:
where子句后跟条件
条件运算符:>,<,=,!=/<>,>=,<=
逻辑运算符:&&,||,!或 and, or,not
模糊查询 :
like 模糊查询,占位符:_ :单个字符,% :多个任意字符
between and 两个临界值之间的所有数据,包括两个临界值
in 判断某段的值是否属于in列表中的某一项
is null/is not null 判断字段值是否为null

三、分组查询
语法:

select 要查询的东西 fromwhere  条件 order by 排序的字段|表达式|函数|别名 【asc|desc

注意:
asc 升序,默认的
desc 降序
排序分类:
1.按单个字段进行排序
2.按多个字段排序
3.按表达式排序
4.按别名排序
5.按函数排序
如果有多个排序条件,则当之前的条件值一样时,才会判断第二条件

四、常见函数
1.字符函数

名称作用
concat拼接字符
substr截取子串
upper转换成大写
lower转换成小写
trim去前后指定的空格和字符
ltrim/rtrim去左/右边空格
replace替换
lpad/rpad左/右填充
instr返回子串第一次出现的索引
length获取字节个数

2.数学函数

名称作用
round四舍五入
rand随机数
floor向下取整
ceil向上取整
mod取余
truncate截断

3.日期函数

名称作用
now当前系统日期+时间
curdate当前系统日期
curtime当前系统时间
str_to_date将字符转换成日期
date_format将日期转换成字符

4.流程控制函数
if函数

if(表达式,值1,值2)

满足表达式1则显示值1,否则显示值2

case函数
使用一:

case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1
...
when 常量n then 要显示的值n或语句n
【else 要显示的值n+1或语句n+1end

使用二:

case
when 条件一 then 要显示的值1或语句1
...
when 条件n the 要显示的值n或语句n
【else 要显示的值n+1或语句n+1end

五、分组函数

名称作用
count计算个数
max计算最大值
min计算最小值
sum计算和
avg计算平均值

注意:
使用count函数时一般选择非空的列:主键
以上五个分组函数都忽略null值,除了 count(*)
sum和avg一般用于处理数值型,max、min、count可以处理任何数据类型
都可以搭配distinct使用,用于统计去重后的结果
count的参数可以支持: 字段、常量值

六、分组查询
语法:

    select 查询的字段,分组函数
    fromgroup by 分组的字段

特点:
1、可以按单个字段分组
2、和分组函数一同查询的字段最好是分组后的字段
3、可以按多个字段分组,字段之间用逗号隔开
4、可以支持排序
5、having后可以支持别名
常见面试题
where 和 having 的区别?
1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。

七、多表连接查询
1.内连接
SQL92语法:

		SELECT 查询列表
		FROM 表名1 别名1 ,表名2 别名2 
		WHERE 连接条件 				
		AND 筛选条件				
		GROUP BY 分组列表			
		HAVING 分组后筛选条件		  
		ORDER BY 排序列表	

SQL99语法:

		select 字段列表 
		from 表名1 
		[inner] join 表名2 on 条件
		where 筛选条件
		group by 分组条件
		having 分组后的筛选条件
		order by 排序字段

注意:
1. 使用表名前缀在多个表中区分相同的列
2. 在不同表中具有相同列名的列可以用表的别名加以区分
3. 如果使用了表别名,则在select语句中需要使用表别名代替表名
4. 表别名最多支持32个字符长度,但建议越少越好

2.外连接
左外连接语法:

		select 字段列表 
		from1 
		left [outer] join2 on 条件
		...

注意: 左外连接查询的是左表所有数据以及其交集部分
右外连接语法:

		select 字段列表 
		from1 
		right [outer] join2 on 条件
		...

注意: 右外连接查询的是右表所有数据以及其交集部分

3.子查询
概念: 查询中嵌套查询,称嵌套查询为子查询
特点:
1、子查询都放在小括号内
2、子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧
3、子查询优先于主查询执行,主查询使用了子查询的执行结果
4、子查询根据查询结果的行数不同分为以下两类:
① 单行子查询
结果集只有一行
一般搭配单行操作符使用:> < = <> >= <=
非法使用子查询的情况:
a、子查询的结果为一组值
b、子查询的结果为空
② 多行子查询
结果集有多行
一般搭配多行操作符使用:any、all、in、not in
in: 属于子查询结果中的任意一个就行
any和all往往可以用其他查询代替

4.分页查询
语法:

    select 字段|表达式,...
	fromwhere 条件
	group by 分组字段
	having 条件
	order by 排序的字段
	limit 起始的条目索引,条目数;

** 特点:**
1.起始条目索引从0开始
2.limit子句放在查询语句的最后
3.公式:select * from 表 limit (page-1)*sizePerPage,sizePerPage

5.联合查询
语法:

	select 字段|常量|表达式|函数 fromwhere 条件 unionallselect 字段|常量|表达式|函数 fromwhere 条件 unionallselect 字段|常量|表达式|函数 fromwhere 条件 unionall.....
	select 字段|常量|表达式|函数 fromwhere 条件

特点:
1、多条查询语句的查询的列数必须是一致的
2、多条查询语句的查询的列的类型几乎相同
3、union代表去重,union all代表不去重

关于DQL语言的大概归纳就到这里了!

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:13:49-

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