數據導入
- 作用
把文件系統的內容導入到數據庫中 - 語法(方式一)
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;