博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql常用函数
阅读量:2448 次
发布时间:2019-05-10

本文共 2186 字,大约阅读时间需要 7 分钟。

 

Connection_id()

--返回当前连接的ID,每个连接都有一个单独的ID以示区别

mysql> SELECT CONNECTION_ID();

        -> 23786

 

Current_user()

返回实际登陆的用户名和主机信息,此决定了当前session的访问权限,返回字符串采用utf8

可能与user()不一样,其记录的是当前连接使用的用户名和主机信息

mysql> SELECT CURRENT_USER();

        -> '@localhost'

mysql> SELECT USER();

       -> 'davida@localhost'

 

在存储过程和视图里,如果没有指定sql security invokercurrent_user()返回定义此对象的用户definer,否则返回调用者invoker

而触发器和event没有sql security选项,故current_user()永远返回对象的definer,而user()/session_user()返回invoker

 

Database()

返回当前数据库名,如果没有责返回null,采用utf8字符集

 

Found_rows()

最近一次查询返回的行数

如果select采用limit,如果想知道去除limit返回的行数,可对select添加SQL_CALC_FOUND_ROWS关键字,在其后查询FOUND_ROWS()即可

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name

    -> WHERE id > 100 LIMIT 10;

mysql> SELECT FOUND_ROWS();

如果只有limitlimit 10—返回10limit 50,10—返回60

该函数使用statement复制不可靠,会自动选用row-based

 

Last_insert_id()

自动返回最后一个INSERT UPDATE 查询中 AUTO_INCREMENT列第一个生成的值

第一

此函数作用域为会话级别,即只对当前连接有效

mysql> SELECT LAST_INSERT_ID();

          -> 100

此值不能被其他会话读取

第二

该函数与表无关,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID返回表b中的Id

第三

假如你使用一条INSERT语句插入多个行,  LAST_INSERT_ID() 只返回插入的第一行数据时产生的值

第四

假如你使用 INSERT IGNORE而记录被忽略,则AUTO_INCREMENT 计数器不会增量,而 LAST_INSERT_ID() 返回0, 这反映出没有插入任何记录。

 

session_user()/system_user()/user()

效果一样,都是返回发起连接时指定的用户名

 

version()

返回mysql服务器版本,采用utf8字符集

 

row_count()

5.5.5之前,返回DML操作的行数;

5.5.5启,DDL返回0select返回-1;对于select into outfile/load data infile则返回操作的行数量;

 

concat(,..,)

连接字符参数,如果参数中有NULL则返回NULL

mysql> SELECT CONCAT('My', 'S', 'QL');

        -> 'MySQL'

mysql> SELECT CONCAT('My', NULL, 'QL');

        -> NULL

 

hex()/unhex()

返回给定参数的16进制

 

load_file()

读取参数指定的文件名并将文件内容以字符串形式返回;

此文件必须位于服务器上;

必须具有file权限;

文件必须小于max_allowed_packet

如果设定了secure_file_priv,文件必须位于此目录下;

如上述条件任何一个没有满足,则函数返回NULL

mysql> UPDATE t SET blob_col=LOAD_FILE('/tmp/picture')

                WHERE id=1;

 

cast()/convert()

将给定的表达式值转换为特定的数据类型

就是CAST(xxx AS 类型), CONVERT(xxx,类型)

mysql> SELECT CAST('3.35' AS signed);

+------------------------+

| CAST('3.35' AS signed) |

+------------------------+

|                      3 |

+------------------------+

1 row in set

 

 

NULLIF()

如果两个表达式相同则返回NULL,否则返回第一个表达式

mysql> SELECT NULLIF(1,1);

        -> NULL

mysql> SELECT NULLIF(1,2);

        -> 1

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-758260/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15480802/viewspace-758260/

你可能感兴趣的文章
Node.js VS Python:哪个更好?
查看>>
notebooks_.NET Core与Jupyter Notebooks预览1
查看>>
pvs-stdio ue4_华为云:如今PVS-Studio多云
查看>>
vc编程查找计算机运行记录_如何查找计算机的正常运行时间和安装日期
查看>>
steam无法显示成人内容_如何在Steam上查看仅限成人游戏
查看>>
轻松将图像上传到Photobucket
查看>>
如何在iPhone或iPad上启用USB受限模式(适用于iOS 11.4.1)
查看>>
注意:浏览器崩溃的技术支持弹出窗口又回来了
查看>>
如何在Ubuntu 11.10中安装Classic Gnome桌面
查看>>
亚马逊echo中国使用_如何阻止您的Amazon Echo收听
查看>>
linkedin 分享_如何永远阻止LinkedIn的烦人电子邮件
查看>>
ipad和iphone适配_如何在iPhone和iPad上将链接,照片和媒体快速添加到Apple Notes
查看>>
开源星空照片_如何拍摄星空的好照片
查看>>
usb延长线线序_我应该使用哪种延长线?
查看>>
亚马逊fire充不上电_因此,您只是拥有了Amazon Fire Tablet。 怎么办?
查看>>
如何安装和设置Kuna家用安全摄像机
查看>>
加密机是如何工作的_什么是加密,它如何工作?
查看>>
如何使用Google Assistant控制Xbox One
查看>>
图标缓存 vista_在Windows Vista中将Internet Explorer 7图标添加到桌面
查看>>
iexplore.exe_如何一次杀死所有iexplore.exe进程?
查看>>