Mysql技能树学习

查询进阶

别名

MySQL支持在查询数据时为字段名或表名指定别名,指定别名时可以使用AS关键字。

BETWEEN AND条件语句

复制代码
mysql> SELECT * FROM t_goods WHERE id BETWEEN 6 AND 8;

查询特定数据 (CASE

复制代码
select name,
       case 
           when price < 10 then 'cheap'
           when price > 1000 then 'expensive'
           else 'normal'
       end as level
from goods;

DISTINCT关键字

可以对查询出的结果数据进行去重处理

复制代码
select count(distinct price) 
from goods;

ORDER BY语句

复制代码
mysql> SELECT id, t_category, t_name, t_price, t_stock
    -> FROM t_goods
    -> ORDER BY t_stock ASC, id DESC;

UNION联合语句

UNION语句可以对使用多个SELECT语句查询出的结果数据进行合并,合并查询结果数据时,要求每个SELECT语句查询出的数据的列数和数据类型必须相同,并且相互对应。

正则表达式**(待完善)**

Limit语句

LIMIT [m], n m,n 执行的效果与LIMIT n OFFSET m执行的效果相同 m索引从0开始

内置函数

锁相关

MySQL中提供了对数据进行加锁和解锁的函数,这些函数包括GET_LOCK(value,timeout)、RELEASE_LOCK(value)、IS_FREE_LOCK(value)和IS_USED_LOCK(value)函数。

GET_LOCK(value,timeout)函数如果成功获取锁,则返回1,如果获取锁超时,则返回0,如果发生错误,则返回NULL。

RELEASE_LOCK(value)函数如果解除成功,则返回1,如果线程还没有创建锁,则返回0,如果以value命名的锁不存在,则返回NULL

IS_FREE_LOCK(value)函数判断以value命名的锁是否可以被使用 1可以0不可以

IS_USED_LOCK(value)函数正在被使用,则返回使用该锁的数据库连接ID,否返回NULL

  • select function

JSON函数

表中插入数据

复制代码
mysql> INSERT INTO test_json (content) VALUES('{"name":"binghe", "age":18, "address":{"province":
"sichuan", "city":"chengdu"}}');

可以使用**"->"和"->>"查询**JSON数据中指定的内容

复制代码
mysql> SELECT content->'$.name' FROM test_json WHERE id = 1;


mysql> SELECT content->>'$.address.province' FROM test_json WHERE id = 1;

JSON_CONTAINS(json_doc,value)

函数查询JSON类型的字段中是否包含value数据。如果包含则返回1,否则返回0。其中,json_doc为JSON类型的数据,value为要查找的数据。

复制代码
mysql> SELECT JSON_CONTAINS(content, '{"name":"binghe"}') FROM test_json WHERE id = 1;   

JSON_SET(json_doc,path,val[,path,val] ...)函数函数用于向JSON数据中插入数据

复制代码
mysql> SELECT JSON_SET(content, '$.address.street', 'xxx街道') FROM test_json WHERE id = 1;

{"age": 18, "name": "binghe", "address": {"city": "chengdu", "street": "xxx街道", "province": "sichuan"}} |

JSON_INSERT(json_doc,path,val[,path,val] ...)函数用于向JSON数据中插入数据

复制代码
mysql> SELECT JSON_INSERT(content, '$.address.zip_code','000000') FROM test_json WHERE id = 1;

JSON_REPLACE(json_doc,path,val[,path,val] ...)函数用于更新JSON数据中指定Key的数据

复制代码
mysql> SELECT JSON_REPLACE(content,'$.age',20) FROM test_json WHERE id = 1;

JSON_KEYS(json_doc[,path])函数返回JSON数据中顶层key组成的JSON数组

JSON_LENGTH(json_doc[,path])函数返回JSON数据的长度

JSON_DEPTH(json_doc)函数返回JSON数据的最大深度

JSON_PRETTY(json_doc)函数以优雅的格式显示JSON数据

其他函数

FORMAT(value,n)函数

返回对数字value进行格式化后的结果数据,其中n表示四舍五入后保留到小数点后n位。如果n的值小于或者等于0,则只保留整数部分

CONV(value,from,to)函数

将value的值进行不同进制之间的转换,value是一个整数,如果任意一个参数为NULL,则结果返回NULL。

INET_ATON(value)函数

将以点分隔的IP地址转化为一个数字表示,其中,value为以点表示的IP地址

INET_NTOA(value)函数将数字形式的IP地址转化为以点分隔的IP地址

CAST(value AS type)函数将value转换为type类型的值

CONVERT(value USING char_code)函数,将value所使用的字符编码修改为char_code

相关推荐
2301_8002561129 分钟前
第九章:空间网络模型(空间网络查询、数据模型、Connected、with Recursive、pgRouting)
网络·数据库·算法·postgresql·oracle
saoys1 小时前
Opencv 学习笔记:创建与原图等尺寸的空白图像
笔记·opencv·学习
霖霖总总1 小时前
[小技巧19]MySQL 权限管理全指南:用户、角色、授权与安全实践
数据库·mysql·安全
heartbeat..6 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
晓幂7 小时前
【2025】HECTF
笔记·学习·web安全
慕云紫英8 小时前
基金申报的一点经验
学习·aigc
麦聪聊数据8 小时前
MySQL并发与锁:从“防止超卖”到排查“死锁”
数据库·sql·mysql
微露清风8 小时前
系统性学习C++-第十八讲-封装红黑树实现myset与mymap
java·c++·学习
宝贝儿好8 小时前
【强化学习】第六章:无模型控制:在轨MC控制、在轨时序差分学习(Sarsa)、离轨学习(Q-learning)
人工智能·python·深度学习·学习·机器学习·机器人
大、男人8 小时前
python之asynccontextmanager学习
开发语言·python·学习