您当前的位置:首页 > 电脑百科 > 数据库 > MYSQL

MySQL高级SQL语句

时间:2021-11-05 10:03:05  来源:  作者:Java热点

MySQL的进阶查询
一、 按关键字排序
使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序,默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的语法结构ORDER BY后面跟字段名
准备一张成绩表

MySQL高级SQL语句

 


语法结构

MySQL高级SQL语句

 


1.1 单字段排序
升序

MySQL高级SQL语句

 


降序

MySQL高级SQL语句

 


1.2 多字段排序
先以前面的字段(主参考字段)排序,如果相同再按后面的字段排序

MySQL高级SQL语句

 


二 、对结果进行分组
使用GROUP BY语句来实现分组通常结合聚合函数一起使用可以按一个或多个字段对结果进行分组GROUP BY的语法结构
2.1 group by分组
按照hobby分组(相同hobby一个组),并统计每个组的人数

MySQL高级SQL语句

 


2.2 group by结合order by
先按hobby分组,再按hobby序号降序排列

MySQL高级SQL语句

 


三、限制结果条目LIMIT
只返回SELECT查询结果的第一行或前几行使用LIMIT语句限制条目
LIMIT语法结构

MySQL高级SQL语句

 


查看前两行

MySQL高级SQL语句

 


查看从第四行开始的五行内容

MySQL高级SQL语句

 


四、设置别名
使用AS语句设置别名,关键字AS可省略设置别名时,保证不能与库中其他表或字段名称冲突
别名的语法结构

MySQL高级SQL语句

 


AS的用法
对于字段设置

MySQL高级SQL语句

 


对于表设置,一般在多表查询时使用
多表操作时,对表别名之后,在select字段时要用别名.字段,区分字段属于哪个表

MySQL高级SQL语句

 


作为连接语句
创建一个新表,将旧表的内容导入,与旧表的区别在于表的结构

MySQL高级SQL语句

 


五、通配符
用于替换字符串的部分字符通常配合LIKE一起使用,并协同WHERE完成查询常用的通配符%表示零个、一个或多个_表示单个字符
例:
查询以姓名y开头的记录:

MySQL高级SQL语句

 


查询姓名为y_ _y_格式的记录,_代表单个字符,占位

MySQL高级SQL语句

 


六、子查询
也称作内查询或者嵌套查询先于主查询被执行,其结果将作为外层主查询的条目在增删改查中都可以使用子查询支持多层嵌套IN语句是用来判断某个值是否在给定的结果集中
例:根据表need,筛选出与need表中内容相匹配的成绩表的内容

MySQL高级SQL语句

 


多层嵌套,筛选出need表中id与chengji表id相同的记录之后,在这基础上再筛选出名字相同的记录

MySQL高级SQL语句

 


等同于下面两步的操作

MySQL高级SQL语句

 


七、视图
数据库中的虚拟表,这张虚拟表中不包含任何数据,只是做了数据映射;
创建视图并查看:

MySQL高级SQL语句

 


八、NULL值
表示缺失的值与数字0或者空白(spaces)是不同的使用IS NULL或IS NOT NULL进行判断
NULL与空值的区别:
空值长度为0,不占空间;NULL值的长度为NULL,占用空间
IS NULL无法判断空值 空值使用“=”或者“<>”来处理
COUNT()计算时,NULL会忽略,不加入计算,空值会加入计算
九、正则表达式
根据指定的匹配模式匹配记录中符合要求的特殊字符使用REGEXP关键字指定匹配模式
常用匹配模式

MySQL高级SQL语句

 


例:
查询以l开头的记录:

MySQL高级SQL语句

 


查询以o结尾的

MySQL高级SQL语句

 


.代表任意单个字符,占位,查询lihao的记录

MySQL高级SQL语句

 


查询不是z开头的

MySQL高级SQL语句

 


匹配w及后面一个w两次

MySQL高级SQL语句

 


十、运算符
MySQL 的运算符用于对记录中的字段值进行运算。MySQL 的运算符共有四种,分别是:算术运算符、比较运算符、逻辑运算符和位运算符。下面分别对这四种运算符进行说明。
10.1 算数运算符
MYSQL支持使用的运算符号

MySQL高级SQL语句

 


MySQL高级SQL语句

 


10.2 比较运算符
常用比较运算符

MySQL高级SQL语句

 


10.2.1 等于
等号(=)是用来判断数字、字符串和表达式是否相等的,如果相等则返回 1,如果不相等则返回 0。如果比较的两者有一个值是 NULL,则比较的结果就是 NULL。其中字符的比较是根据 ASCII 码来判断的,如果 ASCII 码相等,则表示两个字符相同;如果 ASCII 码不相等,则表示两个字符不相同。例如,等于运算符在数字、字符串和表达式上的使用

MySQL高级SQL语句

 


10.2.2 不等于
不等于号有两种写法,分别是<>或者!=,用于针对数字、字符串和表达式不相等的比较。如果不相等则返回 1,如果相等则返回 0,这点正好跟等于的返回值相反。需要注意的是不等于运算符不能用于判断 NULL。

MySQL高级SQL语句

 


10.2.3 大于、大于等于、小于、小于等于
大于(>)运算符用来判断左侧的操作数是否大于右侧的操作数,若大于返回 1,否则返回 0,同样不能用于判断 NULL。小于(<)运算符用来判断左侧的操作数是否小于右侧的操作数,若小于返回 1,否则返回 0,同样不能用于判断 NULL。大于等于(>=)判断左侧的操作数是否大于等于右侧的操作数,若大于等于返回 1,否则返回 0,不能用于判断 NULL。小于等于(<=)判断左侧的操作数是否小于等于右侧的操作数,若小于等于返回 1,否则返回 0,不能用于判断 NULL。数值比较会自动转换ASCII表的数值
几个常用Dec(十进制):
0是48,A是65,a是97,其余的都是按顺序下去的

MySQL高级SQL语句

 


10.2.4 IS NULL、IS NOT NULL
ISNULL 判断一个值是否为 NULL,如果为 NULL 返回 1,否则返回 0。IS NOT NULL 判断一个值是否不为 NULL,如果不为 NULL 返回 1,否则返回 0

MySQL高级SQL语句

 


10.2.5 BETWEEN AND
BETWEEN AND 比较运算通常用于判断一个值是否落在某两个值之间。例如,判断某数字是否在另外两个数字之间,也可以判断某英文字母是否在另外两个字母之间。between and 包含两端

MySQL高级SQL语句

 


10.2.6 LEAST、GREATEST
LEAST:当有两个或者多个参数时,返回其中的最小值。如果其中一个值为 NULL,则返回结果就为 NULL。
GREATEST:当有两个或者多个参数时,返回其中的最大值。如果其中一个值为 NULL, 则返回结果就为 NULL。

MySQL高级SQL语句

 


10.2.7 IN、NOT IN
IN 判断一个值是否在对应的列表中,如果是返回 1,否则返回 0。
NOT IN 判断一个值是否不在对应的列表中,如果不是返回 1,否则返回 0。

MySQL高级SQL语句

 


10.3 逻辑运算符
逻辑运算符又被称为布尔运算符,通常用来判断表达式的真假,如果为真返回 1,否则返回 0,真和假也可以用 TRUE 和 FALSE 表示。

MySQL高级SQL语句

 


10.3.1 逻辑非
逻辑运算符中最简单的运算符就是逻辑非,逻辑非使用 NOT 或!表示。逻辑非将跟在它后面的逻辑测试取反,把真变为假,把假变为真。如果 NOT 后面的操作数为 0 时,所得值为 1;如果操作数为非 0 时,所得值为 0;如果操作数为 NULL 时,所得值为 NULL。例如,对非 0 值和 0 值分别作逻辑非运算,具体操作如下所示。

MySQL高级SQL语句

 


10.3.2 逻辑与
逻辑与通常用于判断两个值或多个值的有效性,如果所有值都是真返回 1,否则返回 0。逻辑与使用 AND 或者&&表示。例如,对非 0 值、0 值和 NULL 值分别作逻辑与运算,具体操作如下所示。

MySQL高级SQL语句

 


10.3.3 逻辑或
逻辑与通常用于判断两个值或多个值的有效性,如果所有值都是真返回 1,否则返回 0。逻辑与使用 AND 或者&&表示。例如,对非 0 值、0 值和 NULL 值分别作逻辑与运算。
一旦有个非0值,出来就是非0值

MySQL高级SQL语句

 


10.3.4 逻辑异或
两个非 NULL 值的操作数,如果两者都是 0 或者都是非 0,则返回 0;如果一个为 0, 另一个为非 0,则返回结果为 1;当任意一个值为 NULL 时,返回值为 NULL。例如,对非0 值、0 值和 NULL 值分别作逻辑异或运算,具体操作如下所示。
有null结果就会为null。

MySQL高级SQL语句

 


10.4 位运算符
位运算符实际上是对二进制数进行计算的运算符。MySQL 内位运算会先将操作数变成二进制格式,然后进行位运算,最后在将计算结果从二进制变回到十进制格式,方便用户查看。

MySQL高级SQL语句

 


10.5 运算符的优先级
以上不管哪种运算符,在使用过程中都有优先级问题。运算符的优先级决定了不同的运 算符在计算过程中的先后顺序。级别高的运算符会先进行计算,如果运算符的级别相同, MySQL 会按照顺序从左到右依次进行计算。如果不确定所使用的运算符的优先级,可以使用()改变优先级。

MySQL高级SQL语句

 



Tags:SQL语句   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。...【详细内容】
2021-11-24  Tags: SQL语句  点击:(23)  评论:(0)  加入收藏
MySQL的进阶查询 一、 按关键字排序 使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序,默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的...【详细内容】
2021-11-05  Tags: SQL语句  点击:(27)  评论:(0)  加入收藏
文章来源:https://mp.weixin.qq.com/s/pEXio0MNoi1k0w9XgYECNw作者:廖学强 1. sqlserver查看实例级别的信息,使用SERVERPROPERTY函数select SERVERPROPERTY (&#39;propertyname...【详细内容】
2021-01-12  Tags: SQL语句  点击:(188)  评论:(0)  加入收藏
公司的商品ID用的是uuid,用以前的方式取上一条下一条的方式已不行 如:id<$id id>$id下一条select * from( select *, (@i:=@i+1) as rownum from shop_commodity,(select @i...【详细内容】
2020-08-27  Tags: SQL语句  点击:(107)  评论:(0)  加入收藏
写SQL语句的时候我们往往关注的是SQL的执行结果,但是是否真的关注了SQL的执行效率,是否注意了SQL的写法规范?以下的干货分享是在实际开发过程中总结的,希望对大家有所帮助!1....【详细内容】
2020-08-07  Tags: SQL语句  点击:(96)  评论:(0)  加入收藏
一、基础1、创建数据库CREATE DATABASE database-name 2、删除数据库drop database dbname 3、备份sql server--- 创建备份数据的 deviceUSE master EXEC sp_addumpdevice...【详细内容】
2020-07-27  Tags: SQL语句  点击:(65)  评论:(0)  加入收藏
本文主要从工作经验中总结出来的经验总结sql语句优化问题,下面我们用Demo来具体说明如何提高sql的执行效率:1、关于limit分页优化的问题SELECT * FROM message_1 LIMIT 10000,...【详细内容】
2020-06-17  Tags: SQL语句  点击:(212)  评论:(0)  加入收藏
本文谈谈MySQL的开发必会的sql语句 创建数据库create database db1;删除数据库drop database db1;创建数据表create table tb1用户表( id int not null...【详细内容】
2020-04-14  Tags: SQL语句  点击:(84)  评论:(0)  加入收藏
一、基础部分1、说明:创建数据库 CREATE DATABASE database-name2、说明:删除数据库 drop database dbname3、说明:备份sql server --- 创建 备份数据的 device USE master EX...【详细内容】
2020-03-05  Tags: SQL语句  点击:(76)  评论:(0)  加入收藏
这段代码应该是由程序(例如Java)中生成的,where条件中 1=1 之后的条件是通过 if 块动态变化的。例如:String sql="select * from table_name where 1=1";if( conditon 1) { sql=...【详细内容】
2020-02-23  Tags: SQL语句  点击:(157)  评论:(0)  加入收藏
▌简易百科推荐
作者:雷文霆 爱可生华东交付服务部 DBA 成员,主要负责Mysql故障处理及相关技术支持。爱好看书,电影。座右铭,每一个不曾起舞的日子,都是对生命的辜负。 本文来源:原创投稿 *爱可生...【详细内容】
2021-12-24  爱可生    Tags:MySQL   点击:(6)  评论:(0)  加入收藏
生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。有关Mysql记录锁、间隙(gap)锁、临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文章...【详细内容】
2021-12-14  python数据分析    Tags:MySQL记录锁   点击:(17)  评论:(0)  加入收藏
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二...【详细内容】
2021-12-14  linux上的码农    Tags:mysql   点击:(13)  评论:(0)  加入收藏
为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查...【详细内容】
2021-12-09  元宇宙iwemeta    Tags:mysql   点击:(15)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  吴彬的分享    Tags:Mysql数据库   点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  秃头码哥    Tags:MySQL数据库   点击:(16)  评论:(0)  加入收藏
对于数据分析来说,MySQL使用最多的是查询,比如对数据进行排序、分组、去重、汇总及字符串匹配等,如果查询的数据涉及多个表,还需要要对表进行连接,本文就来说说MySQL中常用的查询...【详细内容】
2021-12-06  笨鸟学数据分析    Tags:MySQL   点击:(19)  评论:(0)  加入收藏
在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。...【详细内容】
2021-11-24  笨鸟学数据分析    Tags:SQL语句   点击:(23)  评论:(0)  加入收藏
概述以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域...【详细内容】
2021-11-05  Java云海    Tags:分布式锁   点击:(31)  评论:(0)  加入收藏
MySQL的进阶查询 一、 按关键字排序 使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序,默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的...【详细内容】
2021-11-05  Java热点    Tags:SQL语句   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条