1. sqlite3 dbName.sqlite3 加载数据库,不存载就创建
2. .help 帮助详解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
sqlite> .help
.backup ? DB ? FILE Backup DB (default "main" ) to FILE
.bail ON | OFF Stop after hitting an error. Default OFF
.databases List names and files of attached databases
.dump ? TABLE ? ... Dump the database in an SQL text format
If TABLE specified, only dump tables matching
LIKE pattern TABLE .
.echo ON | OFF Turn command echo on or off
.exit Exit this program
.explain ? ON | OFF ? Turn output mode suitable for EXPLAIN on or off.
With no args, it turns EXPLAIN on.
.header(s) ON | OFF Turn display of headers on or off
.help Show this message
.import FILE TABLE Import data from FILE into TABLE
.indices ? TABLE ? Show names of all indices
If TABLE specified, only show indices for tables
matching LIKE pattern TABLE .
.load FILE ? ENTRY ? Load an extension library
.log FILE |off Turn logging on or off. FILE can be stderr/stdout
.mode MODE ? TABLE ? Set output mode where MODE is one of:
csv Comma-separated values
column Left-aligned columns. (See .width)
html HTML <table> code
insert SQL insert statements for TABLE
line One value per line
list Values delimited by .separator string
tabs Tab-separated values
tcl TCL list elements
.nullvalue STRING Print STRING in place of NULL values
.output FILENAME Send output to FILENAME
.output stdout Send output to the screen
.prompt MAIN CONTINUE Replace the standard prompts
.quit Exit this program
.read FILENAME Execute SQL in FILENAME
.restore ? DB ? FILE Restore content of DB (default "main" ) from FILE
.schema ? TABLE ? Show the CREATE statements
If TABLE specified, only show tables matching
LIKE pattern TABLE .
.separator STRING Change separator used by output mode and .import
.show Show the current values for various settings
.stats ON | OFF Turn stats on or off
.tables ? TABLE ? List names of tables
If TABLE specified, only list tables matching
LIKE pattern TABLE .
.timeout MS Try opening locked tables for MS milliseconds
.width NUM1 NUM2 ... Set column widths for "column" mode
.timer ON | OFF Turn the CPU timer measurement on or off
|
3. 应用截图
加载
root @ubuntu :~/workspace/ SVN_AUTH /db # sqlite3 development.sqlite3
SQLite version 3 . 7 . 2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
|
显示数据库
1
2
3
4
|
sqlite> .databases
seq name file
--- --------------- ----------------------------------------------------------
0 main /root/workspace/ SVN_AUTH /db/development.sqlite3
|
显示表
sqlite> .tables
applies logs repositories users
deps permits schema_migrations
|
显示表的内容
sqlite> .head on #显示表头
sqlite> select * from users;
id|name|brief|group|dep_id|created_at|updated_at
1 | 3B - 7 - 1 - 16 刘文民|liuwm|superadmin|| 2011 - 08 - 08 08 : 11 : 37 . 283136 | 2011 - 08 - 08 08 : 11 : 37 . 283136
3 | 3D - 1 - 01 贾延平|jiayp|admin|| 2011 - 08 - 08 08 : 19 : 51 . 745947 | 2011 - 08 - 08 08 : 19 : 51 . 745947
4 | 3B - 7 - 1 - 11 杜宏伟|duhw||| 2011 - 08 - 08 08 : 33 : 51 . 496746 | 2011 - 08 - 08 08 : 33 : 51 . 496746
5 | 3B - 2 - 14 苑辰|yuanc-a|emplooyee|| 2011 - 08 - 08 08 : 52 : 03 . 229173 | 2011 - 08 - 08 08 : 52 : 03 . 229173
6 | 3B - 2 - 16 周四维|zhousw||| 2011 - 08 - 08 08 : 54 : 21 . 134175 | 2011 - 08 - 08 08 : 54 : 21 . 134175
7 | 3B - 2 - 12 施晟|shis||| 2011 - 08 - 08 08 : 56 : 01 . 234077 | 2011 - 08 - 08 08 : 56 : 01 . 234077
|
显示创建表的脚本(不跟参数显示所有的)
sqlite的数据导入 导出
数据导入的来源可以是其他应用程序的输出,也可以是指定的文本文件,这里采用指定的文本文件。
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>
3. 导入命令
-
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>
这里需要注意一点,在数据导入之前,先要根据数据的具体分的格式,设置数据导入的间隔符,例如在文本数据中采用的是‘,’来间隔数据,因此应先调用.seperator 设置‘,’ 为间隔符。
2. 查看命令
.schema 命令来查看指定的数据表的结构
-
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>
2. .tables 命令用来查看当前数据库的所有数据表
-
sqlite> .tables
- data_txt_table
- sqlite>
3. databases 命令用来查看当前所有数据库
-
sqlite> .databases
- seq name file
- ––– ––––––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
- 0 main /home/ywx/yu/sqlite/test.db
- 1 temp
3. 数据导出
数据导出也是一个常用到的操作,可以将指定表中的数据导出成SQL脚本,供其他数据库使用,还可以将指定的数据表中的数据完整定位到标准输出,也可以将指定数据库中的数据完整的导入到另一个指定数据库等,
1. 导出成指定的SQL脚本
将sqlite中指定的数据表以SQL创建脚本的形式导出,具体命令
-
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
3. 其他格式,如:htm格式输出
-
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
- http://blog.chinaunix.net/uid-22666248-id-2182334.html