打开数据库
sqlite3 * db = [Database openDB];
数据库的操作指针 stmt:statement
sqlite3_stmt * stmt = nil;
参数1 , 数据库指针 ,
参数2 SQL语句
参数3 SQL语句的长度 (-1 代表的是无限长 , 自动匹配长度)
参数4 返回数据库操作指针
参数5 为未来做准备的 , 预留参数 , 一般写成NULL
验证SQL语句的正确性
int result = sqlite3_prepare_v2(db, "select * from Student", -1, &stmt, NULL);
NSMutableArray * studentArray = [NSMutableArray array];
判断SQL语句的结果
if (result == SQLITE_OK)
{
while (sqlite3_step(stmt) == SQLITE_ROW) 存在一行数据
{
列数从零开始
int ID = sqlite3_column_int(stmt, 0);
const unsigned char * name = sqlite3_column_text(stmt, 1);
const unsigned char * gender = sqlite3_column_text(stmt, 2);
int age = sqlite3_column_int(stmt, 3);
blob 类型的获取
1. 获取长度
int length = sqlite3_column_bytes(stmt, 4);
2. 获取数据
const void * photo = sqlite3_column_blob(stmt, 4);
3.转换成NSData
NSData * photoData = [NSData dataWithBytes:photo length:length];
4.转成 UIImage
UIImage * image = [UIImage imageWithData:photoData];
封装Student模型
Student * student = [[Student alloc]init];
student.ID = ID;
student.name = [NSString stringWithUTF8String:(const char*)name];
student.age = age;
student.gender = [NSString stringWithUTF8String:(const char *)gender];
student.photo = image;
添加到数组中
[studentArray addObject:student];
}
}
释放stmt指针
sqlite3_finalize(stmt);
关闭数据库
[Database closeDB];
sqlite3 数据操作 查询
时间: 2024-11-07 10:11:46
sqlite3 数据操作 查询的相关文章
sqlite3 数据操作 查询单个信息
打开数据库 sqlite3 * db = [Database openDB]; sqlite3_stmt * stmt = nil; NSString * sqlString = [NSString stringWithFormat:@"select * from Student where id = %d" , aID]; int result = sqlite3_prepare_v2(db, [sqlString UTF8String], -1, &
sqlite3 数据操作 修改
sqlite3 * db = [Database openDB]; sqlite3_stmt * stmt = nil; NSString * sqlstring = [NSString stringWithFormat:@"update Student set name = '%@' where id = %ld" , name , (long)ID]; int result = sqlite3_prepare_v2(db, [sqlstri
sqlite3 数据操作 删除
sqlite3 * db = [Database openDB]; sqlite3_stmt * stmt = nil; NSString * sqlString = [NSString stringWithFormat:@"delete from Student where id = %d",ID]; int result = sqlite3_prepare_v2(db, [sqlString UTF8String], -1, &stmt,
sqlite3 数据操作 添加
sqlite3 * db = [Database openDB]; sqlite3_stmt * stmt = nil; NSString * sqlString = [NSString stringWithFormat:@"insert into Student (name , age , gender ) values ('%@' , %ld ,'%@' )",studnt.name , (long)studnt.age ,studnt.gender];
Django 链接MySQL及数据操作
Django 链接MySQL Django创建的项目自带的数据库是SQLite3,我们想要链接MySQL的话,需要更改settings.py中的配置 1.在MySQL中创建好数据库,Django项目不会创建数据库,只会根据models.py中的模型类创建对应的表 2.在项目文件下的settings.py文件中,找到 DATABASES属性,配置MySQL相关参数 DATABASES = { 'default': { # 将数据库引擎修改成 mysql 'ENGINE': 'django.db.b
6.1课堂笔记—DML(数据操作语言),DQL查询语句
一.DML(数据操作语言) InnoDB MyISAM 支持事务 不支持事务 不支持全文索引 支持全文索引 支持外键约束 不支持 命令查看默认存储引擎 show variables like '%storage_engine%'; 1.表中插入数据 #添加课程 INSERT INTO `subject` VALUES (5,'C#',160,1); #插入多门课程 INSERT INTO `subject`(subjectName,classHour,gradeID) VALUES ('数学',
SQL应用与开发:(七)数据操作 · 查 · (三)使用子查询访问和修改数据
3.使用子查询访问和修改数据 子查询和连接查询一样提供了使用单个查询访问多个表中的数据的方法.子查询在其他结果的基础上提供一种有效地方式来表示WHERE子句的条件.子查询是一个SELECT语句,它定义在SELECT.INSERT.UPDATE或DELECT语句或者另一个子查询中.子查询的SELECT语句可与外部查询指向不同的表. 嵌套的子查询或嵌套的SELECT语句是指包含一个或多个子查询的SELECT语句.子查询可嵌套在外部的SELECT.INSERT.UPDATE或DELECT语句的WHER
Rails 使用sqlite3数据库 及数据操作基本命令
Rails默认使用sqlite3做为数据库,虽然很多人更喜欢mysql.但如果是学习用,sqlite3够了,因为它轻量,不需要安装. 首先对sqlite3做个简短的介绍:1.sqlite3不需要配置,不需要安装,也不需要管理员.最牛的是它没有服务器,仅是一个exe或dll2.数据库以文件形式保存在磁盘上,可以自由COPY使用3.因为sqlite3没有服务器监听端口,所以不能像mysql一样通过ip和端口远程连接数据库.如果想远程访问数据库,只能通过数据库文件共享方式 1.安装gem gem in
oracle-2-sql数据操作和查询
主要内容: >oracle 数据类型 >sql建表和约束 >sql对数九的增删改 >sql查询 >oracle伪例 1.oracle的数据类型 oracle数据库的核心是表,表中常见的数据类型有: char(length):存储固定长度的字符串,length默认1,最长2000 varchar2(length):存储可变长度的字符串,length默认长度是1,最大4000 number(p,s)存储浮点数或者是整数,p表示的是最大位数(包含小数点),p默认是38,s表示小数位