sqlite存储的数据类型
NULL:标识一个NULL值。
INTEGER:整数类型
REAL:浮点型
TEXT:字符串
BLOG:二进制
VARCHAR(10):长度不固定且其最大长度为n的字符串
sqlite3中还有VAR CHAR等类型,但仍然会转换成TEXT或者其他类型存储
sqlite存储数据的约束条件
PRIMARY KEY:主键,主键的值必须唯一,用于标识每一条记录;主键同时也是一个索引,通过主键查找记录较快;
主键如果是整数类型,该列的值可自动增长(AUTOINCREMENT)。
FOREIGN KEY:外键,将该表中某一列与的值与另一个表中某一列的值联系起来,如果该表中该列存入不在另一表中某一列的值,即报错
NOT NULL:非空,该列的值不能为空。
UNIQUE:唯一,除主键外,约束其他列的数据的值唯一
CHECK:条件检查,约束该列的值必须符合条件才能存入
DEFAULT:默认值,列数据中的值基本都是一样的,这样的字段列可设为默认值,当在表中插入新的值时,没有指定该列值的话,即为默认值
AUTOINCREMENT:自动增长的值,主键如果是整数类型,该列的值可自动增长(AUTOINCREMENT)
创建表 CREATE TABLE
CREATE TABLE IF NOT EXISTS person("_id" INTEGER PRIMARY KEY AUTOINCREMENT, "name" VERCHAR NOT NULL UNIQUE, "value" TEXT, "country" TEXT DEFAULT‘中国’, "age" INTEGER CHECK(age>20), FOREIGN KEY(age) REFERENCES man(sex));
如果该表不存在则创建一个表 表名是 person,使用INTEGER类型的‘_id’作为主键,并且自增长,"name"为非空且唯一的TEXT类型,‘country’为TEXT类型 默认值是 中国
'age'是INTEGER类型,且值要大于20。age为该表的外键,需要与另一张表的sex列相匹配
修改表 ALTER TABLE
SQLite仅仅支持ALTER TABLE的一部分功能,我们可以用ALTER TABLE 语句来更改一个表的名字,也可以向表中增加一个字段(列),但是不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称,数据类型,以及限定符
修改表名:ALTER TABLE 旧表名 RENAME TO 新表名
增加一列:ALTER TABLE 表名 ADD COLUMN 列名 数据类型 限定符
删除表 DROP TABLE
删除一个表:DROP TABLE 表名
增删改查操作 //【】表示非必要项
插入数据:INSERT INTO 【表名(列名,列名)】 VALUES(插入值,插入值))
INSERT INTO person VALUES('lilly', 'dada','china','24') INSERT INTO person(name,age) VALUES('amy','28')
修改数据:UPDATE 表名 SET 列名 = 新的值 【WHERE 条件语句】 //没有条件语句则修改所有该列,有条件语句则修改符合条件的数据
UPDATE person SET age = 30 WHERE age = 28
UPDATE person SET age = 26
删除数据:DELETE FROM 表名 【WHERE 条件语句】
//没有条件语句则删除所有数据,有条件语句则删除符合条件的数据
DELETE FROM person WHERE age = 24
DELETE FROM person
查询数据:SELECT 列名... FROM 表名 //普通查询
SELECT age FROM person
SELECT * FROM person
SELECT 列名... FROM 表名 LIMIT 数量 OFFSET 偏移量 //限制返回数量以及初始返回位置的查询
SELECT * FROM person LIMIT 3 OFFSET 2 //查询数据,数据返回数量限制为3,并且偏移2位,从第三位开始返回
SELECT 列名 AS 别名 FROM 表名
//给返回的数据列换一个名字
SELECT age AS age number FROM person
SELECT 列名 FROM 表名 【WHERE 条件语句】
//条件查询,其中条件语句除了常见的大于、小于、等于外,还有几个特殊的条件语句
SELECT * FROM person WHERE age > 24
LIKE
LIKE用通配符匹配字符串
LIKE匹配字符串时不区分大小写
下划线 _ 匹配一个字符串
SELECT * FROM person WHERE country LIKE '____'
百分号 % 匹配多个字符串
SELECT * FROM person WHERE country LIKE '%na'
GLOB
GLOB用通配符匹配字符串
GLOB匹配字符串时区分大小写
下划线 _ 匹配一个字符串
SELECT * FROM person WHERE country GLOB '____'
百分号 % 匹配多个字符串
SELECT * FROM person WHERE country GLOB '%na'
BETWEEN 值1 AND 值2
返回两个值之间的数据
SELECT * FROM person WHERE age BETWEEN 24 AND 32
排序 ORDER BY 列名 ASC(DESC) //指定某个列进行排序,ASC为升序,DESC为降序
SELECT age, country FROM person ORDER BY age ASC
区分 DISTINCT 列名 //去掉重复项
SELECT DISTINCT age FROM person
//查找age,重复项值显示一项
分组 GROUP BY 列名