一、获取MySQL版本号
- version();
二、查看当前MySQL服务器连接的次数,每个连接都有自己唯一的ID
- connection_id();
三、查看当前用户的连接信息
- processlist;
- Id:用户ID
- User:用户名。如果不是root就只显示用户权限范围内的SQL语句
- Host:显示哪个IP的哪个端口连接的
- db:使用的数据库
- Command:显示当前用户连接的状态。休眠(sleep),查询(query),连接(connect)
- Time:显示连接持续的时间,单位:秒
- State:当前用户的连接的SQL语句状态,代表语句执行时处于的某一状态。例如:查询时,需要经过copying to tmp table=>sorting result=>sending data..等才能够完成
- Info:显示这个SQL语句,是判断问题语句的一个重要依据
四、查看当前使用的数据库
- database();
- schema();
五、获取用户名
- user();
- current_user();
- system_user();
六、返回字符串的字符集
- charset(str);
- 当前数据库默认字符集为bgk。version()函数返回值为utf8
七、改变字符集的函数
- convert(str using 字符集); //将str转换为对应的字符集
八、返回字符串的排列方式
- collation(str);
- 不同的字符集排列方式不同
九、获取最后一个自动生成的ID值
- last_insert_id();
- 该函数自动返回最后一个insert或update语句为auto_increment列设置的第一发生的值
- 一次只更新一条数据和更新多条数据得到的内容是不一样的
- last_insert_id();与表无关,只是得到系统最后一条insert或update的值而已
例如:有一个表worker(),id段为auto_increment
建表:create table worker(id int auto_increment not null primary key,name varchar(30));
一次只插入一条数据:
- 插入数据:insert into worker values(NULL,'jimy');
- 插入数据:insert into worker values(NULL,'Tom');
- 然后用last_insert_id()获取值,得到最后一个insert语句的值
一次插入多条数据
- 插入多条数据:insert into worker values(NULL,'kevin'),(NULL,'Michal');
- 然后得到最后一个auto_increment列的值
- 然后用last_insert_id()获取值,得到insert语句插入的第一个值