使用技巧如下:
打開一個已有的數據庫,比如當前文件夾下面的cache.db
平時使用官方提供的sqlite3.exe工具來操作 sqlite的數據庫
進入管理:
>.databases //顯示所有數據庫
>.tables //顯示數據庫中所有的表
>.schema tablename //顯示表格結構 和mysql的 SHOW Create TABLE tbl_name
>.output f:\\test.sql //導出當前數據庫的 sql語句 和mysql的 mysqldump
>.dump
>.import f:\\test.sql
//導入 //mysql 用source
------------------------
導入
命令: .import
sqlite> .import 文件名 表名
注1: 不要忘了開頭的點
注2: 這條語句不能用分號結束. 非SQL不需要分號結束.
注3: 需要查看默認的分隔符separator. 必須一致. 如果不一致可能導致sqlite字段分割錯誤.
查看分隔符使用命令 .show , 如果不一致可直接修改, 比如:
sqlite>.separator ","
將分隔符轉為逗號.
SQLite的簡單使用
1 建立數據庫
C:\sqlite> sqlite3.exe dbname.db
sqlite3.exe后面跟數據庫文件名
2 創建數據表
sqlite> create table users(userid varchar(20) PRIMARY KEY, ...> age int, ...> birthday datetime);
3 添加記錄
insert into users values('wang',20,'1989-5-4'); insert into users values('li',22,'1987-11-16');
4 查詢記錄
select * from users order by birthday;
5 刪除記錄
delete from users where userid='wang';
6 退出sqlite
sqlite> .exit
SQLite數據庫的數據結構是存貯在 "sqlite_master" 表中
具體命令可以輸入 .help查看或參考幫助文檔
sqlite詳細使用:
(1)創建數據庫
在命令行中切換到sqlite.exe所在的文件夾
在命令中鍵入sqlite3 test.db;即可創建了一個名為test.db的數據庫
由于此時的數據庫中沒有任何表及數據存在,這時候是看不到test.db的,必須往里面插入一張表即可看到數據庫
(2)創建表
create table Test(Id Integer primary key, value text);
此時即可完成表的創建,當把主鍵設為Integer時,則該主鍵為自動增長,插入數據時,可直接使用如下語句:
insert into Test values(null,'Acuzio');
(3)獲取最后一次插入的主鍵: select last_insert_rowid();
(4)sqlite>.mode col
sqlite>.headers on
在數據庫查詢的時候,顯示行數和頭!
(5)在DOS中,鍵入Ctrl+C,退出數據庫,Unix中,使用Ctrl+D
(6)SQLite Master Table Schema
-----------------------------------------------------------------
Name Description
-----------------------------------------------------------------
type The object’s type (table, index, view, trigger)
name The object’s name
tbl_name The table the object is associated with
rootpage The object’s root page index in the database (where it begins)
sql The object’s SQL definition (DDL)
eg.
sqlite> .mode col
sqlite> .headers on
sqlite> select type, name, tbl_name, sql from sqlite_master order by type;
這樣就能看到所有數據庫中的信息,表、索引、視圖等等
(7)導出數據
.output [filename],導出到文件中,如果該文件不存在,則自動創建
.dump 導出數據命令
.output stdout 返回輸出到屏幕(進行其他操作)
eg.
sqlite>.output Acuzio.sql
sqlite>.dump
sqlite>.output stdout
這樣就可以把數據導入到Acuzio.sql中
(8)導入數據
導入數據使用.read命令
eg.
如導入(7)中的數據
sqlite>.read Acuio.sql
(9)備份數據庫
在切換到Sqlite文件夾
sqlite3 test.db .dump > test.sql
如果在數據庫中
sqlite> .output file.sql
sqlite> .dump
sqlite> .exit
(10)導入數據庫
在切換到Sqlite文件夾
sqlite3 test.db < test.sql
(11)備份二進制格式數據庫,vacuum:釋放掉已經被刪除的空間(數據和表等被刪除,不會被清空空間)
sqlite3 test.db VACUUM
cp test.db test.backup
(12)獲取數據庫信息
如果想獲得物理數據庫結構的信息,可以去SQLite網站上下載SQLite Analyzer工具
使用: sqlite3_analyzer test.db
(13)其他的SQLite工具
SQLite Database Browser (http://sqlitebrowser.sourceforge.net)
SQLite Control Center (http://bobmanc.home.comcast.net/sqlitecc.html)
SQLiteManager (www.sqlabs.net/sqlitemanager.php)
(13)SQLite 與其他數據庫不同,它是以(;)來執行語句,而不是(go).
(14)SQLite注釋(--)或(/* */)
eg.
-- This is a comment on one line
/* This is a comment spanning
two lines */
(15)創建表結構
CREATE [TEMP|TEMPORARY] TABLE table_name (column_definitions [, constraints]);
關鍵字TEMP、TEMPORARY表示創建的是臨時表
(16)在SQLite中有5種基本類型:
Integer/Real/Text/Blob/Null
(17)確保唯一性可以用關鍵字UNIQUE
eg.
CREATE TABLE contacts ( id INTEGER PRIMARY KEY,
name TEXT NOT NULL COLLATE NOCASE,
phone TEXT NOT NULL DEFAULT 'UNKNOWN',
UNIQUE (name,phone) );
(18)修改表
ALTER TABLE table { RENAME TO name | ADD COLUMN column_def }
eg.
sqlite> ALTER TABLE contacts
ADD COLUMN email TEXT NOT NULL DEFAULT '' COLLATE NOCASE;
sqlite> .schema contacts
CREATE TABLE contacts ( id INTEGER PRIMARY KEY,
name TEXT NOT NULL COLLATE NOCASE,
phone TEXT NOT NULL DEFAULT 'UNKNOWN',
email TEXT NOT NULL DEFAULT '' COLLATE NOCASE,
UNIQUE (name,phone) );
(19)查詢
SELECT DISTINCT heading FROM tables WHERE predicate
GROUP BY columns HAVING predicate
ORDER BY columns LIMIT count,offset;
(20)Limit和Offset關鍵字
Limit 指返回記錄的最大行數
Offset 指跳過多少行數據
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
