<sqlite3.h>
创建数据库:
- (void)viewDidLoad{ [super viewDidLoad]; // 1.获得沙盒中的数据库文件名 NSString *filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"student.sqlite"]; // 2.创建(打开)数据库(如果数据库文件不存在,会自动创建) int result = sqlite3_open(filename.UTF8String, &_db); if (result == SQLITE_OK) { NSLog(@"成功打开数据库"); // 3.创表 const char *sql = "create table if not exists t_student (id integer primary key autoincrement, name text, age integer);"; char *errorMesg = NULL; int result = sqlite3_exec(_db, sql, NULL, NULL, &errorMesg); if (result == SQLITE_OK) { NSLog(@"成功创建t_student表"); } else { NSLog(@"创建t_student表失败:%s", errorMesg); } } else { NSLog(@"打开数据库失败"); }}
- (IBAction)insert{ for (int i = 0; i < 30; i++) { NSString *name = [NSString stringWithFormat:@"Jack-%d", arc4random()%100]; int age = arc4random()%100; NSString *sql = [NSString stringWithFormat:@"insert into t_student (name, age) values(‘%@‘, %d);", name, age]; char *errorMesg = NULL; int result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, &errorMesg); if (result == SQLITE_OK) { NSLog(@"成功添加数据"); } else { NSLog(@"添加数据失败:%s", errorMesg); } }}
- (IBAction)query{ // 1.定义sql语句 const char *sql = "select id, name, age from t_student where name = ?;"; // 2.定义一个stmt存放结果集 sqlite3_stmt *stmt = NULL; // 3.检测SQL语句的合法性 int result = sqlite3_prepare_v2(_db, sql, -1, &stmt, NULL); if (result == SQLITE_OK) { NSLog(@"查询语句是合法的"); // 设置占位符的内容 sqlite3_bind_text(stmt, 1, "jack", -1, NULL); // 4.执行SQL语句,从结果集中取出数据// int stepResult = sqlite3_step(stmt); while (sqlite3_step(stmt) == SQLITE_ROW) { // 真的查询到一行数据,此处类似Ado.net中的reader.read() // 获得这行对应的数据 // 获得第0列的id int sid = sqlite3_column_int(stmt, 0); // 获得第1列的name const unsigned char *sname = sqlite3_column_text(stmt, 1); // 获得第2列的age int sage = sqlite3_column_int(stmt, 2); NSLog(@"%d %s %d", sid, sname, sage); } } else { NSLog(@"查询语句非合法"); }}
X-Code中用sqlite存储数据
标签:
小编还为您整理了以下内容,可能对您也有帮助:
sqlite怎么查询时间段的存储以及查询?
在 SQLite 中,你可以使用日期时间函数和查询语句来查询时间段的存储和查询。以下是一些常用的方法:
存储时间段:
如果要在数据库中存储时间段,你可以使用 SQLite 的日期时间类型或整数类型来表示时间。例如,你可以使用 DATE 或 DATETIME 数据类型来存储日期和时间,或者使用整数类型来表示时间戳(Unix 时间戳)。
查询时间段:
要查询时间段的数据,可以使用 SQLite 的日期时间函数来过滤结果。以下是一些常用的日期时间函数:
你可以在 WHERE 子句中使用这些函数来过滤查询结果,以获取特定时间段内的数据。
DATE():提取日期部分。
TIME():提取时间部分。
strftime(format, time):将时间格式化为指定的字符串格式。
julianday(time):将时间转换为 Julian Day 格式。
strftime('%s', time):将时间转换为 Unix 时间戳。
示例:
假设你有一个名为 records 的表,其中有一个名为 timestamp 的列,用于存储记录的时间戳。要查询某个时间段内的记录,你可以使用如下的 SQL 查询语句:
sqlCopy codeSELECT * FROM recordsWHERE timestamp >= '2023-07-01 00:00:00' AND timestamp <= '2023-07-31 23:59:59';
以上查询将返回 records 表中在 2023 年 7 月份内的所有记录。
请根据你的具体需求和表结构来编写适合的查询语句,以查询时间段内的数据。
手机存储的轻型数据库(SQLite)是干什么的?
SQLite是一种轻型数据库,常用于移动设备和嵌入式系统中。在手机存储中,SQLite被用作一个本地的嵌入式数据库,用于存储和管理应用程序的数据。SQLite提供了一个简单的、易于集成的方式,使开发者可以将数据存储在手机本地,而不需要连接到远程服务器。
SQLite的主要优点是其轻量级、高效和易用性。它占用的空间非常小,可以在手机存储中轻松地安装和管理,而且它不需要独立的服务器或其他软件来运行。开发者可以使用SQLite来存储应用程序的各种数据,如用户配置、本地缓存、日志信息等。
此外,SQLite还提供了多种编程语言的API,如C、Java、Python等,使得开发者可以使用自己熟悉的编程语言来操作SQLite数据库。这些API非常易于使用,能够让开发者快速地进行数据库操作,如查询、插入、更新和删除数据等。
总之,SQLite是一种简单、高效、易于集成的本地数据库,适用于在手机等移动设备上存储和管理数据。
SQLite添加、更新和删除数据是常见的数据库操作。然而,数据越高并不一定好,这取决于具体的需求和情况。以下是关于这些操作的更详细的解释:
添加数据:使用SQLite添加数据非常简单,只需向表中插入新的行即可。添加数据的目的是为了将新的数据存储到数据库中,以便后续查询和操作。然而,添加过多的数据可能会导致数据库变得庞大和不易维护,因此需要根据实际需求来控制添加的数据量。
更新数据:在SQLite中更新数据需要使用UPDATE语句,可以更新表中现有行的数据。更新数据的目的是为了使数据库中的数据与实际情况保持同步。然而,更新数据的频率过高也可能会导致数据库变得混乱和难以维护,因此需要根据实际需求来控制更新的数据量和频率。
删除数据:在SQLite中删除数据需要使用DELETE语句,可以删除表中的指定行。删除数据的目的是为了清理不需要的数据,以便数据库可以更好地管理和维护。然而,删除过多的数据可能会导致数据丢失和无法恢复,因此需要在删除数据时谨慎处理。
综上所述,添加、更新和删除数据的操作需要根据实际需求来控制数据量和频率。数据越高并不一定好,而是应该根据实际需求来合理管理和维护数据库。
手机存储的轻型数据库(SQLite)是干什么的?
SQLite是一种轻型数据库,常用于移动设备和嵌入式系统中。在手机存储中,SQLite被用作一个本地的嵌入式数据库,用于存储和管理应用程序的数据。SQLite提供了一个简单的、易于集成的方式,使开发者可以将数据存储在手机本地,而不需要连接到远程服务器。
SQLite的主要优点是其轻量级、高效和易用性。它占用的空间非常小,可以在手机存储中轻松地安装和管理,而且它不需要独立的服务器或其他软件来运行。开发者可以使用SQLite来存储应用程序的各种数据,如用户配置、本地缓存、日志信息等。
此外,SQLite还提供了多种编程语言的API,如C、Java、Python等,使得开发者可以使用自己熟悉的编程语言来操作SQLite数据库。这些API非常易于使用,能够让开发者快速地进行数据库操作,如查询、插入、更新和删除数据等。
总之,SQLite是一种简单、高效、易于集成的本地数据库,适用于在手机等移动设备上存储和管理数据。
SQLite添加、更新和删除数据是常见的数据库操作。然而,数据越高并不一定好,这取决于具体的需求和情况。以下是关于这些操作的更详细的解释:
添加数据:使用SQLite添加数据非常简单,只需向表中插入新的行即可。添加数据的目的是为了将新的数据存储到数据库中,以便后续查询和操作。然而,添加过多的数据可能会导致数据库变得庞大和不易维护,因此需要根据实际需求来控制添加的数据量。
更新数据:在SQLite中更新数据需要使用UPDATE语句,可以更新表中现有行的数据。更新数据的目的是为了使数据库中的数据与实际情况保持同步。然而,更新数据的频率过高也可能会导致数据库变得混乱和难以维护,因此需要根据实际需求来控制更新的数据量和频率。
删除数据:在SQLite中删除数据需要使用DELETE语句,可以删除表中的指定行。删除数据的目的是为了清理不需要的数据,以便数据库可以更好地管理和维护。然而,删除过多的数据可能会导致数据丢失和无法恢复,因此需要在删除数据时谨慎处理。
综上所述,添加、更新和删除数据的操作需要根据实际需求来控制数据量和频率。数据越高并不一定好,而是应该根据实际需求来合理管理和维护数据库。
Android系统中的SQLite数据库是如何使用的
Android系统中的SQLite数据库是如何使用的?
SQLite数据库是Android系统中最常用的数据库,它可以方便地存储和管理数据,使得开发者可以轻松地在应用程序中实现数据持久化。本文将介绍Android系统中如何使用SQLite数据库。
1.创建SQLite数据库
要使用SQLite数据库,首先需要创建一个数据库。可以使用SQLiteOpenHelper来创建数据库。SQLiteOpenHelper是一个抽象类,它提供了四个方法:
onCreate:当数据库第一次创建时调用。在这个方法中,开发者可以执行创建表等操作。
onUpgrade:当数据库升级时调用。在这个方法中,开发者可以执行更改表结构等操作。
onOpen:当数据库被打开时调用。
getWritableDatabase和getReadableDatabase:分别返回可读写和只读的SQLiteDatabase对象。
2.执行SQL操作
可以使用SQLiteDatabase对象来执行SQL操作。可以执行一些简单的SQL操作,例如插入、更新、删除和查询等。
插入数据:
SQLiteDatabasedb=mHelper.getWritableDatabase();
ContentValuesvalues=newContentValues();
values.put(name,张三);
db.insert(user,null,values);
更新数据:
SQLiteDatabasedb=mHelper.getWritableDatabase();
ContentValuesvalues=newContentValues();
values.put(name,李四);
db.update(user,values,id=?,newString[]{String.valueOf(1)});
删除数据:
SQLiteDatabasedb=mHelper.getWritableDatabase();
db.delete(user,id=?,newString[]{String.valueOf(1)});
查询数据:
SQLiteDatabasedb=mHelper.getReadableDatabase();
Cursorcursor=db.query(user,null,null,null,null,null,null);
while(cursor.moveToNext()){
intid=cursor.getInt(cursor.getColumnIndex(id));
Stringname=cursor.getString(cursor.getColumnIndex(name));
}
3.使用ContentProvider管理数据
在Android系统中,ContentProvider是一个重要的组件,可以用来管理数据。可以通过ContentProvider让其他应用程序访问应用程序的数据。
要创建ContentProvider,需要继承ContentProvider类,并实现query、insert、update和delete方法。在这些方法中,开发者可以执行查询、插入、更新和删除操作。
总结:
使用SQLite数据库要分为三步:创建数据库、执行SQL操作和使用ContentProvider管理数据。SQLite数据库是Android系统中最常用的数据库之一,它是一个轻量级的数据库,非常适合在移动设备上使用。开发者可以使用SQLite数据库来存储用户数据、缓存数据等。使用SQLite数据库可以帮助开发者轻松地实现数据持久化,提高应用程序的稳定性和效率。
程序中怎么实现数据的持久存储?
程序中对运算数据的持久存储有三种方法:
1、文件
把数据序列化后(也可以是原始数)直接存盘为文件,做好文件的命名、存储位置管理即可。
2、文本型数据库
如果数量较大且没有太复杂的逻辑关系时,可以选择文本型数据库来存储,例如:Sqlite、Access等,SQLIte已经成为被广泛采用的内置数据库,数据存储量和效率都很优秀。
3、关系型数据库
当数据量大且逻辑关系复杂时,就需要考虑关系型数据库了,例如:MySQL、MSSQL等。
这个需要根据程序功能和应用场景的需要来选择,例如大型网站传统模式下都采用关系数据库做索引,用文件存储;随着数据库处理能力和效率的提升,有全部采用数据库来存储的趋势,这两者各有利弊。
希望以上解答能帮助到你。