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

但是这是特定语句,如果该库下有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';

请注意期中的一些细节:

' ' 引号中间有空格的话是表示空格,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'

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

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

关于oracle 和concat有关的内容

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

MySQL concat用法举例的更多相关文章

  1. ThinkPHP第十一天(关联模型使用,独立分组配置,MySQL concat用法)

    1.关联模型的使用 定义方式:新建一个类文件UserRelationModel.class.php Class UserRelationModel extends RelationModel{ pro ...

  2. mysql CONCAT用法

    1.全表查询 SELECT * FROM `wh_statistics_service_api_request`; 由于上面时间是按year,month,day三个数值字段来存时间的,现在想通过时间段 ...

  3. mysql的concat用法

    问题提出:mybatis的mapper文件中的模糊查询: mysql CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一,下面就将为您详细介绍mysql CONCAT( ...

  4. 知识点:Mysql 基本用法之函数

    函数 MySQL中提供了许多内置函数 例如: sql 内置函数: 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种 ...

  5. 知识点:Mysql 基本用法之触发器

    触发器 使用触发器可以定制用户对表进行[增.删.改]操作时前后的行为 注意:没有查询 一 .创建触发器 触发器基础语法: # 插入前 CREATE TRIGGER tri_before_insert_ ...

  6. 【转载】 mysql explain用法

    转载链接:  mysql explain用法 官网说明:     http://dev.mysql.com/doc/refman/5.7/en/explain-output.html 参数:  htt ...

  7. 连接列值 mysql CONCAT函数

    mysql concat(str1,str2,...) 返回结果为连接参数产生的字符串,如果任何一个参数带有null,则返回结果为null.如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如 ...

  8. MySQL concat函数的使用

    MySQL concat函数是MySQL数据库中众多的函数之一,下文将对MySQL concat函数的语法和使用进行说明,供您参考和学习. MySQL concat函数使用方法:CONCAT(str1 ...

  9. c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例

    c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1 ...

随机推荐

  1. python查看文件的编码格式

    pip install chardet 执行 import chardet f = open('a.doc',r) data = f.read() print chardet.detect(data) ...

  2. Wrapper class webservice.jaxws.SayHi is not found. Have you run APT to generate them?

    最近在研究webservice,利用jdk来实现简单的webservice发布,但是运行时却发生了这样的异常,如下: Exception in thread "main" com. ...

  3. springloaded hot deploy

    download springloaded jar file -Dfile.encoding=utf-8 -javaagent:e:\\libs\\springloaded-1.2.5.jar -no ...

  4. Python 第三方库 进度条模块 tqdm的使用方法

    使用方法一: tqdm tqdm(list)方法可以传入任意一种list,比如数组,同时tqdm中不仅仅可以传入list, 同时可以传入所有带len方法的可迭代对象,这里只以list对象为例: fro ...

  5. 20155216 2016-2017-2 《Java程序设计》第五周学习总结

    20155216 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 使用try,catch,finally处理异常 JVM会尝试执行try区块中的程序代码,如果 ...

  6. 利用Fierce2查询子域名

    http://pnig0s1992.blog.51cto.com/393390/368428 安装方法引用Mickey的: 1.Mickey@pentestbox:/pentest/enumerati ...

  7. arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf等的区别

    博客来之于:  http://www.veryarm.com/296.html 命名规则: 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - ...

  8. hasura graphql server event trigger 试用

    hasura graphql server 是一个很不错的graphql 引擎,当前版本已经支持event triiger 了 使用此功能我们可以方便的集成webhook功能,实现灵活,稳定,快捷的消 ...

  9. NTLM 了解

    NTLM是NT LAN Manager的缩写,这也说明了协议的来源.NTLM 是 Windows NT 早期版本的标准安全协议,Windows 2000 支持 NTLM 是为了保持向后兼容.Windo ...

  10. 【模式识别】MPL,MIL和MCL

    Multi-Instance Learning (MIL) 和Multi-Pose Learning (MPL)是CV的大牛Boris Babenko at UC San Diego提出来的.其思想能 ...