zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    find the safest road HDU
    分页存储过程
    .NET Core与.NET Framework、Mono之间的关系
    winForm开发
    面试题目总结
    sqlserver锁表、解锁、查看锁表
    架构漫谈(四):如何做好架构之架构切分
    多线程讲解
    递归菜单简单应用
    杂记
  • 原文地址:https://www.cnblogs.com/nodchen/p/9407210.html
Copyright © 2011-2022 走看看