MySQL常用函数是什么

你好,说到MySQL常用的函数,就不得不说一下这个了。
说实话,我参加问答论坛很多年了,见过很多初学者对这些东西感到困惑。

我们先来谈谈数值函数。
这些东西在数值计算中非常有用。
例如,我曾经教过一位同事如何使用CEIL函数进行近似。
他当时就一头雾水,说:“哦,这东西怎么变成2 了?”我向他解释说,CEIL函数无论数字如何都会向上舍入,因此1 .2 3 变成2
我们来谈谈字符串函数。
这个东西主要是用来玩文字的。
记得有一次,一位朋友想要过滤姓名长度为3 的人,所以他使用了CHAR_LENGTH函数来过滤。
该函数返回的是字符数,而不是字节数,所以要注意区分。
还有一个 LEFT 函数,可用于提取字符串的左侧部分。
例如,LEFT(name,1 ) 可以获取名称的第一个字母。

时间函数,这个东西是用来处理日期和时间的。
例如,NOW 函数可以返回当前时间戳,DATE_ADD 函数可用于添加和减去时间。
例如,如果您想知道当前时间何时添加 5 0 分钟,可以使用 DATE_ADD(NOW(), INTERVAL 5 0 MINUTE)。

系统函数,主要提供一些系统级的操作,比如CONCAT_WS函数,可以使用分隔符来连接字符串,非常实用。

聚合函数主要用于汇总数据。
例如,SUM函数可用于求和,AVG函数可用于求平均值,COUNT()可用于计算行数,包括空值。
COUNT(column) 用于统计非空值。

总之,这些功能在MySQL中非常实用。
如果你掌握了它,你将能够轻松地处理数据。
不过这个东西学起来还是有点复杂,需要多加练习才能掌握。

mysql中like怎么用

AMO 的意思是研究。

% 匹配任意数量的字符。
_匹配一个字符。

“John%”搜索以 John 开头的单词。
“%a%”搜索包含 a 的项目。

约翰%儿子的支票两边都是固定的。
“_a_”位于支票的中间。

敏感。
使用较低的来解决。

“%_%”包含 _。
要转义,请扫描以
% 开头的整个表。
他们不使用大数据表。

'J%n_'等约翰。
NOTLIKE 检查 A 中的字符。

这不是他们第一次开始。

SQL中字符串函数(如CONCAT、SUBSTRING等)的用法

说实话,SQL中的字符串函数相当多,理解它们可以省去很多麻烦。
我会为你挑选一些常用的,并用简单的英语告诉你如何使用它们。

---
1 . CONCAT函数:连接字符串 该函数用于连接字符串。
例如,如果您想拼写“Hello”和“World!”在“Hello, world!”中,只需输入: sql SELECT CONCAT('Hello,', 'World!') AS 问候语;
注意:
在MySQL中,如果参数中有NULL,则结果为NULL。

PostgreSQL 与 SQL Server 不同。
它忽略 NULL 并直接拼写其余部分。

---
2 . SUBSTRING函数:捕获子字符串 该函数用于从字符串中提取一部分。
例如,通过从“Hello, World!”中选择“Hello”: sql SELECT SUBSTRING('Hello,World!', 1 , 5 ) AS 子字符串;
要点:
起始位置从1 开始计数,而不是从0开始计数。

第三个参数是选择多少个字符。

Oracle使用SUBSTR,MySQL和SQL Server使用SUBSTRING,这取决于数据库。

---
3 . UPPER 和 LOWER:大小写转换 你想创建一个大写字母还是小写字母的字符串?只需使用这两个函数: sql SELECT UPPER('hello') AS 大写,LOWER('WORLD') AS 小写;

UPPER 仅是大写,LOWER 仅是小写。

---
4 . TRIM函数:去除空格 有时字符串的开头和结尾有多余的空格,可以使用 TRIM 删除它们: sql SELECT TRIM(' hello ') AS 修剪;
默认是删除前导和尾随空格。
如果您只想要开头或结尾,则可以添加 LEADING 或 TRAILING。

---
5 .组合使用:解决复杂问题 字符串函数可以嵌套,例如从电子邮件地址中提取用户名: sql SELECT CONCAT(SUBSTRING(电子邮件, 1 , CHARINDEX('@', 电子邮件)
1 ), '(', 部门, ')') AS user_info FROM 员工;
假设电子邮件是 john.doe@example.com,部门是 IT,输出是 john.doe(IT)。

另一个例子是格式化名称: sql SELECT CONCAT(UPPER(SUBSTRING(姓氏, 1 , 1 )), LOWER(SUBSTRING(姓氏, 2 )), ',', 名字) AS formatted_name FROM 员工;
姓氏的第一个字母大写,小写,添加逗号和名字。

---
6 、注意事项:
性能:不要继续在 SQL 中编写一堆字符串函数。
它会很慢,尤其是在处理大量数据时。
考虑应用层处理。

兼容性:不同的数据库函数名称可能不同,例如Oracle使用SUBSTR。
参数的顺序也不同。

NULL:当MySQL中CONCAT遇到NULL时,会输出NULL,而PostgreSQL则跳过NULL。
您必须知道如何处理数据库。

测试:测试空字符串、NULL和超长字符串的边界条件。

---
7 . 最佳实践:
注释:为复杂的字符串操作编写注释,例如: sql -
提取电子邮件用户名并添加部门信息 SELECT CONCAT(SUBSTRING(电子邮件, 1 , CHARINDEX('@', 电子邮件)
1 ), '(', 部门, ')') ...
封装:将重复的逻辑放在视图或自定义函数中,例如: sql 创建函数 GetFormattedName(姓氏 VARCHAR, 名字 VARCHAR) 返回 VARCHAR 开始 RETURN CONCAT(UPPER(SUBSTRING(姓氏, 1 , 1 )), LOWER(SUBSTRING(姓氏, 2 )), ',', 名字); 结尾;
索引:不要在 WHERE 子句中使用函数,因为它会使索引失效。
例如: sql -
故障演示 从用户中选择 WHERE UPPER(用户名) = 'JOHN'; -
真实演示 从用户中选择,其中用户名 = 'JOHN';
---
说实话,字符串函数用得越多就越舒服。
关键是要了解不同数据库之间的差异,不要将它们混淆。

MySQL怎样统计出英语姓名首字母在A-H范围的学生数量?

结论:这个SQL查询统计表TABLE_NAME中列column_name以A、B、C、D、E、F、H开头的行数。

优化建议:如果你的表数据量很大,可以考虑添加索引。
例如,在column_name上创建索引。

具体例子:假设表TABLE_NAME有1 0000行数据,第一个字符为A的列column_name有1 5 00行,B有1 2 00行。
在本例中,查询结果将为 5 ,7 00。

注意:SQL IN 中的每个字符都必须用单引号引起来。