MySQL函数——系统信息函数

    系统信息函数
        MySQL中的系统信息有:数据库的版本号、当前用户名和连接数、系统字符集、最后一个自动生成的ID值等。
        1.获取MySQL版本号、连接数和数据库名的函数。
            a.version()返回指示MySQL服务器版本的字符串。这个字符串使用utf8字符集。
                案例:查看当前MySQL版本号,SQL语句如下:
                    SELECT VERSION();
            
            b.connection_id()返回MySQL服务器当前连接的次数,每个连接都有各自唯一的ID。
                案例:查看当前用户的连接数,SQL语句如下:
                    SELECT CONNECTION_ID();
                    
            c.processlist命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态,帮助识别出有问题的查询语句等。如果是root账号,能看到所有用户的当前连接。如果是普通账号,则只能看到自己占用的连接。show processlist;只列出前100条,如果想全部列出可使用show full processlist;命令。
                案例:使用show processlist命令输出当前用户的连接信息,SQL语句如下:
                    SHOW PROCESSLIST;    
            
            d.datebase()和schema()函数返回使用utf8字符集的默认(当前)数据库名。
                案例:查看当前使用的数据库,SQL语句如下:
                    SELECT DATABASE(), SCHEMA();
            
        2.获取用户名的函数
            user()、current_user、system_user()和session_user()这几个函数返回当前被MySQL服务器验证的用户名和主机名的组合。这个值符合确定当前登录用户存取权限的MySQL账户。一般情况下,这几个函数的返回值是相同的。
                案例:过去当前登录用户名称,SQL语句如下:
                    SELECT USER(), CURRENT_USER(), SYSTEM_USER(), SESSION_USER();
            
        3.获取字符串的字符集和排序方式的函数
            a.charset(str)返回字符串str自变量的字符集。
                案例:使用charset()函数返回字符串使用的字符集,SQL语句如下:
                    SELECT CHARSET('abc'), CHARSET(CONVERT( 'abc' USING LATIN1)), CHARSET(VERSION());
        
            b.collation(str)返回字符串str的字符排列方式。
                案例:使用collation()函数返回字符串排列方式,SQL语句如下:
                    SELECT COLLATION('abc'), COLLATION(CONVERT( 'abc' USING UTF8));
        
        4.获取最后一个自动生成的ID值的函数
            last_insert_id()自动返回最后一个insert或者update为auto_increment列设置的第一个发生的值。
                案例:使用select last_insert_id查看最后一个自动生成的列值,执行过程如下:
                    1.一次插入一条记录
                        首先创建表worker,其id字段带有auto_increment约束,SQL语句如下:
                            CREATE TABLE worker (
                                id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
                                name VARCHAR(30)
                            );
                        分别向表worker中插入两条记录:
                            insert into worker values(null,'Jack');
                            insert into worker values(null,'Tom');
                        使用last_insert_id()查看最后自动生成的id值,SQL语句如下:
                            SELECT LAST_INSERT_ID();
                    
                    2.一次性同时插入多条记录
                        向表中插入多条记录,SQL语句如下:
                            insert into worker values(null,'Kevin'),(null,'Michal'),(null,'Nick');
                        使用last_insert_id()查看最后自动生成的id值,SQL语句如下:
                            SELECT LAST_INSERT_ID();
                        (注:last_insert_id是与table无关的,如果向a表插入数据后,再向b表插入数据,last_insert_id返回b中的id值。)

 

你可能感兴趣的:(MySql)