MySQL常用拼接语句有哪些

66次阅读
没有评论

共计 2317 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章给大家分享的是有关 MySQL 常用拼接语句有哪些的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

1. 拼接查询所有用户

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

2. 拼接 DROP table

SELECT
 CONCAT(
  DROP table  ,
 TABLE_NAME,
  
 )
 information_schema. TABLES
WHERE
 TABLE_SCHEMA =  test

3. 拼接 kill 连接

SELECT
 concat(KILL  , id, )
 information_schema. PROCESSLIST
WHERE
 STATE LIKE  Creating sort index

4. 拼接创建数据库语句

SELECT
 CONCAT(
  create database  ,
  ` ,
 SCHEMA_NAME,
  ` ,
   DEFAULT CHARACTER SET  ,
 DEFAULT_CHARACTER_SET_NAME,
  
 ) AS CreateDatabaseQuery
 information_schema.SCHEMATA
WHERE
 SCHEMA_NAME NOT IN (
  information_schema ,
  performance_schema ,
  mysql ,
  sys 
 );

5. 拼接创建用户的语句

SELECT
 CONCAT(
  create user \ ,
 user,
  \ @\ ,
 Host,
  \ 
   IDENTIFIED BY PASSWORD \ ,
 authentication_string,
  \ 
 ) AS CreateUserQuery
 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.sql
echo  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 datafree
FROM information_schema.tables t
WHERE t.TABLE_SCHEMA =  test  order by DATA_LENGTH desc;

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

# 查找某一个库无主键表
SELECT
table_schema,
table_name
 information_schema.TABLES
WHERE
 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_name
 information_schema. TABLES t1
LEFT OUTER JOIN information_schema.TABLE_CONSTRAINTS t2 ON t1.table_schema = t2.TABLE_SCHEMA
AND t1.table_name = t2.TABLE_NAME
AND t2.CONSTRAINT_NAME IN (PRIMARY)
WHERE
 t2.table_name IS NULL
AND t1.TABLE_SCHEMA NOT IN (
  information_schema ,
  performance_schema ,
  mysql ,
  sys 
) ;

感谢各位的阅读!关于“MySQL 常用拼接语句有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计2317字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)