这个文件型数据库小巧好用,可以替代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 '%'+@key+'%' ),则查不出数据,原因未知.
// 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就会报 "变量名在查询批次或存储过程内部必须唯一" 的错误