我们在iOS应用程序中无法使用图形化界面操作数据库,在程序运行过程中操作数据库中的数据需要通过SQL语句。
什么是SQL
SQL(structured query language):结构化查询语言。
SQL是对数据库中的数据进行定义和操作的语言。
SQL语言简洁,语法简单,好学好用。
什么是SQL语句
使用SQL语言编写出来的句子\代码,就是SQL语句。
在程序运行过程中,要想操作(增删改查)数据库中的数据,必须使用SQL语句。
一、创建表
/* CREATE TABLE -- 创建表 JF_Person -- 表的名称 ( -- 里面是表的字段 id -- 字段 INTEGER -- 类型 NOT NULL -- 不能为空 PRIMARY KEY -- 主键 AUTOINCREMENT -- 字段 name -- 字段 ... ) ; -- sql语句结束 注意: 1.表名称和字段可以加"" 2.如果表已经存在,会创建失败 */ CREATE TABLE IF NOT EXISTS JF_Person ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, height REAL );
二、删除表
/* DDL 删除表 DROP TABLE -- 删除表 JF_Person -- 要删除的表名 */ DROP TABLE JF_Person;
三、增
/* DML添加数据 INSERT INTO -- 添加数据 JF_Person -- 要添加数据的表 (name, age, height) -- 添加哪些字段 VALUES -- 固定写法 ('zhangsan', 20, 1.78) -- 对应的值 注意: 1.字段和值一定要对应,否则也会添加错误的数据进表里 2.TEXT类型需要添加'' */ INSERT INTO JF_Person (name, age, height) VALUES ('zhangsan', 20, 1.78);
四、删
/* DML删除数据 DELETE -- 删除数据 FROM -- 从哪张表中删除数据 WHERE -- 条件 */ DELETE FROM JF_Person WHERE id = 1;
五、改
/* DML更新数据 UPDATE -- 更新数据 JF_Person -- 需要更新数据的表 SET -- 更新哪个字段 name = 'liudehua' -- 更新字段的值 WHERE -- 条件 注意: 1.如果不指定条件会更新所有数据 */ UPDATE JF_Person SET name = 'liudehua', age = 30, height = 1.70 WHERE id = 3;
六、查
/* DQL查询数据 SELECT -- 查询 name, age -- 查询的字段 FROM -- 从哪张表中查询 JF_Person -- 查询的表名 */ -- 查询指定字段 SELECT name, age FROM JF_Person; -- 查询所有字段 SELECT * FROM JF_Person; -- 查询 age < 22 的记录的name, age字段 SELECT name, age FROM JF_Person WHERE age < 22; -- 查询 age < 22 的所有字段 SELECT * FROM JF_Person WHERE age < 22; -- 查询记录总数 SELECT COUNT(*) FROM JF_Person; -- 查询 age < 22 的记录总数 SELECT COUNT(*) FROM JF_Person WHERE age < 22; -- 查询最大的 age SELECT MAX(age) FROM JF_Person; -- 查询最小的 age SELECT MIN(age) FROM JF_Person; -- 查询所有记录的所有字段,根据 age 升序排序 SELECT * FROM JF_Person ORDER BY age; -- 查询所有记录的所有字段, 根据 age 降序排序 SELECT * FROM JF_Person ORDER BY age DESC; -- 使用多个字段排序,先按age降序排序,当age相同再根据height降序排序 SELECT * FROM JF_Person ORDER BY age DESC,height DESC; -- 返回指定的记录 -- LIMIT常用于分页 -- 0 表示跳过的3条 -- 2 表示获取2条 SELECT * FROM JF_Person LIMIT 3, 2; -- 取出年龄最大的3条记录 SELECT * FROM JF_Person ORDER BY age DESC LIMIT 3; -- 查询是给字段取别名 SELECT name AS JP_name, age AS JF_age, height AS JF_height FROM JF_Person;