| 副标题[/!--empirenews.page--]
                        【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》  前言: 日常工作或学习过程中,我们可能会经常用到某些SQL,建议大家多多整理记录下这些常用的SQL,这样后续用到会方便很多。笔者在工作及学习过程中也整理了下个人常用的SQL,现在分享给你!可能有些SQL你还不常用,但还是希望对你有所帮助,说不定某日有需求就可以用到。 
 注:下文分享的SQL适用于MySQL 5.7 版本,低版本可能稍许不同。有些SQL可能执行需要较高权限。 1.show相关语句 # 查看实例参数 例如: show variables like '%innodb%'; show global variables like '%innodb%'; # 查看实例状态,例如: show status like 'uptime%'; show global status like 'connection%'; # 查看数据库链接: show processlist; show full processlist; # 查询某个表的结构: show create table tb_name; # 查询某个表的详细字段信息: show full columns from tb_name; # 查询某个表的全部索引信息: show index from tb_name; # 查询某个库以cd开头的表: show tables like 'cd%'; # 查询某个库中的所有视图: show table status where comment='view'; # 查询某个用户的权限: show grants for 'test_user'@'%'; 
 2.查看账户相关信息 # 这里先介绍下CONCAT函数:在MySQL中 CONCAT()函数用于将多个字符串连接成一个字符串, 利用此函数我们可以将原来一步无法得到的sql拼接出来,后面部分语句有用到该函数。 # 当拼接字符串中出现''时 需使用转义符 # 查看所有用户名: SELECT DISTINCT  CONCAT(  'User: '',  user,  ''@'',  host,  '';'  ) AS QUERY FROM  mysql.user; # 查看用户详细信息: SELECT user,  host,  authentication_string,  password_expired,  password_lifetime,  password_last_changed,  account_locked  FROM  mysql.user; 
 3.KILL数据库链接 # 下面列举SQL只是拼接出kill 链接的语句,若想执行 直接将结果复制执行即可。 # 杀掉空闲时间大于2000s的链接: SELECT  concat( 'KILL ', id, ';' )  FROM  information_schema.`PROCESSLIST`  WHERE  Command = 'Sleep'   AND TIME > 2000;   # 杀掉处于某状态的链接: SELECT  concat( 'KILL ', id, ';' )  FROM  information_schema.`PROCESSLIST`  WHERE  STATE LIKE 'Creating sort index';   # 杀掉某个用户的链接: SELECT  concat( 'KILL ', id, ';' )  FROM  information_schema.`PROCESSLIST`  WHERE  where user='root'; 
 4.拼接创建数据库或用户语句 # 拼接创建数据库语句(排除系统库): SELECT  CONCAT(  'create database ',  '`',  SCHEMA_NAME,  '`',  ' DEFAULT CHARACTER SET ',  DEFAULT_CHARACTER_SET_NAME,  ';'  ) AS CreateDatabaseQuery FROM  information_schema.SCHEMATA WHERE  SCHEMA_NAME NOT IN (  'information_schema',  'performance_schema',  'mysql',  'sys'  );   # 拼接创建用户语句(排除系统用户): SELECT  CONCAT(  'create user '',  user,  ''@'',  Host,  '''  ' IDENTIFIED BY PASSWORD '',  authentication_string,  '';'  ) AS CreateUserQuery FROM  mysql.`user` WHERE  `User` NOT IN (  'root',  'mysql.session',  'mysql.sys'  ); # 有密码字符串哦 在其他实例执行 可直接创建出与本实例相同密码的用户。 
 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |