SQLite 常用法查询表

一、对数据库的操作

1.创建/进入数据库

$sqlite3 DatabaseName.db

2.退出数据库

sqlite> .quit 或者 sqlite> .exit

3.导出数据库

$sqlite3 testDB.db .dump > testDB.sql

4.查看当前数据库

sqlite> .database

二、对数据库表的操作

1.查看当前数据库有那些表

sqlite> .table

2.查看某一个表的定义

sqlite> .schema [表名]

3.创建表

create table [表名](
[列名] [类型] [约束条件],
[列名] [类型] [约束条件]
);

示例:

create table student(
    id int not null primary key),
    name varchar(20) not null,
    age int not null,
    address varchar(20) not null
);

4.删除表

drop table [表名];

示例:

drop table student;

5.清空表

truncate table [表名];

示例:

truncate table student;

三、对数据库内容的操作

1.增

insert into [表名] ([字段名1],[字段名2]…)
values ([常量1],[常量2]…);
insert into [表名] ([字段名1],[字段名2]…)
select [查询语句
];

示例:

insert into student (id,name,age,address)
    values (1,"hzq",22,"china");
insert into student (id,name,age,address)
    select (id,name,age,address) from student_T;

2.删

delete from [table] [where表达式]

示例:

//删除ID为1的学生信息
delete from student where id=1;

3.查

select [ALL|DISTINCT] [目标列1…]
from [表名]
[where表达式]
[order by 表达式]
[limit 表达式];

示例:

//显示来自中国的id最大的前4位
select name from student
    where address="china"
    order by id DESC
    limit 4;

4.改

update [表名] set [列名]=[需要修改成为的值,或者表达式] [where表达式];

示例:

update student set age=18 where id=1;

四、约束条件

1.where

指定条件。
同时可以通过关系运算符和逻辑运算符”>,<,=,like,not”

示例:

//查询student表中,id=1的结果;
select * from student where id=1;
//查询student表中,id大于10小于100的结果。
select * from student where id>10 and id < 100;

2.order by

按照一定的顺序显示结果。支持升序和降序。
order by [列名] ASC; //升序
order by [列名] DESC; //降序

示例:

//查询所有的学生,并按照降序排序
select * from student order by id DESC;

3.like

通过通配符来匹配达标的项。

可以使用的通配符有两个:

  • 百分号:%
  • 下划线:_

%表示零个或者多个字符,_表示一个数字或字符。

示例

where salary like "200%"    找到200开头的结果
where salary like "%200%"   找到含有200的结果
where salary like "_00%"    找到第二位和第三位都是0的结果
where salary like "2_%_%"   找到以2开头,并且长度至少有3位的结果
where salary like "2%3"     找到2开头,3结尾的结果

4.limit

限制输出结果的数量。
limit [int] [offset [int]];
其中offset表示偏移量。

示例:

//查询student表,从第2(1+1)个数据开始,只显示3个。
select * from student limit 3 offset 1;
注意:数据库中的表的下标,是从0开始。

5.group by

与select连用,将相同的数据进行分组。
注意:group by要放在where之后,order by之前。
相当于对同名的进行一个组合。直接显示会只是显示第一行。

示例:

//显示出每个学生的名字,以及他的总分
select name,SUM(grade) from student group by name;

6.having

指定过滤条件, 与group by连用。
在对进行了group by之后,再一次的筛选。

示例:

//输出age次数出现了两次以上的结果
select name,age from student group by age having COUNT(age)>=2;

7.distinct

与select一起使用,用来查找出不重复的结果。

示例:

//看学生都是来自哪几个地方
select distinct address from student 

8.join

join主要用于多表查询,还有一种方式就是使用子查询。select中嵌套select.
虽然在sql中是定义了三种外链接:left,right,full,但是sqlite中只支持左外查询(left outer join)

示例:

select * from keys 
left join Sections
on Keys.SectionID=sections.sectionid
order by KeyID ASC;

达到的效果为以前面的表为基本,添加新的表的中的列,然后不能补充的,用null表示。

五、常用函数

1.COUNT

统计行数

示例:

找到有多少人是来自suining的
select COUNT(address) from student where address="suining";

2.SUM

统计所选列中,相加的结果

示例:

找到1号学生的总成绩
select SUM (grade) from student where id = 1;
    原文作者:JokerHerry
    原文地址: https://www.jianshu.com/p/17e5269c09d4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞