【黄啊码】MySQL入门—7、这些函数运用得好,高级工程师都直呼内行

2022-10-21 17:21:24 浏览数 (1)

大家好!我是黄啊码,久等了,时间荏苒,转眼停更三个月了,这段时间搬砖去了,惭愧惭愧,先上课吧,嘘寒问暖的话有空再说。上一回留下了课题:如果where后边有and和or,哪个先执行?

先直接给答案:在mysql查询时,在where语句中,AND和OR可以同时使用,但AND的优先级要高于OR,但我们经常会遇到where条件中and与or同时出现的情况,这时候需要把and 的条件使用括号括起来或者or的条件括起来才会达到预期的效果,这是因为where条件中 and优先与or ,所以加上括号就可以改变优先级关系。

例子如下:

代码语言:javascript复制
select * from user_info where (user_age>12 and user_age<16) or user_name='张三'

这样看来,这段sql代码的意思就是查出所有年龄12-16的学生或者名字为张三的,understand?

好了,回忆那么苦,我们就不做多停留,看看最新课程:MySQL函数运用

目录

什么是 SQL 函数

算术函数

字符串函数

日期函数

转换函数

算术函数

字符串函数

日期函数

转换函数

为什么使用 SQL 函数会带来问题

关于大小写的规范

什么是 SQL 函数

函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。

SQL 中的函数一般是在数据上执行的,可以很方便地转换和处理数据。一般来说,当我们从数据表中检索出数据之后,就可以进一步对这些数据进行操作,得到更有意义的结果,比如返回指定条件的函数,或者求某个字段的平均值等。

常用的 SQL 函数有哪些

SQL 提供了一些常用的内置函数,当然你也可以自己定义 SQL 函数。SQL 的内置函数对于不同的数据库软件来说具有一定的通用性,我们可以把内置函数分成四类:

  1. 算术函数
  2. 字符串函数
  3. 日期函数
  4. 转换函数

算术函数

这里我举一些简单的例子,你来体会下:

SELECT ABS(-2),运行结果为 2。

SELECT MOD(101,3),运行结果 2。

SELECT ROUND(37.25,1),运行结果 37.3。

字符串函数

SELECT CONCAT('abc', 666),运行结果为 abc666。

SELECT LENGTH('你好啊'),运行结果为 9。

SELECT CHAR_LENGTH('你好'),运行结果为 2。

SELECT LOWER('ABC'),运行结果为 abc。

SELECT UPPER('abc'),运行结果 ABC。

SELECT REPLACE('fabcd', 'abc', 123),运行结果为 f123d。

SELECT SUBSTRING('fabcd', 1,3),运行结果为 fab。

日期函数

日期函数是对数据表中的日期进行处理,常用的函数包括:

下面是一些简单的例子,你可自己运行下:

SELECT CURRENT_DATE(),运行结果为 2019-04-03。

SELECT CURRENT_TIME(),运行结果为 21:26:34。

SELECT CURRENT_TIMESTAMP(),运行结果为 2019-04-03 21:26:34。

SELECT EXTRACT(YEAR FROM '2019-04-03'),运行结果为 2019。

SELECT DATE('2019-04-01 12:00:05'),运行结果为 2019-04-01。

这里需要注意的是,DATE 日期格式必须是 yyyy-mm-dd 的形式。如果要进行日期比较,就要使用 DATE 函数,不要直接使用日期与字符串进行比较,我会在后面的例子中讲具体的原因。

转换函数

转换函数可以转换数据之间的类型,常用的函数如下表所示:

SELECT CAST(123.123 AS INT),运行结果会报错。

SELECT CAST(123.123 AS DECIMAL(8,2)),运行结果为 123.12。

SELECT COALESCE(null,1,2),运行结果为 1。

为什么使用 SQL 函数会带来问题

如果你学习过编程语言,就会知道语言是有不同版本的,比如 Python 会有 2.7 版本和 3.x 版本,但我们在使用 SQL 语言的时候,不是直接和这门语言打交道,而是通过它使用不同的数据库软件,即 DBMS。DBMS 之间的差异性很大,远大于同一个语言不同版本之间的差异。实际上,只有很少的函数是被 DBMS 同时支持的。比如,大多数 DBMS 使用(||)或者( )来做拼接符,而在 MySQL 中的字符串拼接函数为Concat()。大部分 DBMS 会有自己特定的函数,这就意味着采用 SQL 函数的代码可移植性是很差的,因此在使用函数的时候需要特别注意。【简而言之就是sql语句对于dbms来说,兼容性还有待调整。】

关于大小写的规范

在 SQL 中,关键字和函数名是不用区分字母大小写的,比如 SELECT、WHERE、ORDER、GROUP BY 等关键字,以及 ABS、MOD、ROUND、MAX 等函数名。

不过在 SQL 中,你还是要确定大小写的规范,因为在 Linux 和 Windows 环境下,你可能会遇到不同的大小写问题。

比如 MySQL 在 Linux 的环境下,数据库名、表名、变量名是严格区分大小写的,而字段名是忽略大小写的

而 MySQL 在 Windows 的环境下全部不区分大小写

这就意味着如果你的变量名命名规范没有统一,就可能产生错误。这里有一个有关命名规范的建议:

  1. 关键字和函数名称全部大写;
  2. 数据库名、表名、字段名称全部小写;
  3. SQL 语句必须以分号结尾。

注:千万要记住黄啊码标红色的地方,不然很容易本地好好的代码迁移到服务器就挂了。

最后留一个脑图给大家当做复习用:

好了,今天的课程学到这里,有问题的留个言,别忘了一键三连,下次我们还会再见!

我是黄啊码,码字的码,退。。。退。。。退。。。朝!

0 人点赞