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-高级语句 -> 正文阅读

[大数据]MySQL-高级语句


一、SQL高级语句

1. select

显示表格中的一个或者多个字段中所有的信息

#格式:

select 字段名  from 表名;


select * from students;

在这里插入图片描述

select name,score from students;

在这里插入图片描述

2. distinct

查询不重复记录

#格式:
select distinct 字段 from 表名﹔

在这里插入图片描述

select distinct age from students;

在这里插入图片描述

select distinct gender from students;

在这里插入图片描述

3. where

where 有条件的查询

#格式:
select '字段' from 表名  where 条件
select name,age from students where age<15;

在这里插入图片描述

4. and,or

and: 且 , or: 或

#格式:
select 字段名  from 表名 where 条件1 (and|or) 条件2 (and|or)条件3;
select name,age from students where age>15 and age<20;

在这里插入图片描述

5. in

显示已知值的资料

#格式:
select 字段名  from 表名 where 字段 in ('值1','值2'....);
select * from students where id in (1,2,3,4);

在这里插入图片描述

select * from students where age in (10,17);

在这里插入图片描述

6. between

显示两个值范围内的资料

#格式:
select 字段名  from 表名 where 字段 between  '值1' and '值2';
包括 and两边的值
select * from students where id  between 1 and 5;

select * from students where id  between 1 and 4;

在这里插入图片描述

select * from students where score  between 10 and 50;

在这里插入图片描述

select * from students where name between 'haijiu' and 'wangwu';

在这里插入图片描述

select * from students where age between 10 and 15;

在这里插入图片描述

7. like 通配符

通配符通常是和 like 一起使用

#格式:
select 字段名  from 表名 where 字段 like 通配符格式
通配符含义
%表示零个,一个或者多个字符
_下划线表示单个字符
A_Z所有以A开头 Z 结尾的字符串 ‘ABZ’ ‘ACZ’ 'ACCCCZ’不在范围内 下划线只表示一个字符 AZ 包含a空格z
ABC%所有以ABC开头的字符串 ABCD ABCABC
%CBA所有以CBA结尾的字符串 WCBA CBACBA
%AN%所有包含AN的字符串 los angeles
_AN%所有 第二个字母为 A 第三个字母 为N 的字符串
select * from students where name like 'h%';

在这里插入图片描述

select * from students where name like '_a%';

在这里插入图片描述

select * from  students where name like '%liu%';

在这里插入图片描述

8. order by

order by 按关键字排序

#语法:
select 字段名  from 表名 where 条件 order by 字段 [asc,desc];
asc :正向排序
desc :反向排序
select id,name from students order by id;

在这里插入图片描述

select id,name from students order by id desc;

在这里插入图片描述

select id,name,age from students where age=17 order by id;

在这里插入图片描述

9. 函数

9.1 数学函数

函数含义
abs(x)返回x 的 绝对值
rand()返回0到1的随机数
mod(x,y)返回x除以y以后的余数
power(x,y)返回x的y次方
round(x)返回离x最近的整数
round(x,y)保留x的y位小数四舍五入后的值
sqrt(x)返回x的平方根
truncate(x,y)返回数字 x 截断为 y 位小数的值
ceil(x)返回大于或等于 x 的最小整数
floor(x)返回小于或等于 x 的最大整数
greatest(x1,x2…)返回返回集合中最大的值
least(x1,x2…)返回返回集合中最小的值
select  abs(-6);

在这里插入图片描述

select  rand(1);

在这里插入图片描述

select * from xues order by rand();

在这里插入图片描述

在这里插入图片描述

select mod(10,3);

在这里插入图片描述

select power(2,10);

在这里插入图片描述

select round(6.5);

select round(6.4);

在这里插入图片描述

select round(3.1415926,2);

在这里插入图片描述
在这里插入图片描述

select truncate(3.1415,3);

select truncate(3.1455,3);

在这里插入图片描述

select ceil(3.1415);

在这里插入图片描述

select floor(3.1415);

在这里插入图片描述

select greatest(12,13,14,15);

在这里插入图片描述

select  least(12,13,14,15);

在这里插入图片描述

9.2 聚合函数

函数含义
avg()返回指定列的平均值
count()返回指定列中非 NULL 值的个数
min()返回指定列的最小值
max()返回指定列的最大值
sum(x)返回指定列的所有值之和

在这里插入图片描述

select  avg(age) from xues;

select  avg(score) from xues;

在这里插入图片描述

select  sum(age) from xues;

在这里插入图片描述

select max(age) from xues;

在这里插入图片描述

select min(age) from xues;

在这里插入图片描述


select  count(classid) from xues;
 
count(明确字段):不会忽略空记录

在这里插入图片描述


 select count(*) from xues;
 
 count(*)包含空字段,会忽略空记录

在这里插入图片描述

查看空格字段是否会被匹配
insert into xues values(16,'',20,82,'ppp',1);

在这里插入图片描述

10. group by

  1. 对group by 后面的字段的查询结果进行汇总分组,通常是结合聚合函数一起使用的

  2. group by 有一个原则,就是select 后面的所有列中,没有使用聚合函数的列必须出现在 group by 的后面。

#格式:
select 字段1,sum(字段2) from 表名 group by 字段1;
select classid,sum(age) from xues group by classid;

在这里插入图片描述

select classid,avg(age) from xues group by classid;

在这里插入图片描述

select classid,count(age) from xues group by classid;

在这里插入图片描述

11. having

  1. having:用来过滤由group by语句返回的记录集,通常与group by语句联合使用

  2. having语句的存在弥补了where关键字不能与聚合函数联合使用的不足。如果被SELECT的只有函数栏,那就不需要GROUP BY子句。

  3. 要根据新表中的字段,来指定条件

#格式:
SELECT 字段1,SUM("字段")FROM 表格名 GROUP BY 字段1 having(函数条件);
select classid,avg(score) from xues group by classid;

select classid,avg(score) from xues group by classid having avg(score)>80;

在这里插入图片描述

12. 别名

栏位別名 表格別名

#格式:
SELECT "表格別名"."栏位1" [AS] "栏位別名" FROM "表格名" [AS] "表格別名";
select f.classid,avg(score) '平均成绩' from xues as f group by f.classid;

在这里插入图片描述

13. 子查询

连接表格,在WHERE 子句或HAVING 子句中插入另一个SQL语句

#格式:
SELECT "栏位1" FROM "表格" WHERE "栏位2"	[比较运算符]			
#子查询
(SELECT "栏位1" FROM "表格" WHERE "条件");	
select sum(score) from xues where id in (select id from students where id=1);

在这里插入图片描述

14. EXISTS

  1. 用来测试内查询有没有产生任何结果类似布尔值是否为真

  2. 如果有的话,系统就会执行外查询中的SQL语句。若是没有的话,那整个 SQL 语句就不会产生任何结果。

 
#格式:
SELECT "栏位1" FROM "表格1" WHERE EXISTS (SELECT * FROM "表格2" WHERE "条件");
先看students表中是否有id为1的学生,如果有则执行将xues表中的score求和

select sum(score) from xues where exists (select * from students where id=1);

在这里插入图片描述
在这里插入图片描述

#示例2:先看students表中是否有id为16的学生,如果有则执行将xues表中的score求和

select sum(score) from xues where exists (select * from students where id=16);

在这里插入图片描述


  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:46:53  更:2022-04-07 22:49:32 
 
开发: 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年1日历 -2025/1/16 13:54:18-

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