sqlite相关操作的sqlite语句

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/csharpwys/article/details/72829829

之前对在c#中操作sqlite数据库的相关的函数进行了简单的总结,sql语句是其中很重要的一个部分,在本文主要从操作类型分别进行小结

在开始之前,先假设存在一个数据库db,其中有名为realdata的数据表,其中有2列,name 和 salary。

1.  查询语句

Select 列名 from 表名 where 条件子句 group by 分组字句 having 条件字句 order by 排序字句
上面的语句中,后面的如groupby、 where等等,这些都不是必须存在的,只有在需要的时候使用即可,下面以开头的假设举例:

如:
   select name from realdata    //从realdata表中选择name这一列的数据
   select * from realdata where name='yu' //从realdata表中选择满足条件name = 'yu'的所有列,对于字符串,应使用''括起来,对于数值,则不需要
   select * from realdata group by name  //将会把有相同name的行进行合并
   select * from realdata order by salary asc|desc //根据salary列进行升序或者降序排列
   select * from realdata where name='yu' Having salary > 5000 //选择名字为yu的,且salary超过5000的行

除此之外还有limit和offset的使用

select * from realdata limit 5 offset 3  //从realdata中5条记录,跳过前面3条记录
从上一篇文章中知道在传入sql语句的时候,是可以传入参数的,下面进行一个举例:

string sql = "select * from LoginLog where UserName=@username and Password=@pw";

var p = new List<SQLiteParameter>(2);

 p.Add(_dbe.CreatCmdParameter("@username", DbType.String, userName));
                p.Add(_dbe.CreatCmdParameter("@pw", DbType.String, password)); //这边_dbe是一个接口变量,CreatCmdParameter是其中的一个函数,这边就不具体体现其实现过程了,很简单

上面的例子的目的是为了从LoginLog表中,查询UserName和Password满足2个参数值条件的记录,在select语句中UserName = @username中的@符号必须要加上,否则就是一个错误的语句,因为=后面要么接值,要么接'’text

2. 修改数据库中的记录

update 表名 set 字段名=值 where 条件
如:
update realdata set salary=5000 where  name='yu'  //修改name为yu记录的salary为5000

3. 向数据库中插入记录(包含参数的例子)

insert into 表名 (字段列表)values(值的列表)
如:
string sql = "insert into realdata (name, salary) values(@name, @salary)       //这边用的是含参数的例子
SQLiteParameter[] parameter = 
{
	new SQLiteParameter("@name", DbType.Text);
	new SQLiteParameter("@salary", DbType.Integer);
}
parameter[0].Value = 'yu';
parameter[1].Value = 5000;

4. 从数据库中删除记录

delete from 表名 where 条件
如:
delete from realdata where salary=5000   //删除表中salary=5000的记录


补充一个很好用的子句:like子句,这边用一个网上找到的例子

有2个通配符跟like一起使用:'%'和 '_',例子如下:(%代表多个字符或数字、1个字符或数字     _代表1个字符或数字)

where salary like '10%'   //以10开头的salary记录
where salary like '%10%'  //任意位置包含10的salary
where salary like ‘_00%’   // 查找第2位和第3位为0的salary值
where salary like ‘2_%_%’  // 以2开头,至少包含3个字符的任意值的salary值
where salary like ‘%2’  //以2结尾的salary值
where salary like ‘_2%3’ //查找第2位为2,且以3结尾的salary值


展开阅读全文

没有更多推荐了,返回首页