SQLite是一个开源的、内嵌式的关系型数据库。
下载地址:http://www.sqlite.org/download.html
SQL是一种结构化查询语言的缩写,SQL是一种专门用来与数据库通信的语言。
一、一般数据库采用固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入的值自动判断。
SQLite具有以下五种基本数据类型:
1.integer:带符号的整型。
2.real:8字节表示的浮点类型。
3.text: 字符类型,支持多种编码,大小无限制。
4.blob: 任意类型的数据,大小无限制。
5.null:表示空值。
二、SQL语句格式
所有的SQL语句都是以分号结尾的,SQL语句不区分大小写。
关系型数据库的核心操作:
创建、修改、删除表;
添加、修改、删除行;
查找。
1.创建、打开数据库:

sqlite3 person.db

提示:


当person.db文件不存在时,sqlite会创建并打开数据库文件。


当person.db文件存在时,sqlite会打开数据库文件。


2.退出数据库命令


.quit 或 .exit


3.创建表:cretae语句


create table 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数类型,...);


创建一表格该表格包含3列,列名分别是:"id"、"name"、"addr"。


示例:


create table persons(id integer, name text, addr text);

另外,在用sqlite设计表时,每个表都可以通过primary key手动设置主键,每个表只能有一个主键,设置为主键语法:


create table 表名称(列名称1 数据类型 primary key,列名称2 数据类型,列名称3 数据类型,...);


示例:


create table persons(id integer primary key,name text,addr text);

3.查看表:


语法:.tables


查看数据表的结构:.schema [表名]


4.修改表:alter语句


在已有的表中添加或删除列以及修改表名(删除暂时不支持)。


语法:


alter table 表名 add 列名 数据类型;


alter table 表名 rename to 新表名;


示例:


alter table persons add sex text;
alter table persons rename to new_persons;

可以用.tables查看一下,会发现表名变为new_persons。


5.删除表:drop table语句


用于删除表(表的结构、属性以及表的索引也会被删除);


示例:


drop table persons;

用.table查看一下,发现表被删除了。


6.插入新行:


当给一行中的所有列赋值时:语法:


insert into 表名 values (列值1, 列值2,列值3,...);


注意:当列值为字符串时要加上''号。


当给一行中的部分列赋值时:语法:


insert into 表名 (列名1,列名2,...)values(列值1,列值2,...);


示例:


create table persons(id integer, name text, addr text);
insert into persons values(1,'lucy','beijing');
insert into persons (id, name)values(1,'peter');

7.修改表中的数据:update语句


使用where根据匹配条件,查找一行或多行,根据查找的结果修改表中相应的列值(修改哪一列由列名指定)。


语法:


update 表名 set 列1 = 值1, 列2 = 值2,...[匹配条件];


注意,当表中有多列、多行符合匹配条件时会修改相应的多行,当匹配条件为空时匹配所有。


匹配条件:where子句


where子句用于规定匹配的条件。


操作符:= <> > < >= <=;分别表示等于、不等于、大于、小于、大于等于、小于等于。


匹配条件语法:         


where 列名 操作符 列值


示例:


update persons set id=2,addr='tianjing' where name='peter';

8.删除表中的数据 delete语句


使用where根据匹配条件,查找一行或多行,根据查找的结果删除表中的查找到的行。


语法:delete from 表名[匹配条件];


注意:当表中有多列、多行符合匹配条件时会删除相应的多行。


示例:


delete from persons where name='peter';

9.查询:select 语句


用于从表中选取数据,结果被存放在一个结果表中。


语法:


select * from 表名[匹配条件];


select 列名1,列名2...from 表名[匹配条件];


提示:星号(*)是选取所有列的通配符。


示例:


select * from persons where id=1;
select name from persons where id=1;

三、匹配条件语法


数据库提供了丰富的操作符配合where子句实现了多种多样的匹配方法。


例如:in、and、or、between and、like、not。


1.in允许我们在where子句中规定多个值。


语法:where 列名 in (列值1,列值2,...);


2.and可在where子句中把两个或多个条件结合起来(多个条件之间是与的关系)。


语法:where 列1 = 值1 and 列2=值2...


3.or可在where子句中把两个或多个条件结合起来,多个条件之间是或的关系。


between A and B会选取介于A、B之间的数据范围,这些可以是数值、文本、或日期。


语法:where 列名 between A and B


4.like 用于模糊查找


语法:where 列名 like 列值


示例:


select * from persons where id like 3;

5.not可以取出原结果集的补集。


语法:


where 列名 not in(列值1,列值2...);


四、order by语句


默认按照升序对结果集进行排序,可使用desc关键字按照降序多结果集进行排序。


示例:


升序:


select * from 表名 order by 列名;


降序:


select * from 表名 order by 列名 desc;