MySQL concat用法举例

Posted 90500042陈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL concat用法举例相关的知识,希望对你有一定的参考价值。

concat配合information_schema的应用

 

1    concat的一般用法主要是用于拼接

示例:

执行语句 SELECT CONCAT(\'M\',\'y\',\'S\',\'Q\',\'L\') 可以达到如下效果

 

 2  在写SQL备份语句时,假定要导出三张表分别为world下的

之前我们写备份语句要写三条 分别要导出这三张表;语句分别为

mysqldump -uroot -p123 world city >/tmp/world_city.sql
mysqldump -uroot -p123 world country >/tmp/world_country.sql
mysqldump -uroot -p123 world countrylanguage >/tmp/world_countrylanguage.sql
View Code

 

但是这是特定语句,如果该库下有3000张表呢,30000张呢;为此这种导出方式不是最好的方式;为此我们可以将concat与information_schema联系起来

SELECT CONCAT(\'mysqldump -uroot -p123 \',table_schema,\' \',table_name,\' >/tmp/\',table_schema,\'_\',table_name,\'.sql\') FROM 
information_schema.tables WHERE table_schema=\'world\';
View Code

请注意期中的一些细节:

\' \' 引号中间有空格的话是表示空格,table_schema表示数据库名

table_name表示表名;这些属性在information_schema都可以找到

这是初始的写法;执行效果如下

 

 

最后处理的方式:语句写出来了,达到我们要的效果了;如果将来这个库当中有其他表就会新增到concat的输出语句

 

以上还不是最佳的效果

我们最好是将输出的语句导出到指定文件

第一次执行会报错;

处理方式如下:在/etc/my.cnf下新增语句 指定安全路径

secure-file-priv=/tmp 并重启数据库后生效/etc/init.d/mysqld restart

 

 重新执行语句不再报错

 

 

在终端查看效果如下:

 

该脚本可以直接用sh 执行 执行完就会备份这4个表了

 

新的示例1:创建world下所有表的备份表

USE world
-- 给world数据下每个表创建备份表
SHOW TABLES;

-- 原先写法
CREATE TABLE nod_bak LIKE nod;
USE world
SHOW TABLES;
DROP TABLE nod_bak

-- 使用concat
SELECT CONCAT(\'create table \',table_name,\'_bak like \',table_name,\';\') FROM information_schema.tables 
WHERE table_schema=\'world\'
INTO OUTFILE \'/tmp/world_bak.sql\'
View Code

 

新的示例2 :删除world下所有的bak后缀的表

SELECT CONCAT(\'drop table \',table_name,\'_bak\',\';\') FROM information_schema.`TABLES`
WHERE table_schema=\'world\'
INTO OUTFILE \'/tmp/del_bak.sql\';
View Code

 

 

 

 

关于oracle 和concat有关的内容

https://www.cnblogs.com/nodchen/p/10036189.html

以上是关于MySQL concat用法举例的主要内容,如果未能解决你的问题,请参考以下文章

MySQL之concat的用法

MySQL的concat以及group_concat的用法

mysql group_concat用法

mysql中concat 和 group_concat()的用法

mysql中concat 和 group_concat()的用法

Mysql concat() group_concat()用法