MySQL:18---MySQL系统信息函数

一、获取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语句插入的第一个值

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/88051272