ios 数据库(SQLite3)

DDL语句:

1.删除表

      DROP TABLE t_student;
      DROP TABLE IF EXISTS t_student;(较严禁)

2.创建表

CREATE TABLE IF NOT EXISTS t_dog (naem text,age integer);  或者

CREATE TABLE IF NOT EXISTS 't_student' (
  'id' integer NOT NULL PRIMARY KEY AUTOINCREMENT,/*主键   自动增长 */
  'name' text UNIQUE,
  'age' integer );

 CREATE TABLE IF NOT EXISTS t_dog (naem text ,age integer DEFAULT 1); 
 //  NOT NULL 约束的字段不能为空
 //  PRIMARY KEY 约束的字段是主键
 //AUTOINCREMENT 主键自增长
 //UNIQUE 约束的字段 是唯一的,即在数据库中不能重复
//DEFAULT 即默认值 为 1

//标的关联(联合主键)
CREATE TABLE IF NOT EXISTS 't_student' (
  'id' integer NOT NULL PRIMARY KEY AUTOINCREMENT,/*主键   自动增长 */
  'name' text UNIQUE,
  'age' integer,
  'class' integer,CONSTRAINT "f_student_rel_class" FOREIGN KEY ("class") REFERENCES "t_class" ("id"));
// 用约束 f_student_rel_class 的 class外键 引用 t_class表的 主键 id字段
//class 班级表  学生是属于哪个班级,所以学生表(t_student)中维护了一个字段 class 来引用班级表(t_class)的主键id

DML语句:

1.插入数据

   INSERT INTO t_student (name,age) VALUES ('张飞',11);

2.更新数据

  UPDATE t_student SET age = 45 WHERE name = '林冲';//将名字是林冲的用户年龄更新为45
  UPDATE t_student SET name = '西门庆' WHERE age > 80;//将大于80岁的用户名字更新为西门庆

3.删除数据

  DELETE FROM t_student WHERE name = '西门庆';//根据用户名删除数据
  DELETE FROM t_student; //删除表中所有值
  DELETE FROM t_student WHERE age = 20;//条件删除 等于20岁的删除
  DELETE FROM t_student WHERE age < 20 AND heigt < 150;//删除年龄小于20 并且 身高小于1.5米的
  DELETE FROM t_student WHERE age < 20 OR height < 150;//删除年龄小于20 或者 身高小于1.5米的

DQL语句:

查询语句

 //查询所有数据
SELECT * FROM t_student;

//查询特殊字段
SELECT name,age FROM t_student;

//通过条件查询语句
SELECT name,age FROM t_student WHERE age <= 30;

//通过条件(模糊)查询
SELECT name,age FROM t_student WHERE name LIKE '张%';//根据名字    首字是张的条件查询  % 代表后面剩余的是任意字符

//多个条件查询
SELECT name,age FROM t_student WHERE name LIKE '%张%' AND age > 20;

SELECT name,age FROM t_student WHERE name LIKE '%张%' OR age >= 20;
//查询联合主键的数据
SELECT * FROM t_student WHERE class = (SELECT id FROM t_class WHERE name = 'ios');
//查出全校 ios的学生
SELECT s.name sname,c.name cname FROM t_student s,t_class c WHERE s.class = c.id AND c.name = 'ios';

计算个数:

SELECT COUNT(*) FROM t_student; //数据总条数
SELECT COUNT(age) FROM t_student; //age不为空的个数

数据的排序:

SELECT * FROM t_student ORDER BY age; //通过年龄排序 默认升序
SELECT * FROM t_student ORDER BY age DESC; //降序
SELECT * FROM t_student ORDER BY age ASC; //升序
SELECT * FROM t_student ORDER BY age,name DESC;//先以年龄的升序排序,如果年龄相同,以名字的降序排序

起别名:

 SELECT s.name,s.age FROM t_student AS s;//给表起别名
SELECT name AS myName,age AS myAge FROM t_student;//给字段起别名

分页查询:

SELECT name,age FROM t_student LIMIT 1,2;// 1表示跳过的数据个数,2表示查询多少条
SELECT name,age FROM t_student LIMIT 5;//跳过0条数据,每次查询5条数据 
第N页数据 : limit n*(n-1),5   //每页 5条数据

Demo地址 oc版本
Demo地址 swift版本
使用可以看这里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 资源连接: iOS数据库存储之SQLite3; iOS数据存储之文件沙盒; iOS数据存储之NSCoding; S...
    asaBoat阅读 2,821评论 0 16
  • 1 SQLite 数据库的SQL语句分为三种分别是:DDL DML DQL 1.1 约束关键字 常见约束关键字...
    岁与禾阅读 772评论 0 3
  • iOS-数据库 -sql 先从数据库语句-SQL语句 1、在程序运行过程中,要想操作(增删改查,CRUD)数据库中...
    一轮圆月阅读 614评论 0 4
  • iOS中进行数据持久化存储有几种方式 plist(NSArray NSDictionary只用来存储数组和字典,并...
    艳晓阅读 608评论 1 3
  • ios数据库:CoreData、 自带的框架SQLite、FMDB :第三方类库 SQL(structured ...
    我是谁重要吗阅读 4,978评论 0 9