SQLite 學習筆記(一)

來源:互聯網
上載者:User

標籤:

(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 指跳過多少行資料

SQLite 學習筆記(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.