您的位置:首页 > 数据库

iOS-SQLite数据库基本语句

2016-03-04 14:32 441 查看
总结了些移动端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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息