創建表的語句
create table tab_name (
col_name1 TYPE OPT,
col_name2 TYPE OPT,
...
);
其中TYPE為數據類型,OPT為可選項,如指定為主鍵時,使用 PRIMARY KEYsqlite支持的數據類型:
NULL
INTEGER
REAL
TEXT
BLOB
sqlite支持在字符串和數字之間進行動態數據類型轉換
如表test的兩個字段id和name分別是INTERGER和TEXT
但是,下面的插入也是可以接受的
insert into test values("3", 123);
上述語句中,“3”將被自動轉換為3,而123則被自動轉換為“123”
但是insert into test values("a", 123);則會拋出錯誤
插入記錄的語句
insert into tab_name values(col_val1, col_val2, ...);
與普通sql不同,插入時不必指定列名,但是一定要提供每列所有的值,如果該列可以為空,則可以指定值為NULL
查詢語句和刪除語句和普通sql類型
select * from test;
delete from test where id=3;
如何提供自增主鍵?設置主鍵類型為INTEGER PRIMARY KEY即可多進程/多線程支持?sqlite允許多個線程同時訪問同一個數據庫文件。多個線程可以同時查詢,但是同一時刻,只允許有一個線程執行寫入操作需要在多線程中使用sqlite時,需要將SQLITE_THREADSAFE宏置為1進行編譯sqlite。刪除數據時文件並未減小?數據佔用的空間在內部被標記為空閒,可在下次插入數據時使用,但並未歸還操作系統字符串中包含'怎麼辦?
使用''(兩個')進行轉義
性能如何?
insert操作在普通機器上1s大約50000次,但transaction一秒大約只有60次
如何將查詢結果插入一個表?
insert into t1 select * from t2;