SQLite 的使用

来源:互联网 发布:杭州淘宝拍摄地点推荐 编辑:程序博客网 时间:2024/06/16 12:38

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 = 28UPDATE person SET age = 26

 删除数据:DELETE FROM 表名 【WHERE 条件语句】//没有条件语句则删除所有数据,有条件语句则删除符合条件的数据
DELETE FROM person WHERE age = 24DELETE FROM person

查询数据:SELECT 列名... FROM 表名       //普通查询
         SELECT age FROM personSELECT * 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
LIKELIKE用通配符匹配字符串LIKE匹配字符串时不区分大小写
下划线 _ 匹配一个字符串    SELECT * FROM person WHERE country LIKE '____'
百分号 % 匹配多个字符串SELECT * FROM person WHERE country LIKE '%na'

GLOBGLOB用通配符匹配字符串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 列名

0 0
原创粉丝点击