1.SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]...
FROM<表名或视图名>[,<表名或视图名>]...
[WHERE <条件表达式>]
[]中的内容代表可选项,|代表或者,即选其中一个,<>代表必选项。...代表可以重复若干次
在上述语句格式中,[ALL|DISTINCT]中的内容可有可无,如有,只能选择ALL和DISTINCT其中之一。<目标列表达式>是必选项,即SELECT后面至少得出现一个目标列表达式,[,<目标列表达式>]代表可以出现第二个目标列表达式,如果出现,要通过半角的逗号隔开;...代表目标列表达式可以出现若干次。<表名或视图名>代表FROM后面必须出现的是表名或视图名,[,<表名或视图名>]...代表FROM后面可以出现2个或2个以上的表名或视图名,且以半角的逗号隔开。[WHERE <条件表达式>]代表WHERE子句可有可无,如果出现WHERE,后面必须有条件表达式。
2.SQLite数据库中一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有表的索引。每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式。
对于表来说,type 字段永远是 ‘table’,name 字段永远是表的名字。所以,要获得数据库中所有表的列表, 使用下列SELECT语句:
SELECT name FROM sqlite_master
WHERE type=’table’
ORDER BY name;
SQLITE_MASTER 表是只读的。不能对它使用 UPDATE、INSERT 或 DELETE。 它会被 CREATE TABLE、CREATE INDEX、DROP TABLE 和 DROP INDEX 命令自动更新。
临时表不会出现在 SQLITE_MASTER 表中。临时表及其索引和触发器存放在另外一个叫 SQLITE_TEMP_MASTER 的表中。SQLITE_TEMP_MASTER 跟 SQLITE_MASTER 差不多, 但它只是对于创建那些临时表的应用可见。
客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下:
查询第1条到第10条的数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;
查询第10条到第20条的数据的sql是:select * from table limit 10,20; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;
select * from table limit (start-1)*limit,limit;
4.case when then end 两种写法
第一种 格式 : 简单Case函数 :
格式说明
case 列名
when 条件值1 then 选择项1
when 条件值2 then 选项2.......
else 默认值 end
第二种 格式 :Case搜索函数
格式说明
case
when 列名= 条件值1 then 选择项1
when 列名=条件值2 then 选项2.......
else 默认值 end
5.