天天看點

sqlite資料庫語句和mysql的語句_sqlite資料庫常用語句

這個檔案型資料庫小巧好用,可以替代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就會報 "變量名在查詢批次或存儲過程内部必須唯一" 的錯誤