五、全文搜索功能函数
a) 函数MATCH (col1,col2,...) AGAINST (expr [IN BOOLEAN MODE | WITH
QUERY EXPANSION])
六、加密函数
a) 函数AES_ENCRYPT(str ,key_str ) , AES_DECRYPT(crypt_str ,key_str )
函数使用说明:这些函数允许使用官方AES 进行加密和数据加密( 高级加密标准) 算
法, 即以前人们所熟知的“Rijndael” 。保密关键字的长度为128 比特,不过你可以通

过改变源而将其延长到256 比特。我们选择了128 比特的原因是它的速度要快得多,且对
于大多数用途而言这个保密程度已经够用。
b) 函数DECODE(crypt_str ,pass_str )
函数使用说明:使用pass_str 作为密码,解密加密字符串crypt_str , crypt_str 应该是由
ENCODE() 返回的字符串。
c) 函数ENCODE(str ,pass_str )
函数使用说明:使用pass_str 作为密码,解密str 。使用DECODE() 解密结果。
d) 函数DES_DECRYPT(crypt_str [,key_str ])
函数使用说明:使用DES_ENCRYPT() 加密一个字符串。若出现错误,这个函数会返回
NULL 。
e) 函数DES_ENCRYPT(str [,(key_num |key_str )])
函数使用说明:用Triple-DES 算法给出的关键字加密字符串。若出现错误,这个函数会返
回NULL 。
f) 函数ENCRYPT(str [,salt ])
函数使用说明:使用Unix crypt() 系统调用加密str 。salt 参数应为一个至少包含2 个字
符的字符串。若没有给出salt 参数,则使用任意值。
g) 函数MD5(str )
函数使用说明:为字符串算出一个MD5 128 比特检查和。该值以32 位十六进制数字的二
进制字符串的形式返回, 若参数为NULL 则会返回NULL 。例如,返回值可被用作散列
关键字
h) 函数OLD_PASSWORD(str )
函数使用说明:当PASSWORD() 的执行变为改善安全性时, OLD_PASSWORD() 会被添
加到MySQL 。OLD_PASSWORD() 返回从前的PASSWORD() 执行值( 4.1 之前) ,同
时允许你为任何4.1 之前的需要连接到你的5.1 版本MySQL 服务器前客户端设置密码,
从而不至于将它们切断
i) 函数PASSWORD(str )
函数使用说明:从原文密码str 计算并返回密码字符串,当参数为NULL 时返回NULL 。
这个函数用于用户授权表的Password 列中的加密MySQL 密码存储

七、信息函数
a) 函数BENCHMARK(count ,expr )
函数使用说明: BENCHMARK() 函数重复count 次执行表达式expr 。它可以被用于计
算MySQL 处理表达式的速度。结果值通常为0 。另一种用处来自mysql 客户端内部,
能够报告问询执行的次数
b) 函数CHARSET(str )
函数使用说明:返回字符串自变量的字符集。
c) 函数COERCIBILITY(str )
函数使用说明:返回字符串自变量的整序可压缩性值。
d) 函数COLLATION(str )
函数使用说明:返回惠字符串参数的排序方式。
e) 函数CONNECTION_ID()
函数使用说明:返回对于连接的连接ID ( 线程ID) 。每个连接都有各自的唯一ID 。
f) 函数CURRENT_USER, CURRENT_USER()
函数使用说明:返回当前话路被验证的用户名和主机名组合。这个值符合确定你的存取权限
的MySQL 账户。在被指定SQL SECURITY DEFINER 特征的存储程序内,
CURRENT_USER() 返回程序的创建者
g) 函数DATABASE()
函数使用说明:返回使用utf8 字符集的默认( 当前) 数据库名。在存储程序里,默认数
据库是同该程序向关联的数据库,但并不一定与调用语境的默认数据库相同。
h) 函数FOUND_ROWS()
函数使用说明: A SELECT 语句可能包括一个LIMIT 子句,用来限制服务器返回客户端
的行数。在有些情况下,需要不用再次运行该语句而得知在没有LIMIT 时到底该语句返回
了多少行。为了知道这个行数, 包括在SELECT 语句中选择
SQL_CALC_FOUND_ROWS ,随后调用FOUND_ROWS()
i) 函数LAST_INSERT_ID() LAST_INSERT_ID(expr )

函数使用说明:自动返回最后一个INSERT 或UPDATE 问询为AUTO_INCREMENT 列
设置的第一个发生的值。
j) 函数ROW_COUNT()
函数使用说明: ROW_COUNT() 返回被前面语句升级的、插入的或删除的行数。这个行
数和mysql 客户端显示的行数及mysql_affected_rows() C API 函数返回的值相同。
k) 函数SCHEMA()
函数使用说明:这个函数和DATABASE() 具有相同的意义
l) 函数SESSION_USER()
函数使用说明: SESSION_USER() 和USER() 具有相同的意义。
m) 函数SYSTEM_USER()
函数使用说明: SYSTEM_USER() 合USER() 具有相同的意义
n) 函数USER()
函数使用说明:返回当前MySQL 用户名和机主名
o) 函数VERSION()
函数使用说明:返回指示MySQL 服务器版本的字符串。这个字符串使用utf8 字符集。
八、其他函数
a) 函数DEFAULT(col_name )
函数使用说明:返回一个表列的默认值。若该列没有默认值则会产生错误。
b) 函数FORMAT(X ,D )
函数使用说明:将数字X 的格式写为'#,###,###.##', 以四舍五入的方式保留小数点后D
位, 并将结果以字符串的形式返回。若D 为0, 则返回结果不带有小数点,或不含小数
部分。
c) 函数GET_LOCK(str ,timeout )
函数使用说明:设法使用字符串str 给定的名字得到一个锁, 超时为timeout 秒。若成功

得到锁,则返回1 ,若操作超时则返回0 ( 例如, 由于另一个客户端已提前封锁了这个
名字), 若发生错误则返回NULL ( 诸如缺乏记忆或线程mysqladmin kill 被断开) 。假如
你有一个用GET_LOCK() 得到的锁,当你执行RELEASE_LOCK() 或你的连接断开( 正
常或非正常) 时,这个锁就会解除
d) 函数INET_ATON(expr )
函数使用说明:给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的
整数。地址可以是4 或8 比特地址。
e) 函数INET_NTOA(expr )
函数使用说明:给定一个数字网络地址(4 或8 比特), 返回作为字符串的该地址的电地址
表示
f) 函数IS_FREE_LOCK(str )
函数使用说明:检查名为str 的锁是否可以使用( 换言之, 没有被封锁) 。若锁可以使用,
则返回1 ( 没有人在用这个锁), 若这个锁正在被使用,则返回0 ,出现错误则返回
NULL ( 诸如不正确的参数) 。
g) 函数IS_USED_LOCK(str )
函数使用说明:检查名为str 的锁是否正在被使用( 换言之, 被封锁) 。若被封锁,则返
回使用该锁的客户端的连接标识符。否则返回NULL 。
h) 函数MASTER_POS_WAIT(log_name ,log_pos [,timeout ])
函数使用说明:该函数对于控制主从同步很有用处。它会持续封锁,直到从设备阅读和应用
主机记录中所有补充资料到指定的位置。返回值是其为到达指定位置而必须等待的记录事件
的数目。若从设备SQL 线程没有被启动、从设备主机信息尚未初始化、参数不正确或出现
任何错误, 则该函数返回NULL 。若超时时间被超过, 则返回-1 。若在
MASTER_POS_WAIT() 等待期间,从设备SQL 线程中止,则该函数返回NULL 。若从设
备由指定位置通过,则函数会立即返回结果。
i) 函数NAME_CONST(name ,value )
函数使用说明:返回给定值。当用来产生一个结果集合列时, NAME_CONST() 促使该列
使用给定名称。
j) 函数RELEASE_LOCK(str )
函数使用说明:解开被GET_LOCK() 获取的,用字符串str 所命名的锁。若锁被解开,则
返回1 ,若改线程尚未创建锁,则返回0 ( 此时锁没有被解开), 若命名的锁不存在,

则返回NULL 。若该锁从未被对GET_LOCK() 的调用获取,或锁已经被提前解开,则该
锁不存在。
k) 函数SLEEP(duration )
函数使用说明:睡眠( 暂停) 时间为duration 参数给定的秒数,然后返回0 。若SLEEP()
被中断, 它会返回1 。duration 或许或包括一个给定的以微秒为单位的分数部分。
l) 函数UUID()
函数使用说明:返回一个通用唯一标识符(UUID) , UUID 被设计成一个在时间和空间上
都独一无二的数字。2 个对UUID() 的调用应产生2 个不同的值,即使这些调用的执行
是在两个互不相连的单独电脑上进行。
m) 函数VALUES(col_name )
函数使用说明:在一个INSERT … ON DUPLICATE KEY UPDATE … 语句中,你可以在
UPDATE 子句中使用VALUES(col_name ) 函数,用来访问来自该语句的INSERT 部分的
列值。换言之, UPDATE 子句中的VALUES(col_name ) 访问需要被插入的col_name 的
值, 并不会发生重复键冲突。这个函数在多行插入中特别有用。VALUES() 函数只在
INSERT ... UPDATE 语句中有意义,而在其它情况下只会返回NULL
九、聚合函数
a) 函数AVG([DISTINCT] expr )
函数使用说明:返回expr 的平均值。DISTINCT 选项可用于返回expr 的不同值的平均
值。
b) 函数BIT_AND(expr )
函数使用说明:返回expr 中所有比特的bitwise AND 。计算执行的精确度为64 比特
(BIGINT) 。若找不到匹配的行,则这个函数返回18446744073709551615 。( 这是无符号
BIGINT 值,所有比特被设置为1 )。
c) 函数BIT_OR(expr )
函数使用说明:返回expr 中所有比特的bitwise OR 。计算执行的精确度为64 比特
(BIGINT) 。若找不到匹配的行,则函数返回0 。
d) 函数BIT_XOR(expr )
函数使用说明:返回expr 中所有比特的bitwise XOR 。计算执行的精确度为64 比特

(BIGINT) 。若找不到匹配的行,则函数返回0 。
e) 函数COUNT(expr )
函数使用说明:返回SELECT 语句检索到的行中非NULL 值的数目。若找不到匹配的行,
则COUNT() 返回0
f) 函数COUNT(DISTINCT expr ,[expr ...])
函数使用说明:返回不同的非NULL 值数目。若找不到匹配的项,则COUNT(DISTINCT) 返
回0
g) 函数GROUP_CONCAT(expr )
函数使用说明:该函数返回带有来自一个组的连接的非NULL 值的字符串结果。其完整的
语法如下所示:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr }
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val ])
h) 函数MIN([DISTINCT] expr ), MAX([DISTINCT] expr )
函数使用说明:返回expr 的最小值和最大值。MIN() 和MAX() 的取值可以是一个字符
串参数;在这些情况下, 它们返回最小或最大字符串值。
i) 函数STD(expr ) STDDEV(expr )
函数使用说明:返回expr 的总体标准偏差。这是标准SQL 的延伸。这个函数的STDDEV()
形式用来提供和Oracle 的兼容性。可使用标准SQL 函数STDDEV_POP() 进行代替
j) 函数STDDEV_POP(expr )
函数使用说明:返回expr 的总体标准偏差(VAR_POP() 的平方根) 。你也可以使用STD()
或STDDEV(), 它们具有相同的意义,然而不是标准的SQL 。若找不到匹配的行,则
STDDEV_POP() 返回NULL
k) 函数STDDEV_SAMP(expr )
函数使用说明:返回expr 的样本标准差( VAR_SAMP() 的平方根) 。若找不到匹配的行,

则STDDEV_SAMP() 返回NULL
l) 函数SUM([DISTINCT] expr )
函数使用说明:返回expr 的总数。若返回集合中无任何行,则SUM() 返回NULL 。
DISTINCT 关键词可用于MySQL 5.1 中,求得expr 不同值的总和。若找不到匹配的行,
则SUM() 返回NULL
m) 函数VAR_POP(expr )
函数使用说明:返回expr 总体标准方差。它将行视为总体,而不是一个样本, 所以它将
行数作为分母。你也可以使用VARIANCE(), 它具有相同的意义然而不是标准的SQL
n) 函数VAR_SAMP(expr )
函数使用说明:返回expr 的样本方差。更确切的说,分母的数字是行数减去1 。若找不到
匹配的行,则VAR_SAMP() 返回NULL
o) 函数VARIANCE(expr )
函数使用说明:返回expr 的总体标准方差。这是标准SQL 的延伸。可使用标准SQL 函数
VAR_POP() 进行代替。若找不到匹配的项,则VARIANCE() 返回NULL