load data local infile “c:/data.txt” into table person(name,age,city,salary);
数据导入的来源可以是其他应用程序的输出,也可以是指定的文本文件,这里采用指定的文本文件。 1. 首先,确定导入的数据源,这里是待导入的,按固定格式的文本文件。 2. 然后,依照导入的文件格式,确定想导入的目标数据表,这个数据表如果没有,可以依照待导入的文本文件格式,创建一个相对应的数据表。 3. 最后,执行.import命令,将文本文件中数据导入数据表中。1. 数据源 在/home/ywx/yu/sqlite/下,创建一个名为data.txt的文本文件,并输入以下数据,数据之间采用逗号隔开
id,name,age,address,hobby
1,tom,24,beijing,football
2,liu,27,heibei,fotball
3,jim,26,shandong,football
4,han,28,beijing,football
5,meng,25,beijing,tennis
2. 目标数据表 这里创建一张目标数据表,通过分析文本格式,这里需要3个字段,分别是id,name,age。但在数据类型选择时存在一个问题,id和age在文本文件 中是按字符型存储的,而其实际在数据表中,最好要表示成整型,因此这里要涉及到一个字符型数据类型向整型数据类型转换的问题。 在创建表时,将id和age的类型定义为整型,进行强制转换,如果在数据导入时,发现转换失败,可以将id和age类型改为文本型。
ywx@ywx:~/yu/sqlite$ sqlite3 test.db
SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table data_txt_table(id char(10),name char(10),age char(10),address varchar(15),hobby varchar (15));
sqlite>
sqlite> .separator ","
sqlite> .import data.txt data_txt_table
sqlite> select * from data_txt_table;
id,name,age,address,hobby
1,tom,24,beijing,football
2,liu,27,heibei,fotball
3,jim,26,shandong,football
4,han,28,beijing,football
5,meng,25,beijing,tennis
sqlite>
sqlite> .schema data_txt_table
CREATE TABLE data_txt_table(id char(10),name char(10),age char(10),address varchar(15),hobby varchar (15));
sqlite>
sqlite> .tables
data_txt_table
sqlite>
sqlite> .databases
seq name file
--- --------------- ----------------------------------------------------------
0 main /home/ywx/yu/sqlite/test.db
1 temp
ywx@ywx:~/yu/sqlite$ sqlite3 test.db
SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .output data.sql
sqlite> .dump
sqlite>
ywx@ywx:~/yu/sqlite$ ll
总计 16
drwxr-xr-x 2 ywx ywx 4096 2011-08-13 23:15 ./
drwxr-xr-x 7 ywx ywx 4096 2011-08-13 20:53 ../
-rw-r--r-- 1 ywx ywx 602 2011-08-13 23:17 data.sql
-rw-r--r-- 1 ywx ywx 2048 2011-08-13 22:44 test.db
2. 数据库导出
data.sql test.db
ywx@ywx:~/yu/sqlite$ sqlite3 test.db ".dump" | sqlite3 test2.db
ywx@ywx:~/yu/sqlite$ ll
总计 20
drwxr-xr-x 2 ywx ywx 4096 2011-08-13 23:20 ./
drwxr-xr-x 7 ywx ywx 4096 2011-08-13 20:53 ../
-rw-r--r-- 1 ywx ywx 602 2011-08-13 23:17 data.sql
-rw-r--r-- 1 ywx ywx 2048 2011-08-13 23:20 test2.db
-rw-r--r-- 1 ywx ywx 2048 2011-08-13 22:44 test.db
-
ywx@ywx:~/yu/sqlite$ sqlite3 -html test.db "select * from data_txt_table" > liu.htm
ywx@ywx:~/yu/sqlite$ ls
data.sql liu.htm test2.db test.db