Sqlite数据库-使⽤的查询语句⼤全常规查询
1. 查询所有字段:select * from 表名;
2. 查询指定字段:select 列1,列2,... from 表名;
3. 使⽤ as 给字段起别名: select 字段 as 名字.... from 表名;
4. 查询某个表的某个字段:select 表名.字段 .... from 表名;
5. 可以通过 as 给表起别名: select 别名.字段 .... from 表名 as 别名;
6. 消除重复⾏: distinct 字段
sqlite>select*from stu;
id  name  class  score
--  ----  -----  -----
1⼩宁360
2⼩雷570
3⼩徐180
4⼩伟280
5⼩涛390
6⼩梦490
7⼩吴185
8⼩张295
sqlite>select name,score from stu;
name  score
----  -----
⼩宁60
⼩雷70
⼩徐80
⼩伟80
⼩涛90
⼩梦90
⼩吴85
⼩张95
sqlite>select name as姓名from stu;
姓名
--
⼩宁
⼩雷
⼩徐
⼩伟
⼩涛
⼩梦
⼩吴
⼩张
sqlite>select stu.name,stu.score from stu;
name  score
----  -----
⼩宁60
⼩雷70
⼩徐80
⼩伟80
⼩涛90
⼩梦90
⼩吴85
⼩张95
sqlite>select s.name from stu as s;
name
name
----
⼩宁
⼩雷
⼩徐
⼩伟
⼩涛
⼩梦
⼩吴
⼩张
sqlite>select distinct score from stu;
score
-----
60
70
80
90
85
95
条件查询
㈠⽐较运算符:>, <, >=, <=, =, !=, <>
sqlite>select*from stu where score >80;
id  name  class  score
--  ----  -----  -----
5⼩涛390
6⼩梦490
7⼩吴185
8⼩张295
sqlite>
sqlite>select*from stu where score =80;
id  name  class  score
--  ----  -----  -----
3⼩徐180
4⼩伟280
㈡逻辑运算符:and, or, not
sqlite>select*from stu where class >1and score >80;
id  name  class  score
--  ----  -----  -----
5⼩涛390
6⼩梦490
8⼩张295
sqlite>
sqlite>select*from stu where class >1or score >80;
id  name  class  score
--  ----  -----  -----
1⼩宁360
2⼩雷570
4⼩伟280
5⼩涛390
6⼩梦490
7⼩吴185
8⼩张295
sqlite>
sqlite>select*from stu where not(class >1and score >80);
id  name  class  score
--  ----  -----  -----
1⼩宁360
2⼩雷570
3⼩徐180
4⼩伟280
7⼩吴185
㈢模糊查询:like, GLOB
like: 百分号(%)代表零个、⼀个或多个数字或字符。下划线(_)代表⼀个单⼀的数字或字符。glob: 星号(*)代表零个、⼀个或多个数字或字符。问号(?)代表⼀个单⼀的数字或字符。
like不区分⼤⼩写, glob区分⼤⼩写
sqlite>
sqlite>select*from stu where name like"%宁";# 查询以宁结尾的名字id  name  class  score
--  ----  -----  -----
1⼩宁360
sqlite>
sqlite>select*from stu where name like"宁%";# 查询以宁开头的名字sqlite>
sqlite>
sqlite>select*from stu where name like"%宁%";# 查询包含宁的名字id  name  class  score
--  ----  -----  -----
1⼩宁360
sqlite>
sqlite>
sqlite>select*from stu where name like"_";# 名字是1个字的sqlite>
sqlite>select*from stu where name like"__";# 名字是2个字的
id  name  class  score
-
-  ----  -----  -----
1⼩宁360
2⼩雷570
3⼩徐180
4⼩伟280
5⼩涛390
group by的用法及原理详解6⼩梦490
7⼩吴185
8⼩张295
sqlite>
sqlite>
sqlite>select*from stu where name like"__%";# 名字是2个字以上的id  name  class  score
--  ----  -----  -----
1⼩宁360
2⼩雷570
3⼩徐180
4⼩伟280
5⼩涛390
6⼩梦490
7⼩吴185
8⼩张295
sqlite>select*from stu where name GLOB  "*宁";
id  name  class  score
--  ----  -----  -----
1⼩宁360
sqlite>
sqlite>
sqlite>select*from stu where name GLOB  "??";
id  name  class  score
--  ----  -----  -----
1⼩宁360
2⼩雷570
3⼩徐180
4⼩伟280
5⼩涛390
6⼩梦490
7⼩吴185
8⼩张295
id  name  class  score
--  ----  -----  -----
9  AA    290
10  aa    390
sqlite>
sqlite>select*from stu where name glob  "aa";
id  name  class  score
--  ----  -----  -----
10  aa    390
㈣范围查询:in,not in,between…and,not between…and sqlite>select*from stu where score in(70,80,90);# in 表⽰在⼀个⾮连续的范围内
id  name  class  score
--  ----  -----  -----
2⼩雷570
3⼩徐180
4⼩伟280
5⼩涛390
6⼩梦490
9  AA    290
10  aa    390
sqlite>
sqlite>select*from stu where score not in(70,80,90);# 不在该⾮连续范围内
id  name  class  score
--  ----  -----  -----
1⼩宁360
7⼩吴185
8⼩张295
sqlite>
sqlite>
sqlite>select*from stu where score between80and100;# 在⼀个连续的范围内
id  name  class  score
--  ----  -----  -----
3⼩徐180
4⼩伟280
5⼩涛390
6⼩梦490
7⼩吴185
8⼩张295
9  AA    290
10  aa    390
sqlite>
sqlite>
sqlite>select*from stu where score not between80and100;# 不在⼀个连续的范围内id  name  class  score
--  ----  -----  -----
1⼩宁360
2⼩雷570
空判断
select*from table(表名)where trim(字段)='';
is null 不起作⽤
sqlite>select * from stu where score is not null;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。