• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL中的常用函数详解

MySQL中的常用函数详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MySQL,详解,函数等相关知识,希望本文的分享对您有所帮助
在MySQL中,函数不仅可以出现在select语句及其子句中,而且还可以出现在update、delete语句中。本文主要介绍了MySQL中的常用函数的相关资料,需要的朋友可以参考下,希望能帮助到大家。

常用的函数有:

1. 字符串函数;主要用于处理字符串。

2. 数值函数;主要用于处理数字。

3. 日期和时间函数;主要用于处理日期和事件。

4. 系统信息函数;获取系统信息。

1. 使用字符串函数:

虽然每种数据库都支持SQL,但是每种数据库拥有各自所支持的函数。

1.1 合并字符串函数concat() 和 concat_ws():

在MySQL中可以通过函数concat()和concat_ws()将传入的参数连接成为一个字符串。

语法定义为:

concat(s1, s2,...sn)
//该函数会将传入的参数连接起来返回合并的字符串类型的数据。如果其中一个参数为null,则返回值为null.

示例:

mysql> select concat('my','s','ql');
+-----------------------+
| concat('my','s','ql') |
+-----------------------+
| mysql |
+-----------------------+
1 row in set (0.00 sec)
mysql> select concat('my','s','ql',null);
+----------------------------+
| concat('my','s','ql',null) |
+----------------------------+
| NULL |
+----------------------------+
1 row in set (0.00 sec)
mysql> select concat(curdate(), 12.2);
+-------------------------+
| concat(curdate(), 12.2) |
+-------------------------+
| 2016-08-2512.2 |
+-------------------------+
1 row in set (0.00 sec)
//说明:将当前时间和数值12.2合并。即concat()函数不仅可以接受字符串参数,而且还可以接受其他类型参数。

concat_ws()的定义:

concat_ws(sep,s1,s2,...sn)
//该函数与concat()相比,多了一个表示分隔符的seq参数,不仅将传入的其他参数连接起来,而且还会通过分隔符将各个字符串分割开来。
//分隔符可以是一个字符串,也可以是其他参数。如果分割符为null,则返回结果为null。函数会忽略任何分割符后的参数null.

示例:

mysql> select concat_ws('-','020','87658907');
+---------------------------------+
| concat_ws('-','020','87658907') |
+---------------------------------+
| 020-87658907 |
+---------------------------------+
1 row in set (0.00 sec)
mysql> select concat_ws(null,'020','87658907');
+----------------------------------+
| concat_ws(null,'020','87658907') |
+----------------------------------+
| NULL |
+----------------------------------+
1 row in set (0.00 sec)
//当分隔符为null时,则返回结果为null
mysql> select concat_ws('-','020',null,'87658907');
+--------------------------------------+
| concat_ws('-','020',null,'87658907') |
+--------------------------------------+
| 020-87658907 |
+--------------------------------------+
1 row in set (0.00 sec)
//不是第一个参数的null将被忽略

1.2 比较字符串大小函数strcmp():

strcmp()定义为:

strcmp(str1,str2);
//如果参数str1大于str2,返回1;如果str1小于str2,则返回-1;如果str1等于str2,则返回0;

示例:

mysql> select strcmp('abc','abd'),strcmp('abc','abc'),strcmp('abc','abb');
+---------------------+---------------------+---------------------+
| strcmp('abc','abd') | strcmp('abc','abc') | strcmp('abc','abb') |
+---------------------+---------------------+---------------------+
| -1 | 0 | 1 |
+---------------------+---------------------+---------------------+
1 row in set (0.00 sec)

1.3 获取字符串长度函数length()和字符数函数char_length():

length()的定义如下:

length(str)

char_length(str)的定义如下:

char_length(str)

示例:

mysql> select length('mysql'),length('汉字'),char_length('mysql'),char_length('汉字');
+-----------------+----------------+----------------------+---------------------+
| length('mysql') | length('汉字') | char_length('mysql') | char_length('汉字') |
+-----------------+----------------+----------------------+---------------------+
| 5 | 4 | 5 | 4 |
+-----------------+----------------+----------------------+---------------------+
1 row in set, 2 warnings (0.00 sec)
//字符串‘MySQL'共有5个字符,但是占6个字节空间。这是因为每个字符串都是以\0结束。两个函数都是获取字符串的字符数而不是所占空间大小。

1.4 字母的大小写转换upper()和lower():

字母大小转换函数:upper(s); ucase(s);
字母小写转换函数:lower(s); lcase(s);

示例:

mysql> select upper('mysql'),ucase('mYsql'),lower('MYSQL'),lcase('MYsql');
+----------------+----------------+----------------+----------------+
| upper('mysql') | ucase('mYsql') | lower('MYSQL') | lcase('MYsql') |
+----------------+----------------+----------------+----------------+
| MYSQL | MYSQL | mysql | mysql |
+----------------+----------------+----------------+----------------+
1 row in set (0.00 sec)

1.5 查找字符串:

mysql中提供了丰富的函数去查找字符串的位置。分别有find_in_set()函数、field()函数、locate()函数、position()函数和instr()函数。同时还提供了查找指定位置的字符串的函数elt()。

1.5.1 返回字符串位置的find_in_set()函数:

函数定义为:

find_in_set(str1,str2) 
//会返回在字符串str2中与str1相匹配的字符串的位置,参数str2字符串中将包含若干个用逗号隔开的字符串。

示例:

mysql> select find_in_set('mysql','oracle,mysql,db2');
+-----------------------------------------+
| find_in_set('mysql','oracle,mysql,db2') |
+-----------------------------------------+
| 2 |
+-----------------------------------------+
1 row in set (0.00 sec)

1.5.2 返回指定字符串位置的field()函数:

函数定义为:

filed(str,str1,str2...)
//返回第一个与字符串str匹配的字符串的位置。

示例:

mysql> select field('mysql','oracle','db2','redis','mysql');
+-----------------------------------------------+
| field('mysql','oracle','db2','redis','mysql') |
+-----------------------------------------------+
| 4 |
+-----------------------------------------------+
1 row in set (0.00 sec)

1.5.3 返回子字符串相匹配的开始位置:

mysql中有三个函数可以获取子字符串相匹配的开始位置,分别是locate()、position()、instr()函数。

locate(str1,str) //返回参数str中字符串str1的开始位置

position(str1 in str) 和 instr(str,str1)

示例:

mysql> select locate('sql','mysql'),position('sql' in 'mysql'),instr('mysql','sql');
+-----------------------+----------------------------+----------------------+
| locate('sql','mysql') | position('sql' in 'mysql') | instr('mysql','sql') |
+-----------------------+----------------------------+----------------------+
| 3 | 3 | 3 |
+-----------------------+----------------------------+----------------------+
1 row in set (0.00 sec)

1.5.4 返回指定位置的字符串的elt()函数:

函数语法为:

elt(n,str1,str2...);

示例:

mysql> select elt(1,'mysql','db2','oracle');
+-------------------------------+
| elt(1,'mysql','db2','oracle') |
+-------------------------------+
| mysql |
+-------------------------------+
1 row in set (0.00 sec)

1.5.5

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05MySQL从MyISAM转换成InnoDB错误与常用解决办法
  • 2018-12-05sqlserver 快速生成汉字的首拼字母的函数(经典)
  • 2017-05-11mysql 跨表查询、更新、删除示例
  • 2017-05-11mysql 表索引的一些要点
  • 2018-12-05mysql死锁几种情况的测试_MySQL
  • 2017-05-11MySQL数据库服务器逐渐变慢分析与解决方法分享
  • 2018-12-05利用MySQL函数实现判断视频扩展名的代码
  • 2017-05-11MySQL-MMM安装指南(Multi-Master Replication Manager for MySQL)
  • 2018-12-05分页 SQLServer存储过程
  • 2018-12-05MyBatis3 用log4j在控制台输出 SQL( 数据库操作技巧)

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql 提示INNODB错误的解决方法
    • 详细介绍MySQL临时表与派生表
    • SQLServer转MYSQL的方法详解
    • MySql学习心得之存储过程
    • apache中访问不了伪静态页面的解决方法
    • Mysql使用大全 从基础到存储过程
    • mysql 存储过程的问题
    • sql编程的几个常识
    • MySQL表名不区分大小写的设置方法
    • MySQL如何实现多表查询?MySQL多表查询的语句

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有