這個檔案型資料庫小巧好用,可以替代ACCESS,以下是常用的語句
擷取資料庫時間(設計表字段時的目前時間預設值)
sqlite datetime('now', 'localtime')
如果使用這個函數CURRENT_TIMESTAMP,得到的時間可能不正确,因為時區不對,一般會少8個小時
sqlserver getdate()
擷取前10個記錄
sqlite select * from table order by AddTime desc limit 0,10 或者 select * from table order by AddTime desc limit 10 offset 0(表示應該跳過的行數)
sqlserver select top 10 * from table order by AddTime
随機傳回資料記錄
// 随機傳回兩條記錄
sqlite select * from table ORDER BY RANDOM() limit 2
like查詢
SELECT * from table where SearchKey like '%員工%';
在C#中實作參數化查詢;
// 1.事先拼成%參數值%形式
string key="%"+參數值+"%";
// 2.然後在語句中寫上,列名 like @key(上面拼好的部分),也就是說,like後面的部分包含%符号全部當成參數
SELECT * from table where SearchKey like @key; // 這裡如果寫成和sqlserver這種( like '%'[email protected]+'%' ),則查不出資料,原因未知.
// 3.在添加參數時
Parameters.Add(new SQLiteParameter(@key, key));
插入記錄,判斷名字是否重複,如果重複則不插入:
insert into userinfo(id,username)
select '100001', 'Tom'
where not exists(select id from userinfo where username='Tom')
參數化查詢時,參數名可以重複:
insert into userinfo(id,username,bz1,bz2,bz3) values(@id,@username,@bz,@bz,@bz)
三個bz字段都使用了@bz一個參數名,但可以執行成功.
如果是sqlserver就會報 "變量名在查詢批次或存儲過程内部必須唯一" 的錯誤