18.4.1 系统信息函数
MySQL支持的常用系统信息函数有:
函数 | 作用 |
---|---|
VERSION() | 返回数据库的版本号 |
DATABASE() | 返回当前数据库 |
USER() | 返回当前用户 |
LAST_INSERT_ID() | 返回最近生成的AUTO_INCREMENT值 |
(1) 获取MySQL系统信息
mysql> select version() 版本号,
-> DATABASE() 数据库名,
-> USER() 用户名;
(2) 获取AUTO_INCREMENT约束的最后ID值
在MySQL中经常会设置一个名为ID的字段,同时还会设置该字段为主键和自动增长(AUTO_INCREMENT)约束。在具体应用中,由于主键ID的值由MySQL软件来控制而不是用户来输入,所以有时候需要查看最后生成的具有AUTO_INCREMENT约束字段的值。
为了实现上述功能,MySQL专门提供了LAST_INSERT_ID()函数。
第一步:创建一个表autoincrement
mysql> create table autoincrement(ID INT(11) NOT NULL AUTO_INCREMENT UNIQUE);
说明:创建了一个autoincrement表,该表只有一个字段ID,并且字段ID为主键并具有自动增加的约束。
第二步:向autoincrement表中插入4条测试数据
mysql> insert into autoincrement values(NULL);
Query OK, 1 row affected (0.10 sec)mysql> insert into autoincrement values(NULL);
Query OK, 1 row affected (0.10 sec)mysql> insert into autoincrement values(NULL);
Query OK, 1 row affected (0.06 sec)mysql> insert into autoincrement values(NULL);
Query OK, 1 row affected (0.05 sec)
第三步:执行SQL语句LAST_INSERT_ID()函数,获取自动增长最后生成的ID值
mysql> select LAST_INSERT_ID();
18.4.2 其他函数
MySQL除了提供之前提到的常见函数之外,还提供了许多其他函数,分别是流程函数和实现特殊功能的函数
MySQL支持的流程函数有:
函数 | 作用 |
---|---|
IF(value,t f) | 如果value为真,则返回t,否则返回f |
IFNULL(value1,value2) | 如果value1不为空则返回value1,否则返回value2 |
CASE WHEN [value1] THEN [result1] … ELSE [default] | 如果value1为真,则返回result1,否则返回default |
CASE [expr] WHEN [value1] THEN [result1]… ELSE [default] | 如果expr等于value1,则返回result1,否则返回default |
MySQL支持的实现特殊功能的函数有:
函数 | 作用 |
---|---|
PASSWORD(str) | 实现对字符串str进行加密 |
FORMAT(x,n) | 实现将数字x进行格式化,保留n位小数 |
INET_ATON(ip) | 实现将ip地址转换成数字 |
INET_NTOA(ip) | 实现将数字转换成IP |
GET_LOCT(name,time) | 创建一个持续时间time的名为name的锁 |
RELEASE_LOCT(name) | 为名为name的锁进行解锁 |
BENCHMARK(count,expr) | 实现将表达式重复执行count次 |
CONVERT(s USING cs) | 实现将字符串s的字符集变成cs |
CONVERT(x,type) | 实现将x变成type类型 |