-- 获取当前mysql的版本号
select VERSION();
-- 获取mysql服务器当前链接次数
SELECT CONNECTION_ID();
-- 展示当前运行的线程
/*
* ID 当前登录mysql时,系统分配的connection id。
* User 当前用户,如果不是root,就显示用户权限范围内的sql语句。
* Host 显示当前线程链接的用户ip和端口号。
* db 显示链接的是哪个数据库。
* Command 当前链接执行的命令,一般取值为休眠(Sleep)、查询(Query)、连接(Connect)。
* Time 显示当前状态持续的时间,单位秒。
* State 显示当前链接的Sql语句的状态,很重要。后续会显示所有状态的描述,Sate只是预计执行中的某个状态。一个sql语句,已查询为例,需要经过Copying to tmp table、Sorting result、Sending data等状态才可以完成。
* Info 显示当前的sql语句,是判断问题语句的重要依据。
*/
SHOW PROCESSLIST;
-- 返回使用utf8字符集的默认(当前)数据库名
SELECT DATABASE(),SCHEMA();
-- 获取当前用户名函数
SELECT CURRENT_USER,CURRENT_USER(),USER(),SYSTEM_USER(),SESSION_USER();
-- 获取字符串的字符集
SELECT CHARSET('abdc'), CHARSET(VERSION());
-- 获取字符串的字符排序方式,一般与数据库创建时的顺序一至,当然也可以单独指定某个某个表中的某个字段的排序不一直,一般不这么做。
SELECT COLLATION('abc');
-- 获取最后一个自动生成的id 的值的函数
/*
* 当使用insert into xxx values 一次插入多行时,不会出发这个值得更新,只计算为一次。当多次使用insert into是才会每次都触发。
* 获取的是最后一次执行自增的表的id。当执行a表insert后,查询获取的是a表的最后ID,接着执行b表insert后,查询获取的是b表的id。
* 只有自增id的表才有用。
*/
SELECT LAST_INSERT_ID()
CREATE table worker(ID int auto_increment not null primary key, name VARCHAR(30));
insert into worker VALUES(null,'jimy'),(null,'tom');
insert into worker VALUES(null,'lily');
insert into worker VALUES(null,'lucy');
insert into worker VALUES(null,'lucy1');
select * from worker;
CREATE table student(ID int auto_increment not null primary key, name VARCHAR(30));
insert into student VALUES(null,'jimy'),(null,'tom');
insert into student VALUES(null,'lily');
insert into student VALUES(null,'lucy');
insert into student VALUES(null,'lucy1');
insert into student VALUES(null,'lucy2');
insert into student VALUES(null,'lucy3');
select * from student;
CREATE table person(ID int not null primary key, name VARCHAR(30));
insert into person VALUES(1,'jimy'),(2,'tom');
insert into person VALUES(3,'lily');
select * from person;