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. Swift Tips笔记

    “??”操作符可以判断输入并在当左侧的值是非 nil 的 Optional 值时返回其 value,当左侧是 nil 时返回右侧的值. 例: var level: Int? var startLeve ...

  2. Unity5.X 新版AssetBundle使用方案及策略

    1.概览 Unity3D 5.0版本之后的AssetBundle机制和之前的4.x版本已经发生了很大的变化,一些曾经常用的流程已经不再使用,甚至一些老的API已经被新的API所取代. 因此,本文的主要 ...

  3. mysql 删除表中记录

    一.清除mysql表中数据 delete from 表名;truncate table 表名;不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以 ...

  4. iOS项目实现SVN代码管理方法③(Part 三)

    内容中包含 base64string 图片造成字符过多,拒绝显示

  5. jsp 中实现点击按钮 实现页面跳转到HTML

    <input type ="button" value="跳转" onclick="window.location.href='main.htm ...

  6. 对抗网络之目标检测应用:A-Fast-RCNN

    对抗网络之目标检测应用:A-Fast-RCNN 论文:A-Fast-RCNN: Hard Positive Generation via Adversary for Object Detection ...

  7. HDU 1591 Encoded Love-letter(简单字符串)

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  8. linux配置禁用启用IPv6

    IPv6被认为是IPv4的替代产品,它用来解决现有IPv4地址空间即将耗尽的问题.但目前,开启IPv6可能会导致一些问题.因此有时我们需要关闭IPv6.下面是IPv6的关闭方法应该适用于所有主流的Li ...

  9. STM32 Flash 永久用户数据空间

    /********************************************************************************* * STM32 Flash 永久用 ...

  10. git中的needs merge问题

    这个问题是在先“储藏”起来了,后面再调用出来出现的错误. 解决的方法就是通过git add    ,git commit -m  提交上去就可以了.