mysql语句-select...into outfile
来源:互联网 发布:java就是业务逻辑吗 编辑:程序博客网 时间:2024/05/17 09:15
1 简介
SELECT INTO…OUTFILE语句把表数据导出到一个文本文件中,并用LOAD DATA …INFILE语句恢复数据。但是这种方法只能导出或导入数据的内容,不包括表的结构,如果表的结构文件损坏,则必须先恢复原来的表的结构。
也可以将查询结果保存在变量中。
2 语法结构
3.1 创建测试数据库及表
CHARACTER SET:
数据被转换成CHARACTER SET指定的编码格式输出。如果不指定的话默认为binary,即不做转换,如果指定多个编码格式,输出文件将不能被正确载入。
export_options:
用于语句的exort_options部分的语法包括部分FIELDS和LINES子句,这些子句与LOAD DATA INFILE语句同时使用,详细用法可参考我前面文章:
http://blog.csdn.net/jesseyoung/article/details/41312337
SELECT***INTO OUTFILE 'file_name':
将选择的行输出到文件,文件创建在服务器主机上,我们需要有FILE权限。字段的结束符,包裹符号以及行的结束符号可以指定输出格式。
我们也可以将文件输出到其它客户端主机上,但不能用SELECT ... INTO OUTFILE,例如我们在192.168.1.95主机上执行操作,文件依然会被创建在192.168.1.94服务器主机上。
下面的方法也一样会将文件创建在192.168.1.94服务器主机上。
将列值输出到变量。into语句可以命名一个或多个变量列表,这些变量可以是用户定义变量,存储过程及函数参数,或者存储程序局部变量。查询应该返回单行装入变量,变量的个数应该和查询的列的个数相同。用户变量对大小写不敏感。
变量的个数和查询的列的个数不相同
查询的列返回多行
SELECT***INTO DUMPFILE 'file_name':
将选择的行输出到文件,输出内容没有任何格式,且所有内容都放在一行。
服务器防火墙未关闭导致远程连接mysql出错:
SELECT INTO…OUTFILE语句把表数据导出到一个文本文件中,并用LOAD DATA …INFILE语句恢复数据。但是这种方法只能导出或导入数据的内容,不包括表的结构,如果表的结构文件损坏,则必须先恢复原来的表的结构。
也可以将查询结果保存在变量中。
2 语法结构
SELECT[INTO OUTFILE 'file_name' [CHARACTER SET charset_name] export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]]3 测试表结构及数据
3.1 创建测试数据库及表
mysql> create database loaddata; mysql> use loaddata; mysql> create table loadtest (c1 int(10), c2 varchar(20), c3 varchar(20), c4 varchar(20));3.2 插入测试数据
mysql> insert into loadtest values (100, 'column2', 'column3', 'column4'); mysql> insert into loadtest values (200, 'line2', 'line3', 'line4');4 语法解释及实例验证
CHARACTER SET:
数据被转换成CHARACTER SET指定的编码格式输出。如果不指定的话默认为binary,即不做转换,如果指定多个编码格式,输出文件将不能被正确载入。
export_options:
用于语句的exort_options部分的语法包括部分FIELDS和LINES子句,这些子句与LOAD DATA INFILE语句同时使用,详细用法可参考我前面文章:
http://blog.csdn.net/jesseyoung/article/details/41312337
SELECT***INTO OUTFILE 'file_name':
将选择的行输出到文件,文件创建在服务器主机上,我们需要有FILE权限。字段的结束符,包裹符号以及行的结束符号可以指定输出格式。
我们也可以将文件输出到其它客户端主机上,但不能用SELECT ... INTO OUTFILE,例如我们在192.168.1.95主机上执行操作,文件依然会被创建在192.168.1.94服务器主机上。
[root@localhost /]# mysql -h192.168.1.94 -ujesse -pjesse -P3306mysql> select * into outfile '/tmp/outfile.txt' from loadtest;ERROR 1086 (HY000): File '/tmp/outfile.txt' already exists
下面的方法也一样会将文件创建在192.168.1.94服务器主机上。
[root@localhost /]# mysql -h192.168.1.94 -ujesse -pjesse -P3306 -e"select * into outfile '/tmp/outfile.txt' from loaddata.loadtest;"Warning: Using a password on the command line interface can be insecure.ERROR 1086 (HY000) at line 1: File '/tmp/outfile.txt' already exists我们只能用类似mysql -e "SELECT ..." > file_name的命令将文件输出到客户机上。
[root@localhost /]# mysql -h192.168.1.94 -ujesse -pjesse -P3306 -e"select * from loaddata.loadtest;" > /tmp/loadtest.txt指定格式输出:
mysql> select * into outfile '/tmp/outfile.txt' from loadtest;mysql> select * into outfile '/tmp/outfile.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '#' LINES TERMINATED BY '\n' from loadtest;SELECT***INTO var_name [, var_name]:
将列值输出到变量。into语句可以命名一个或多个变量列表,这些变量可以是用户定义变量,存储过程及函数参数,或者存储程序局部变量。查询应该返回单行装入变量,变量的个数应该和查询的列的个数相同。用户变量对大小写不敏感。
mysql> select * into @a, @b, @c, @d from loadtest limit 1;mysql> select c1, c2, c3, c4 into @a, @b, @c, @d from loadtest limit 1;
变量的个数和查询的列的个数不相同
mysql> select c1, c2, c3, c4 into @a, @b, @c from loadtest limit 1; ERROR 1222 (21000): The used SELECT statements have a different number of columnsmysql> select c1, c2, c3 into @a, @b, @c, @d from loadtest limit 1; ERROR 1222 (21000): The used SELECT statements have a different number of columns
查询的列返回多行
mysql> select c1, c2, c3, c4 into @a, @b, @c, @d from loadtest;ERROR 1172 (42000): Result consisted of more than one row
SELECT***INTO DUMPFILE 'file_name':
将选择的行输出到文件,输出内容没有任何格式,且所有内容都放在一行。
mysql> select * into dumpfile '/tmp/dumpfile.txt' from loadtest;5 一些错误
服务器防火墙未关闭导致远程连接mysql出错:
[root@localhost /]# /home/ACTIONTECH-HA/mysql-install/bin/mysql -h192.168.1.94 -ujesse -pjesse -P3306Warning: Using a password on the command line interface can be insecure.ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.94' (113)
解决办法:关闭服务器端防火墙或开放mysql端口。
****************************************************************************************
原文地址:http://blog.csdn.net/jesseyoung/article/details/41346861
博客主页:http://blog.csdn.net/jesseyoung
****************************************************************************************
0 0
- mysql语句-select...into outfile
- mysql语句-select...into outfile
- mysql select into outfile
- mysql的select into outfile
- MySQL select into outfile 语法
- mysql select * into OUTFILE 不会锁表
- MySQL使用SELECT...INTO OUTFILE导出文本文件
- MySQL使用SELECT INTO OUTFILE导出文本文件
- mysql select into outfile 语法 乱码问题
- MySQL 导出数据select into outfile用法
- MySQL SELECT..INTO OUTFILE语句只能导出1000行的故障
- select..into outfile
- MYSQL解决select ... into outfile '..' mysql写文件权限问题
- 解决select ... into outfile '..' mysql写文件权限问题
- mysql select into outfile 意表备份还原方式
- mysql select into outfile报无权限,访问被拒绝
- 关于Mysql中select into outfile权限的探讨
- 使用python将mysql数据导入excel-select into outfile
- Essential Linux Device Drivers》中文版第2章
- Java发送email 带附件
- 单机用户下修改root密码及grub加密
- $.ajax返回的JSON无法执行success的解决方法
- Lucene搜索引擎入门写法
- mysql语句-select...into outfile
- Unity3D高频面试问题
- erlang 聊天室
- 《Essential Linux Device Drivers》中文版第1章
- php shell方式执行
- haoservice提供天气预报接口
- CSDN first - For ZYBO
- SQL Server 的日志文件
- Jquery ajax方法解析返回的json数据