iOS-SQLite数据库基本语句

来源:互联网 发布:mac的flash怎么更新 编辑:程序博客网 时间:2024/06/11 09:51

总结了些移动端SQList数据库的一些语句,倒着总结的,请从文章最后面往上看吧微笑

以下 t_person 为表

Navicat 数据库工具


主键约束 (约束都是在创建表的时候添加)
有的时候,name可能一样,age可能一样,为了数据库的每条记录都唯一,就用到主键

PRIMARY KEY关键字(会自增长),且主键只能有一个(复合主键除外)
写PRIMARY KEY的时候,相当于隐藏写了一个UNIQUE(唯一)和NOT NULL(不为空NULL)

CREATE TABLE IF NOT EXISTS t_student (id integer PRIMARY KEY, name text, age integer);

执行下面代码两遍,成功插入2条数据,id第1条数据为1,第2条为2
INSERT INTO t_student (name, age) VALUES ('张三三',20);

约束 (约束都是在创建表的时候添加)
NOT NULL关键字,不能为空
创建表的时候,不允许name为空NULL,以后插入数据的时候name为必填
CREATE TABLE if NOT EXISTS t_person (name text NOT NULL, age integer);

上面创建表时候,插入数据的时候,如果name不写,就是为空NULL,数据库就会报错
INSERT INTO t_person (age) VALUES (28);

UNIQUE关键字,唯一
创建表的时候,name不能重复(唯一)且不能为空(    NULL),age不能为空(NULL)
CREATE TABLE if NOT EXISTS t_person (name text NOT NULL UNIQUE, age integer NOT NULL);

DEFAULT关键字,默认添加
即使你插入的时候,不写身高,数据库会默认添加身高为1.0
CREATE TABLE if NOT EXISTS t_person (name text NOT NULL UNIQUE, age integer NOT NULL, height real DEFAULT 1.0);

以上关键字可以一起使用
name不能为空(NULL),且不能重复(唯一)
CREATE TABLE if NOT EXISTS t_person (name text NOT NULL UNIQUE, age integer);

LIMIT关键字 分页取数据

第一页:LIMIT 0,5; (每页5条数据)第二页:LIMIT 5,5;第三页:LIMIT 10,5;第n页 LIMIT 5*(n-1),5;

跳过前面的2条数据,开始取,取出2条数据(或者理解为,从第2条开始取,不包含第2条,取出2条数据)
SELECT * FROM t_person LIMIT 2,2;

取出最前面3条数据
SELECT * FROM t_person LIMIT 3;
等价于下面这行
SELECT * FROM t_person LIMIT 0,3;

先按照age的大小,升序排序,然后跳过前面的5条数据,开始取,取出3条数据
SELECT * FROM t_person ORDER BY age ASC LIMIT 5,3;

或者,比如每页5条数据,下面这行就是取出第二页的前3条数据
SELECT * FROM t_person LIMIT 5,3;

排序
根据age大小,降序排序
SELECT * FROM t_person ORDER BY age DESC;降序(大到小)

根据age大小,升序排序
SELECT * FROM t_person ORDER BY age ASC;升序(小到大)

根据age小大,降序排序,如果age一样,再按照height小大,升序排序
SELECT * FROM t_person ORDER BY age DESC, height ASC;

查询数量,查询age>20的数据有多少条
SELECT count(*) FROM t_person WHERE age > 20;SELECT count(name) FROM t_person WHERE age > 20;

查询时,起个别名
SELECT count(*) 剩余数量 FROM t_person WHERE age > 20;

给某个字段或者表起别名,方便查看
SELECT name 名字, height 身高 FROM t_person WHERE age > 20;

查询语句
SELECT * FROM t_person WHERE age > 20;SELECT name FROM t_person WHERE age > 20;

模糊查询

SELECT * FROM t_person WHERE name LIKE '%虾%';   %表示模糊查询,这样写表示字符串中有'虾'字的都查询出来,或者'虾%',表示查询'虾'字开头的数据如果在oc语言中,%表示特殊符号,写两个%%表一个%,'%%虾%%'

删除表中的某些数据,height>90

DELETE FROM t_person WHERE height > 90;

删除表中名字叫小黑的数据
DELETE FROM t_person WHERE name = '小黑';

删除时满足以下其中一个条件
DELETE FROM t_person WHERE name > 22 OR height < 1.5;

删除时同时满足以下两个条件
DELETE FROM t_person WHERE name > 22 AND height < 1.5;

更新或修改,WHERE为条件 name=小黑
UPDATE t_person SET height = 1.91 WHERE name = '小黑';

插入语句
INSERT INTO t_person (name, age, height) VALUES ('小黄', 20, 1.75);

也可以不插入某个字段,这里是height没有插入,数据库中就是NULL
INSERT INTO t_person (name, age) VALUES ('小黑', 28);

删除表
DROP TABLE IF EXISTS t_person;

新建表
CREATE TABLE IF NOT EXISTS t_person (name text, age integer, height real);

SQList数据库是可以无类型的
CREATE TABLE IF NOT EXISTS t_person (name, age, height);


0 0