刪除一張表(沒有關聯關係)html
DROP TABLE tableName
創建一張表,帶有一個自增字段(ID):sql
CREATE TABLE Persons ( ID INTEGER PRIMARY KEY, LastName varchar(255), FirstName varchar(255) )
在Column後面加入INTEGER PRIMARY KEY
就表明AUTO_INCREASEMENT
,而且是NOT NULL
的,由於在Sqlite中沒有AUTO_INCREASEMENT
這個關鍵字。每次INSERT
一條記錄,不用給ID指定值,Sqlite會自動增長值。另外注意,必定要寫成這樣:INTEGER PRIMARY KEY
。若是寫成這樣INT PRIMARY KEY
也是不會自增的。更詳細內容能夠點擊查看這裏。函數
查看某一張表是否存在:code
SELECT * FROM sqlite_master WHERE type='table' AND name='yourtablename'
在查找某個字段的內容時,使用SELECT
語句,在Sqlite裏是case-sensitive的。也就是說,若是你的表裏的內容是大寫,可是你查的是相同內容,可是是小寫的,是查不到的。若是想忽略大小寫,即 case-insensitive,須要用到COLLATE NOCASE
:sqlite
SELECT * FROM tablename WHERE someField = 'value' COLLATE NOCASE
查找一張表中,某個字段someField沒有重複的條目:htm
SELECT distinct someField FROM table
查找一張表中,某個字段someField有重複的條目:字符串
SELECT * FROM table GROUP BY someField HAVING count(*) > 1
向一張已經存在的表裏加兩個Column,分別爲Name和Password。固然,這裏的Password是明文的。get
ALTER TABLE User RENAME TO sqlitestudio_temp_table; CREATE TABLE User ( ID INTEGER PRIMARY KEY, AuthToken VARCHAR NOT NULL UNIQUE, Routeway VARCHAR NOT NULL UNIQUE, Name VARCHAR NOT NULL, Password VARCHAR NOT NULL ); INSERT INTO User ( ID, AuthToken, Routeway ) SELECT ID, AuthToken, Routeway FROM sqlitestudio_temp_table; DROP TABLE sqlitestudio_temp_table;
用一張表TableB裏的一個字段fieldB內容給另一張表TableA裏的一個字段fieldA賦值:string
UPDATE TableA SET fieldA = TableB.fieldB
若是是同一張表TableA中,用一個字段field1的值給表中的另一個字段field2值賦值:it
UPDATE TableA SET field2 = field1
若是須要把一個字符串('someString')和一個字段field1的值進行鏈接,而後賦值給一個字段field2:
UPDATE TableA SET field2 = field1 || 'someString'
把一張表TableA裏的數據導入到另一張表TableB中(兩張表中的結構和字段必須同樣):
INSERT INTO TableB SELECT * FROM TableA
將兩個字符鏈接,用 ||
:
string1 || string2
關於字符串的格式,好比一個字段Month,表明月份,類型是int,可是表中的月份若是不超過十月,是單個字符。好比:1,2,3,4,12。可是打印出來但願是:01,02,03,04,12。目前沒發現可用的函數。可使用substr
和||
組合一下:
substr('0'|| Month, -2, 2)
這裏簡單解釋一下:若是Month是1,那麼'0'|| Month
以後是01,-2意味着從倒數第2個開始,取2個字符。取出來是01。
若是Month是12,那麼'0'|| Month
以後是012,-從倒數第2個開始,取2個字符。取出來仍是12。