SQLite 常用语句解析

SQLite 常用语句
1.创建数据库: sqlite3 数据库名称.db;
example: sqlite3 test.db
2.查询已经创建的数据库: .database;
3.附加数据库:ATTACH DATABASE ‘testDB.db’ as ‘TEST’;
4.分离数据库:DETACH DATABASE ‘currentDB’;
5,创建表:
sqlite> CREATE TABLE DEPARTMENT(
…> ID INT PRIMARY KEY NOT NULL, //主键
…> DEPT CHAR(50) NOT NULL,
…> EMP_ID INT NOT NULL
…> );
6,查看数据库中所有表格名称:.tables;
7,查看数据库中某个表格的完整信息:.schema COMPANY(company 表示表格的名称);
删除表,DROP TABLE COMPANY;

8,插入数据:
第一种写法:
INSERT INTO COMAPNY (colum1,colum2,colum3) VALUES(value1,value2,value3);
其中“COMAPNY”表示 “表名”;
colum1,colum2,colum3 表示,键值;
colum1,colum2,colum3 表示,各个键值对应的数据;
第二种写法:
INSERT INTO COMPANY VALUES (value1,value2,value3);
不用说明表格中的键值,而直接插入数据;

9.规范化表格输出样式;
在前面输入以下两句:
.header on
.mode column
然后再是查询输出语句 :select * from table_name;

10.查询语句:
Example :tablename == “person”;
(1),查询表格中的所有的数据:
Select * from peroson ;
(2),查询表格中某一个字段:
Select name from person;
(3),查询表格中某一个或多个字段符合相对应的条件:
//从person表格中 查询年龄等于20的人的姓名;

Select name from person where age = 20;

//从person表格中 查询年龄在20和40之间的人的姓名;
Select name from person where age between 20 and 40;
//从person表格中 查询地址在北京的人的姓名;
Select name from person where address == ‘beijing’;
//从person表格中 查询id, name,age 并且年龄等于20或者40的;
Select id, name,age person where age in(20,40);

//从person表格中 查询id, name,age 并且年龄等40,地址在北京,工资为10000的人;
Select id, name,age person where age = 40 and address == ‘beijing’ and salary = 10000;
//从person表格中查找地址在苏州或者北京的人;
select id,name,address from person where address == ‘suzhou’ or address == ‘beijing’;

11,更新表格中数据:
//更改表格中地址为北京的人的姓名为:dema;
Update person set name = ‘dema’ where address == ‘beijing’;
//更改表格中所有人的信息,比如姓名,地址,关键字 where就不需要了
Update person set name == ‘tom’, salary =8888;
12,删除表格中的数据:
//删除person表格中 name == kangkang 的记录;
Delete from person where name == ‘kangkang’;
//删除表格中id为7的记录;
Delete from person where id = 7;

//删除 person 表格中所有的数据;
Detele from person;
13,SQLite 的like字句:
SQLite 的 LIKE 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,LIKE 运算符将返回真(true),也就是 1。这里有两个通配符与 LIKE 运算符一起使用:
百分号 (%)(表示占用任意多个)
下划线 (_)(一个符号仅表示一个位置)
百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。这些符号可以被组合使用。
//从person表格中查找年龄以4开头的记录;
Select name from person where age like ‘4%’;
//从person表格中查找年龄中第二个数字为4的人的记录;
Select name from person where age like ‘_4’;
14,SQLite 的glob字句:
SQLite 的 GLOB 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,GLOB 运算符将返回真(true),也就是 1。与 LIKE 运算符不同的是,GLOB 是大小写敏感的,对于下面的通配符,它遵循 UNIX 的语法。
星号 (*)
问号 (?)
星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。这些符号可以被组合使用。
//可以把glob当成对大小写敏感的like用法
select * from person where address like ‘B%’;
select * from person where address glob ‘B*’;
15,SQLite 的limit 子句:
用来限制返回的数据条数;
//限制查询表格中返回的数据记录为6条
Select * from person limit 6;
//限制查询表格的数据为两条,并且从第三位开始
Select * from person limit 2 offset 2;
16,SQLite Order By 的使用方法:
SQLite 的 ORDER BY 子句是用来基于一个或多个列按升序或降序顺序排列数据;
//按照年龄降序排列
select * from person order by age desc;
//按照年龄升序排列
select * from person order by age asc;
17,SQLite group by 的使用方法:
//执行后的结果,名字相同的人的薪资会相加在一起,形成一条数据
Select name,sum(salary) from person group by name;

//年龄相同的人的薪资相加在一起,形成一条数据
select name, sum(salary) from person group by age;
//年龄相同的人的薪资相加在一起,然后再按照薪水排序
select name, sum(salary) from person group by age order by salary;
//年龄相同的人的薪资相加在一起,然后再按照名称排序
select name, sum(salary) from person group by age order by name;
18 关键字DISTINCT的用法以及含义
SQLite 的 DISTINCT 关键字与 SELECT 语句一起使用,来消除所有重复的记录,并只获取唯一一次记录。
有可能出现一种情况,在一个表中有多个重复的记录。当提取这样的记录时,DISTINCT 关键字就显得特别有意义,它只获取唯一一次记录,而不是获取重复记录。
//如果name中有相同的记录,取且仅取一条记录(关键字修饰的”键值“,如果有重复的,仅保留其中一条数据)
select distinct name from person;
19, SQLite的 Having 子句
如下图所示:

这里写图片描述 其中HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。 WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件