炸裂!MySQL 82 张图带你飞!(四)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 这篇文章我们来了解一下 MySQL 中的高级内容。

数据库名、表名大小写问题

在 MySQL 中,数据库中的每个表至少对应数据库目录中的一个文件,当然这取决于存储引擎的实现了。不同的操作系统对大小写的敏感性决定了数据库和表名的大小写的敏感性。在 UNIX 操作系统中是对大小写敏感的,因此数据库名和表名也是具有敏感性的,而到了 Windows 则不存在敏感性问题,因为 Windows 操作系统本身对大小写不敏感。列、索引、触发器在任何平台上都对大小写不敏感。

在 MySQL 中,数据库名和表名是由 lower_case_tables_name 系统变量决定的。可以在启动 mysqld 时设置这个系统变量。下面是 lower_case_tables_name 的值。

微信图片_20220418193550.png

如果只在一个平台上使用 MySQL 的话,通常不需要修改 lower_case_tables_name 变量。如果想要在不同系统系统之间迁移表就会涉及到大小写问题,因为 UNIX 中 clerk_info 和 CLERK_INFO 被认为是两个不同的表,而 Windows 中则认为是一个。在 UNIX 中使用 lower_case_tables_name=0, 而在 Windows 中使用lower_case_tables_name=2,这样可以保留数据库名和表名的大小写,但是不能保证所有的 SQL 查询中使用的表名和数据库名的大小写相同。如果 SQL 语句中没有正确引用数据库名和表名的大小写,那么虽然在 Windows 中能正确执行,但是如果将查询转移到 UNIX 中,大小写不正确,将会导致查询失败。

外键问题

这里需要注意一个问题,InnoDB 存储引擎是支持外键的,而 MyISAM 存储引擎是不支持外键的,因此在 MyISAM 中设置外键会不起作用。

MySQL 常用函数

下面我们来了解一下 MySQL 函数,MySQL 函数也是我们日常开发过程中经常使用的,选用合适的函数能够提高我们的开发效率,下面我们就来一起认识一下这些函数

字符串函数

字符串函数是最常用的一种函数了,MySQL 也是支持很多种字符串函数,下面是 MySQL 支持的字符串函数表

微信图片_20220418193554.png

下面通过具体的示例演示一下每个函数的用法

  • LOWER(str) 和 UPPER(str) 函数:用于转换大小写

微信图片_20220418193557.png

  • CONCAT(s1,s2 ... sn) :把传入的参数拼接成一个字符串

微信图片_20220418193600.png

上面把 c xu an 拼接成为了一个字符串,另外需要注意一点,任何和 NULL 进行字符串拼接的结果都是 NULL。

微信图片_20220418193603.png

  • LEFT(str,x) 和 RIGHT(str,x) 函数:分别返回字符串最左边的 x 个字符和最右边的 x 个字符。如果第二个参数是 NULL,那么将不会返回任何字符串

微信图片_20220418193608.png

  • INSERT(str,x,y,instr) :将字符串 str 从指定 x 的位置开始, 取 y 个长度的字串替换为 instr。

微信图片_20220418193616.png

  • LTRIM(str) 和 RTRIM(str) 分别表示去掉字符串 str 左侧和右侧的空格

微信图片_20220418193634.png

  • REPEAT(str,x) 函数:返回 str 重复 x 次的结果

微信图片_20220418193637.png

  • TRIM(str) 函数:用于去掉目标字符串的空格

微信图片_20220418193641.png

  • SUBSTRING(str,x,y) 函数:返回从字符串 str 中第 x 位置起 y 个字符长度的字符串

微信图片_20220418193644.png

  • LPAD(str,n,pad) 和 RPAD(str,n,pad) 函数:用字符串 pad 对 str 左边和右边进行填充,直到长度为 n 个字符长度

微信图片_20220418193648.png

  • STRCMP(s1,s2) 用于比较字符串 s1 和 s2 的 ASCII 值大小。如果 s1 < s2,则返回 -1;如果 s1 = s2 ,返回 0 ;如果 s1 > s2 ,返回 1。

微信图片_20220418193651.png

  • REPLACE(str,a,b) : 用字符串 b 替换字符串 str 种所有出现的字符串 a

微信图片_20220418193654.png

数值函数

MySQL 支持数值函数,这些函数能够处理很多数值运算。下面我们一起来学习一下 MySQL 中的数值函数,下面是所有的数值函数

微信图片_20220418193657.png

下面我们还是以实践为主来聊一聊这些用法

  • ABS(x) 函数:返回 x 的绝对值

微信图片_20220418193701.png

  • CEIL(x) 函数:返回大于 x 的整数

微信图片_20220418193704.png

  • MOD(x,y),对 x 和 y 进行取模操作

微信图片_20220418193708.png

  • ROUND(x,y) 返回 x 四舍五入后保留 y 位小数的值;如果是整数,那么 y 位就是 0 ;如果不指定 y ,那么 y 默认也是 0 。

微信图片_20220418193711.png

  • FLOOR(x) : 返回小于 x 的最大整数,用法与 CEIL 相反

微信图片_20220418193714.png

  • TRUNCATE(x,y): 返回数字 x 截断为 y 位小数的结果, TRUNCATE 知识截断,并不是四舍五入。

微信图片_20220418193717.png

  • RAND() :返回 0 到 1 的随机值

微信图片_20220418193721.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
人工智能 关系型数据库 MySQL
细节爆炸!腾讯用13个案例实战讲明白MySQL,没想到这么全
MySQL MySQL的数据类型有很多种,选择正确的数据类型对于获得高性能特别地重要。MySQL作为应用最广泛、最流行的开源数据库之一,MySQL数据库软件已经广为人知了,MySQL的衍生技术百花齐放,拓展架构异彩纷呈。尤其是在性能优化及高可用架构两方面,很多从业多年的DBA限于生产环境的固定体系,往往都是盲人摸象,难窥全局! 当前很火的Facebook、腾讯、淘宝等大型网站都在使用MySQL的数据库。在最近的二十年,我们也目睹了云计算、大数据、物联网、区块链、5G、人工智能、数字化转型等都有多种浪潮的冲击。而且一些技术随着热潮的褪去也降低了热度,;另一些技术在多次冲刷与洗礼中屹立不倒,
915 5
|
运维 Oracle 关系型数据库
MySQL MGR看着很美,却又为什么不敢用?
MySQL MGR看着很美,却又为什么不敢用?
423 0
MySQL MGR看着很美,却又为什么不敢用?
|
SQL 存储 关系型数据库
mysql数据库第十二课------mysql语句的拔高2------飞高高
mysql数据库第十二课------mysql语句的拔高2------飞高高
|
SQL 存储 关系型数据库
42 张图带你撸完 MySQL 优化 上
42 张图带你撸完 MySQL 优化 上
93 0
42 张图带你撸完 MySQL 优化  上
|
SQL 存储 关系型数据库
42 张图带你撸完 MySQL 优化 中
42 张图带你撸完 MySQL 优化 中
130 0
42 张图带你撸完 MySQL 优化  中
|
SQL 存储 自然语言处理
42 张图带你撸完 MySQL 优化 下
42 张图带你撸完 MySQL 优化 下
122 0
42 张图带你撸完 MySQL 优化  下
|
存储 SQL 算法
【面试题系列】:Mysql 夺命13问,你能扛到第几问?
1. 能说下 myisam 和 innodb 的区别吗? myisam引擎是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等,但是不支持事务和行级锁,所以一般用于有大量查询少量插入的场景来使用,而且myisam不支持外键,并且索引和数据是分开存储的。 innodb是基于聚簇索引建立的,和myisam相反它支持事务、外键,并且通过MVCC来支持高并发,索引和数据存储在一起。 2. 说下 mysql 的索引有哪些吧,聚簇和非聚簇索引又是什么? 索引按照数据结构来说主要包含B+树和
122 0
【面试题系列】:Mysql 夺命13问,你能扛到第几问?
|
SQL 数据采集 自然语言处理
炸裂!MySQL 82 张图带你飞!(三)
这篇文章我们来了解一下 MySQL 中的高级内容。
109 0
炸裂!MySQL 82 张图带你飞!(三)
|
SQL 关系型数据库 MySQL
炸裂!MySQL 82 张图带你飞!(五)
这篇文章我们来了解一下 MySQL 中的高级内容。
99 0
炸裂!MySQL 82 张图带你飞!(五)
|
SQL 存储 关系型数据库
炸裂!MySQL 82 张图带你飞!(二)
这篇文章我们来了解一下 MySQL 中的高级内容。
87 0
炸裂!MySQL 82 张图带你飞!(二)