香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > MYSQL >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

MySQL 常用的拼接语句汇总


时间:2020-11-03 13:48 作者:admin610456


前言:在mysql/' target='_blank'>mysql中 CONCAT ()函数用于将多个字符串连接成一个字符串,利用此函数我们可以将原来一步无法得到的sql拼接出来,在工作中也许会方便很多,下面主要介绍下几个常用的场景。

注:适用于5.7版本 低版本可能稍许不同。

1.拼接查询所有用户

SELECT DISTINCT  CONCAT(    'User: \'',    USER,    '\'@\'',    HOST,    '\';'  ) AS QUERYFROM  MySQL.USER;# 当拼接字符串中出现'时 需使用\转义符

2.拼接DROP table

SELECT  CONCAT(    'DROP table ',    TABLE_NAME,    ';'  )FROM  information_schema. TABLESWHERE  TABLE_SCHEMA = 'test';

3.拼接kill连接

SELECT  concat('KILL ', id, ';')FROM  information_schema. PROCESSLISTWHERE  STATE LIKE 'Creating sort index';

4.拼接创建数据库语句

SELECT  CONCAT(    'create database ',    '`',  SCHEMA_NAME,  '`',  ' DEFAULT CHARACTER SET ',  DEFAULT_CHARACTER_SET_NAME,    ';'  ) AS CreateDatabaseQueryFROM  information_schema.SCHEMATAWHERE  SCHEMA_NAME NOT IN (    'information_schema',    'performance_schema',    'mysql',    'sys'  );

5.拼接创建用户的语句

SELECT  CONCAT(    'create user \'',  user,  '\'@\'',  Host,  '\''  ' IDENTIFIED BY PASSWORD \'',  authentication_string,    '\';'  ) AS CreateUserQueryFROM  mysql.`user`WHERE  `User` NOT IN (    'root',    'mysql.session',    'mysql.sys'  );#有密码字符串哦 在其他实例执行 可直接创建出与本实例相同密码的用户

6.导出权限脚本 这个shell脚本也用到了拼接

#!/bin/bash #Function export user privileges pwd=yourpass expgrants() {  mysql -B -u'root' -p${pwd} -N $@ -e "SELECT CONCAT( 'SHOW GRANTS FOR ''', user, '''@''', host, ''';' ) AS query FROM mysql.user" | \ mysql -u'root' -p${pwd} $@ | \ sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/-- \1 /;/--/{x;p;x;}' } expgrants > /tmp/grants.sqlecho "flush privileges;" >> /tmp/grants.sql

7.查找表碎片

SELECT t.TABLE_SCHEMA,    t.TABLE_NAME,    t.TABLE_ROWS,    concat(round(t.DATA_LENGTH / 1024 / 1024, 2), 'M') AS size,    t.INDEX_LENGTH,    concat(round(t.DATA_FREE / 1024 / 1024, 2), 'M') AS datafreeFROM information_schema.tables tWHERE t.TABLE_SCHEMA = 'test' order by DATA_LENGTH desc;

8.查找无主键表 这个没用到拼接 也分享出来吧

#查找某一个库无主键表SELECTtable_schema,table_nameFROM  information_schema.TABLESWHERE  table_schema = 'test'AND TABLE_NAME NOT IN (  SELECT    table_name  FROM    information_schema.table_constraints t  JOIN information_schema.key_column_usage k USING (    constraint_name,    table_schema,    table_name  )  WHERE    t.constraint_type = 'PRIMARY KEY'  AND t.table_schema = 'test');#查找除系统库外 无主键表SELECT  t1.table_schema,  t1.table_nameFROM  information_schema. TABLES t1LEFT OUTER JOIN information_schema.TABLE_CONSTRAINTS t2 ON t1.table_schema = t2.TABLE_SCHEMAAND t1.table_name = t2.TABLE_NAMEAND t2.CONSTRAINT_NAME IN ('PRIMARY')WHERE  t2.table_name IS NULLAND t1.TABLE_SCHEMA NOT IN (  'information_schema',  'performance_schema',  'mysql',  'sys') ;

以上就是MySQL 常用的拼接语句汇总的详细内容,更多关于MySQL 拼接语句的资料请关注脚本之家其它相关文章!

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)