MySQL數據的導入導出

數據導入

  • 作用
    把文件系統的內容導入到數據庫中
  • 語法(方式一)

load data infile "文件名"
into table 表名
fields terminated by "分隔符"
lines terminated by "\n"

示例
scoretable.csv文件導入到數據庫db2的表

1、將scoretable.csv放到數據庫搜索路徑中
mysql>show variables like 'secure_file_priv';
/var/lib/mysql-files/
Linux: sudo cp /home/tarena/scoreTable.csv /var/lib/mysql-files/
2、在數據庫中創建對應的表
create table scoretab(
rank int,
name varchar(20),
score float(5,2),
phone char(11),
class char(7)
)charset=utf8;
3、執行數據導入語句
load data infile '/var/lib/mysql-files/scoreTable.csv'
into table scoretab
fields terminated by ','
lines terminated by '\n';
4、ID位數不夠補零
添加id字段,要求主鍵自增長,顯示寬度爲3,位數不夠用0填充
alter table scoretab add id int(3) zerofill primary key auto_increment first;

  • 語法(方式二)
    source 文件名.sql

數據導出

  • 作用
    將數據庫中表的記錄保存到系統文件裏
  • 語法格式

select ... from 表名
into outfile "文件名"
fields terminated by "分隔符"
lines terminated by "分隔符";

  • 示例

1、把sanguo表中英雄的姓名、攻擊值和國家三個字段導出來,放到 sanguo.csv中 並將導出的文件移到/home/teenjeen/
select name, attack, country from country.sanguo
into outfile '/home/teenjeen/sanguo.csv'
fields terminated by ','
lines terminated by '\n';
2、將mysql庫下的user表中的 user、host兩個字段的值導出到 user2.txt,將其存放在數據庫目錄下
select user, host from mysql.user
into outfile '/var/lib/mysql-files/user2.txt'
fields terminated by ' '
lines terminated by '\n';

  • 注意
    1、導出的內容由SQL查詢語句決定
    2、執行導出命令時路徑必須指定在對應的數據庫目錄下

表的複製

1、表能根據實際需求複製數據
2、複製表時不會把KEY屬性複製過來

  • 語法

create table 表名 select 查詢命令;

  • 示例

1、複製sanguo表的全部記錄和字段,sanguo2
create table sanguo2 select * from sanguo
2、複製sanguo表的 id,name,country 三個字段的前3條記錄,sanguo3
create table sanguo3 select id,name,country from sanguo limit 3

  • 注意
    複製表的時候不會把原有表的 KEY 屬性複製過來

  • 複製表結構
    create table 表名 select 查詢命令 where false;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章