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 '%'+@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就会报 "变量名在查询批次或存储过程内部必须唯一" 的错误