sqlloader导出数据指定分隔符_来一份数据库全家桶~

♫. ♪ ~ ♬..♩~ ♫. ♪..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩♫. ♪ ~ ♬..♩~ ♫. ♪..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩

点击蓝字关注我们

♫. ♪ ~ ♬..♩~ ♫. ♪..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩♫. ♪ ~ ♬..♩~ ♫. ♪..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩..♩~ ♫. ♪ ~ ♬..♩ 5876746de745242da0f898edcbd4236a.png

一、数据导入 

数据导入就是把系统文件的内容存到数据库的表里,但是把系统文件的内容存放到表里的时候对系统文件是有要求的,要求导入的文件内容要有一定的格式和规律,不能是乱七八糟的,那样是存不进去的,在导入数据之前要先创建一个存储文件内容的表,这个表里的结构要符合文件的存储条件,表里边有多少个字段,每个字段是什么类型的,字段的约束条件是什么要取决于导入的系统文件的内容来决定

总结:数据导入时,要有一定的格式,和规律,而且在建表的时候,表里的字段类型和宽度或者约束条件等,要取决于存放文件的内容来决定

3ee5d087a5e1c677173cf03f707222b4.png

还有一点就是我们在进行数据导入的时候,要求导入的文件要在默认的导入路径下才可以执行导入操作,我们需要把要导入的文件放在数据库指定的路径下才能导入

查看定义数据导入的变量

show variables like "secure_file_priv";

36a8a8cc97e39c3c837b9c8fcfc4c851.png

这个变量里存的就是导入系统文件时的默认路径,我们要把系统文件放在这个路径下才能进行数据导入

查看导入路径,这个路径默认就是个空目录

[root@master ~]# ls /var/lib/mysql-files/ 

你想把什么文件导入到数据库里,就把文件放到这个路径下就可以

把/etc/passwd这个文件导到数据库里边去,我们先来看一下这个文件

[root@master ~]# vim /etc/passwd

d9d58cdfe306c4bd5e5bff0321afebc4.png

这个文件有没有规律呢,我们前边说了,在数据导入的时候,系统文件里边的内容要有一定的规律,那这个文件有规律码?如果以冒号作为分隔符,那它每一行都是7列,那我们在建表的时候也要创键7个字段,并且这7个字段类型要和文件里的字段类型要一致,在导入数据的时候,文件中的第一列导给表里的第一个字段

拷贝文件到默认导入路径

[root@master ~]# cp /etc/passwd /var/lib/mysql-files/  

创建导入数据的表

 mysql> create table 账号信息表(

-> 用户名 char(50),   //字段的类型和宽度要参考系统文件

-> 密码占位符 char(1),

    -> UID smallint, 

    -> GID smallint, 

    -> 描述信息 varchar(200),

    -> 家目录 char(200),

    -> 解释器 char(100),  

    -> index(用户名));     //为了提高查找速度,给用户名字段设置索引

查看表结构

mysql> desc 账号信息表;

d598d0b8999e81f05fe8f1decab4cbf7.png

数据导入

mysql> load data infile "/var/lib/mysql-files/passwd"  //指定导入路径和文件名

-> into table 账号信息表  //指定导入的表名

  -> fields terminated by ":"  //指定文件中的分隔符

   -> lines terminated by"\n";  //指定换行符

Query OK, 21 rows affected (0.00 sec)   

查看表记录

mysql> select * from 账号信息表;

30e48f2e43b2322cdda7a8131002263f.png

为表添加ID字段,并设置主键和自增长,并添加到所有字段前边

mysql> alter table 账号信息表

    -> add ID int primary key auto_increment first;     

Query OK, 0 rows affected (0.04 sec)

查看表记录

mysql> select * from 账号信息表;

f27820a56ebdcdaa00be4680db582750.png

二、数据导出

数据导出是把表里的数据存储到系统文件里,数据倒出时要求要导出到数据库指定的默认路径下,数据导出时不包括表里字段,并且数据导出时不需要提前创键建存储数据文件,数据导出时,只需指定文件名该文件会自动创键出来,数据导出时,通过SQL查询进行导出

44364d54df0bb83696129c538c03edda.png

将账号信息表导出到系统文件,导出所有数据用 * 表示

mysql> select * from 账号信息表 into outfile "/var/lib/mysql-files/user.txt"

    -> fields terminated by ":"  //指定分隔符

-> lines terminated by "\n"; //指定换行符

Query OK, 21 rows affected (0.00 sec)

查看是否导出成功

[root@master ~]# ls /var/lib/mysql-files/

passwd  user.txt

查看表结构

mysql> desc 账号信息表;

9eb64da858b3c550b2f6da1e114647b1.png

导出指定字段的值

mysql> select ID,用户名,密码占位符 from 账号信息表

-> into outfile "/var/lib/mysql-files/user1.txt" //导出时文件不要重名

-> fields terminated by ":"//指定分隔符

-> lines terminated by "\n";//指定换行符

Query OK, 21 rows affected (0.00 sec)

查看导出文件

[root@master mysql-files]# ls /var/lib/mysql-files/

passwd  user1.txt  user.txt

通过条件导出表记录

mysql> select ID,用户名,密码占位符 from 账号信息表 where ID <=10

    -> into outfile "/var/lib/mysql-files/user2.txt"

    -> fields terminated by ":"

    -> lines terminated by "\n";

Query OK, 10 rows affected (0.00 sec)

查看导出结果

[root@master mysql-files]# cat /var/lib/mysql-files/user2.txt

98dc350ad4614c2ae743dd64966266ac.png

〓我们都将前程似锦,与更好的自己不期而遇〓

aec732f9a0b44f19018fe1ef0803ad35.gif

为方便五湖四海的Linux爱好者共同

学(吹)习(牛)讨(打)论(趣)

热烈欢迎大家加入专属QQ群

0c84935358023a52b7fb437bb26a1f5d.png

群内定时上传资料还有老师全天答疑

入群即可免费获得

1、必备工具源码包

2、内部精选电子书

3、运维资料大礼包

欲知更多福利,欢迎你的加入

62f2fdf60a3785b6d193c836cce15df5.png

球分享

球点赞

9c63b1c58563691e8a089a3d743db3ee.gif

球在看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值