sqlite基础
一.sqlite简述
1.sqlite是一款轻型的关系型数据库,嵌入式开发、本地型数据记录、小型网站都可适用;其优势不言而喻。
2.本文主要针对新手,快速掌握基本的sql语句,半天学会sqlite增删查改。
3.sql语句不分大小写,以个人习惯为准,本人习惯小写,类型则用大写,以方便阅读区分。
4.以下sql语句用到的表,名称均为:TABLE。
二.sqlite数据类型
1.基本类型
类型 | 描述 |
NULL | 值是一个 NULL 值。 |
INTEGER | 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。 |
REAL | 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。 |
TEXT | 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。 |
BLOB | 值是一个 blob 数据,完全根据它的输入存储。 |
2.亲和类型
sqlite支持列的亲和类型概念。任何列仍然可以存储任何类型的数据,当数据插入时,该字段的数据将会优先采用亲和类型作为该值的存储方式。
数据类型 | 亲和类型 |
INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 | INTEGER |
CHARACTER(20) VARCHAR(255) VARYING CHARACTER(255) NCHAR(55) NATIVE CHARACTER(70) NVARCHAR(100) TEXT CLOB | TEXT |
BLOB no datatype specified | NONE |
REAL DOUBLE DOUBLE PRECISION FLOAT | REAL |
NUMERIC DECIMAL(10,5) BOOLEAN DATE DATETIME | NUMERIC |
三.创建一个表
语句:create table 表名称(字段及字段类型);
1.创建一个表,表中包括ID(关键字)、姓名、性别、年龄、日期
create table TABLE(ID INTEGER PRIMAARY KEY,name VARCHAR,sex VARCHAR,age VARCHAR,date DATATIME);
2.创建一个表,不存在时才创建
create table TABLE if not exists(ID INTEGER PRIMAARY KEY,name VARCHAR,sex VARCHAR,age VARCHAR,date DATATIME);
四.插入记录
语句:insert into 表名称(字段...) values(字段值...);
insert into TABLE_NAME(column1,column2,column3,...columnN)values(value1,value2,value3,....valueN);
1.插入一条记录(如果插入所有字段(列),不需指定列名称,但要保持顺序一致)
insert into TABLE values(1,'Acuity','男',18,'20170920');
2.指定列插入
inser into TABLE(ID,name,sex,age,date) values(2,'Acuity','男',18,'20170920');
inser into TABLE(name,sex,age,date) values('Acuity','男',18,'20170920');
五.删除记录
语句:delete from 表名称 where 条件;可以使用and、or等组合多个条件;
1.删除名字为‘Acuity’的记录
delete from TABLE where name = 'Acuity';
2.删除名称为‘Acuity’并且ID为'1'的记录
delete from TABLE where name = 'Acuity' and ID = 1;
3.删除所有记录
delete from TABLE;
六.更新记录
语句:update 表名称 set 设置字段(列)值 where 条件;可以使用and、or等组合多个条件;
1.将名字为'Acuity'的年龄更新为20
update TABLE set age = 20 where name = 'Acuity';
2.将所有记录中的年龄字段设置为20
update TABLE set age = 20;//此时不用加条件限制;
七.查询记录
语句:select 字段 from 表名称 where 条件;可以使用and、or等组合多个条件;
1.查询整个表
select * from TABLE; //通配符“*”表示表中所有数据(行、列)。
2.查询某一字段(列)
查看表TABLE中的ID字段和NAME字段
select ID,NAME form TABLE;
3.匹配某一条件查询(如行)
1)select 字段 from 表名 where 字段
查询ID为1234的所有数据
select * from TABLE where ID = 1234;
2)select 字段 from 表名 where 字段 between 字段值0 and 字段值1
查询ID为1至10之间的所有数据
select * from TABLE where ID between 1 and 10;
3)匹配前后字符(串):select 字段 from 表名 where 字段 like 条件
通配符‘%’1:查询名字为‘A’开头的记录
select * from TABLE where name like 'A%';
通配符‘%’2:查询名字为‘y’结尾的记录
select * from TABLE where name like ‘%y’;
通配符‘%’3:查询名字中存在'cui'字母的的记录
select * from TABLE where name like ‘%cui%’;
通配符‘%’4:查询名字中不存在'cui’字母的记录
select * from TABLE where name not like ‘%cui%’;
参考
[1] http://www.runoob.com/sqlite/sqlite-data-types.html