經常使用的Sqlite SQL語句(持續更新中)

表操做

刪除一張表(沒有關聯關係)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 NOCASEsqlite

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。

相關文章
相關標籤/搜索