玩转SQLite9:常用语句实践(一)

本篇介绍SQLite中的一些常用语句,先来介绍这4个:

  • updat:用过更新/修改数据库中已有的数据
  • delete:用于删除数据库中已有的数据
  • like:用来匹配通配符指定模式的文本值
  • glob:也是用来匹配通配符指定模式的文本值,注意与like的区别

下面通过实例来演示这4个的用法,通过命令行的方式进行快速测试。

1 更新-update

update 用于修改表中已有的记录。

可以使用带有where子句的update查询来更新选定行,否则所有的行都会被更新。

基本语法为:

update table_name
set column1 = value1, column2 = value2...., columnN = valueN
where [condition];

以之前测试的数据为例,有如下的表:

sqlite> select * from SCORE;
id  chinese  math  english
--  -------  ----  -------
1   90       95    88
2   80       90    92
3   85       89    82
4   80       81    82
5   90       91    92
6   90       88    89
7   70       81    88
8   81       85    83
9   85       88    86
10  88       83    90

更新id为10的math为100:

update SCORE set math=100 where id=10;

更新所有id的english为90,则不使用where指定条件即可:

update SCORE set english=90;

2 删除-delete

delete用于删除表中已有的记录。

可以使用带有where子句的delete来删除选定行,否则将删除所有的记录。

基本语法为:

delete from table_name
where [condition];

例如,删除id为10的记录:

delete from SCORE where id=10;

如果要删除所有的记录,则不加where语句:

delete from SCORE;

3 通配符-like

like运算符用来匹配通配符指定模式的文本值。这里有两个通配符与 LIKE 运算符一起使用:

  • 百分号%:代表零个、一个或多个数字或字符。
  • 下划线_:代表一个单一的数字或字符

如果搜索表达式与模式表达式匹配,like运算符将返回真。

基本语法:

select column_list 
from table_name
where column like 'XXXX%'

上面的XXXX可以是任何数字或字符串值,另外可以使用and或or运算符来结合N个数量的条件。

like的通配符的几个使用示例:

  • '200%':以 200 开头的任意值
  • '%200%':任意位置包含 200 的任意值
  • '_00%':第二位和第三位为 00 的任意值
  • '2__%':以 2 开头,且长度至少为 3 个字符的任意值
  • '%2':以 2 结尾的任意值
  • '_2%3':第二位为 2,且以 3 结尾的任意值
  • '2___3':长度为 5 位数,且以 2 开头以 3 结尾的任意值

示例,使用之前测试的数据库,有以下数据:

sqlite> select * from SCORE;
id  chinese  math  english
--  -------  ----  -------
1   90       95    88
2   80       90    92
3   85       89    82
4   80       81    82
5   90       91    92
6   90       88    89

若要显示SCORE中math成绩以8开头的记录:

select * from SCORE where math like '8%';

若要显示SCORE中chinese和math成绩以0结尾的记录:

select * from SCORE where chinese like '%0' and math like '%0';

4 通配符-glob

glob也是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,glob运算符将返回真true。

注意,glob与like支持的通配符不同,glob支持:

  • 星号*:代表零个、一个或多个数字或字符(类比like的%
  • 问号?:代表一个单一的数字或字符(类比like的_

glob的基本语法为:

select from table_name
where column GLOB 'XXXX*'

这里的XXX 可以是任何数字或字符串值,另外可以使用and或or运算符来结合N个数量的条件。

glob的通配符的几个使用示例:

  • '200*':以 200 开头的任意值
  • '*200*':任意位置包含 200 的任意值
  • '?00*':第二位和第三位为 00 的任意值
  • '2??%':以 2 开头,且长度至少为 3 个字符的任意值
  • '*2':以 2 结尾的任意值
  • '?2*3':第二位为 2,且以 3 结尾的任意值
  • '2???3':长度为 5 位数,且以 2 开头以 3 结尾的任意值

示例,使用之前测试的数据库,有以下数据:

sqlite> select * from SCORE;
id  chinese  math  english
--  -------  ----  -------
1   90       95    88
2   80       90    92
3   85       89    82
4   80       81    82
5   90       91    92
6   90       88    89

若要显示SCORE中math成绩以8开头的记录:

select * from SCORE where math glob '8*';

若要显示SCORE中chinese和math成绩以0结尾的记录:

select * from SCORE where chinese glob '*0' and math glob '*0';

猜你喜欢

转载自blog.csdn.net/hbsyaaa/article/details/127379065