IOS下sqlike数据库的使用

数据库的操作

—————————————————————————sqlite常用数据类型
INTEGER 整形
TEXT 文本型(字符串)
REAL 实数(浮点型数据)
BLOB 较大的二进制数据

—————————————————————————sql创建:

CREATE 创建;
TABLE 表;
PRIMARY KEY 主键,唯一标识符
AUTOINCREMENT 自动增长
NOT NULL 非空
UNIQUE 唯一
if not exists 如果不存在
原型:CREATE TABLE 表名称(字段1 字段类型 是否主键 是否唯一 是否可空 是否自动增加, 字段2 , 字段类型..);
例句:CREATE TABLE  name3(nameID INTEGER PRIMARY KEY UNIQUE  , names TEXT)
ps:不知道是不是工具的问题AUTOINCREMENT这条语句加进去总是报错 而且代码的顺序不可以写错
—————————————————————————删除表
DROP 丢弃 
DROP TABLE name

—————————————————————————添加列
ALTER 改变 修改
ALTER TABLE name ADD nameID INTEGER

—————————————————————————插入数据
INSERT 插入
INTO 到..里面
INSERT INTO name VALUES (1,’ zhang ’,1)//插入数据到name表中,不能单独插入.
INSERT INTO name(nameID,sex)VALUES(‘zhang’,0)//同上 只是方式不同 每一列都必须写

—————————————————————————查询数据
SELECT 查询
* 全部
FROM 来源
WHERE 哪里
LIMIT 限制
SELECT * FROM name // 查询name中所有数据
SELECT * FROM name WHERE nameID <10 //查询name表中nameID列的所有小于10的数据
SELECT * FROM name WHERE nameID <10 OR sex = 1 //查询表中nameID小于10或sex 等于1的数据
SELECT * FROM name WHERE nameID <10 AND number >5 //查询表中所有ID小于10number大于5的数据
SELECT nameID from name1//查询name里所有nameID列的数据
SELECT * FROM Students LIMIT 5,15 //从第六条开始 往后的15SELECT DISTINCT names from name1 //查询name1表中names列中所有不重复的数据
—————————————————————————匹配数据
LIKE 像 匹配
SELECT * from name1 where names like ‘a%’//匹配字符串前面是”a”的字符串
SELECT * from name1 where names like ‘_a%’//匹配字符串第二位开始为”a”的字符串
SELECT * from name1 where names like ‘%a%’//匹配包含’a’的字符串
SELECT * from name1 where names like ‘%a’//匹配以’a’结束的字符串

—————————————————————————修改数据
UPDATE 更新
SET 设置
UPDATE name1 SET  names = '123' WHERE nameID > 2  AND nameID < 10 //修改name1表中nameID属性大于2小于10names列的数据

—————————————————————————删除数据
DELETE 删除
DELETE FROM name1 WHERE nameID > 2 //删除name1中所有nameID大于2的数据

—————————————————————————数据排序
ORDER BY 整理
SELECT * FROM name1 ORDER BY nameID DESC //对name1表中的nameID列进行降序排列显示

—————————————————————————联合查询
select  name1.names,people.name from name1,people WhERE name1.nameID= people.nameID //查询name1表盒people表中nameID 相同的name数据

—————————————————————————函数和运算符
MAX 最大值 MIN 最小值 AVG 平均值 SUM 求和 
= 等于 <> 不等于 > 大于 < 小于 >=大于等于 <= 小于等于 betwee 两个数之间(某个范围内) 

IOS中的使用

—————————————————————————创建
想再IOS中使用sqlike数据库 需要在Xcode中导入库文件
新建一个Xcode—>点击左侧栏最上面的蓝色文件标识 打开设置—>选择build phases  —> 展开link binary With Libraries—>点击 + 号弹出添加库文件目录,在搜索框输入 sql 出现两个dylib类型的文件 选择其中一个文件 点击ADD 添加成功

sqlite3 *dataBase;//创建一个sqlite3的对象
const char *dataBasePath = [dbPath UTF8String]//将路径文本转化为C类型的字符串
sqlite3_open(dataBasePath, &dataBase) == SQLITE_OK //打开一个数据库文件不存在则创建 成功返回0
sqlite3_close(dataBase);//关闭数据库数据库使用完毕 一定要关闭数据库
NSString *sqlStr = @"CREATE TABLE student (studentID INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER)";//创建一个sql创建表的语句字符串
char *error;//创建一个C类型字符串用于接收错误信息
sqlite3_exec(dataBase, [sqlStr UTF8String], NULL, NULL, &error) ==SQLITE_OK//执行sql的创建语句 第一参数为数据库对象 第二参数为char类型的sql语句字符串 第三个参数为C语言的回调函数 第四个参数为回调函数的第一个参数 第五个参数为执行失败后返回的错误信息
增加删除和更改的使用方法和创建表相同

—————————————————————————查询数据
NSString*sqlStr = @"select * from student";//创建一个查询语句
sqlite3_stmt *stmt = nil;//创建缓冲区
sqlite3_prepare_v2(dataBase, [sqlStr UTF8String],-1, &stmt, nil) == SQLITE_OK//按照sqlstr的文本代码规则取出数据 绑定缓冲区,第一个参数为数据库对象 第二个参数为代码文本,第三个参数表示C语言代码的长度 第四个参数为缓冲区对象 第四个参数为错误信息 成功返回0
while (sqlite3_step(stmt)==SQLITE_ROW)//在循环查询的时候判断是否还有下一行 sqlite3_step(stmt)这段代码每执行一次 取出数据的下标+1 如果当前下标存在数据 则返回100 否则返回101
int studentID = sqlite3_column_int(stmt, 0);//取出第一列的数据 第一列的数据类型为INTEGER 所以使用int接收
char *name = (char *) sqlite3_column_text(stmt, 1);//取出第二列的文本数据 返回值为char类型文本 所以使用char接受

—————————————————————————插入数据的第二种方法
NSString *sqlStr = @"insert into contactTable (name,phoneNumber) values (?,?)";//插入数据的时候使用问号作为要插入值的占位符
sqlite3_stmt * stmt = nil;//创建缓冲区
sqlite3_prepare_v2(database, [sqlStr UTF8String], -1, &stmt, nil) == SQLITE_OK//banding缓冲区 成功返回0
sqlite3_bind_text(stmt, 1, [contant.name UTF8String], -1, NULL);//绑定要插入的数据第一个参数缓冲区 第二个参数对应问号的索引从1开始 第三个参数就是绑定的值 第四个就是计算长度 第五个回调函数
sqlite3_step(stmt) == SQLITE_DONE//如果成功返回101
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值