SQLite入门:2-表的操作
创建表
表就像我们经常使用的EXCEL中的表一样,由行和列组成。每一行表示一条数据。每一列表示每条数据的一个属性,这个属性有NULL, INTEGER, REAL, TEXT, BLOB这几种类型。而表是存放在数据库中的,比如我们创建的CONTACTS表需要存放在名为99iOS.sqlite数据库中的。
下方的示例代码中编写一个createTable方法来创建一张联系人表。有如下几个要点:
- 在执行createTable方法之前,先确保数据库已经处于打开状态。
- 编写创建表的SQL语句:"CREATE TABLE IF NOT EXISTS CONTACTS (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, address TEXT, phone TEXT)"。注意这里的字符串是使用""号包装的,其前面没有@, 因此这是C语言字符串。这条SQL语句是用来创建一张CONTACTS表,如果表不存在则创建。在SQL语句中规定了表的结构,表由id, name, address, phone字段组成,同时也规定了每个字段的数据类型。PRIMARY KEY AUTOINCREMENT这个表示id字段是表的主键并且是自增的,我们添加记录时不需要为这个字段专门赋值,该字段会自动地增加一。
- 调用sqlite3_exec函数执行SQL语句,如果出错会把错误信息赋给errMsg。
- 操作完数据库之后我们要关闭数据库,这样能回收系统资源。
- (BOOL)createTable {
if (NULL == _db) {
NSLog(@"数据库不存在,创建'联系人'表失败");
return NO;
}
char *errMsg = NULL;
// 拼接SQL语句
const char *sql = "CREATE TABLE IF NOT EXISTS CONTACTS (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, address TEXT, phone TEXT)";
if (sqlite3_exec(_db, sql, NULL, NULL, &errMsg) != SQLITE_OK) {
NSLog( @"创建'联系人'表失败");
return NO;
}
NSLog( @"创建'联系人'表成功");
return YES;
}
运行结果如下。
查看表结构
创建好数据库以及表之后,我们可以通过命令行工具来查看表结构。
- 首先打开终端,通过
cd
命令跳转到应用程序沙盒的Documents路径,即SQLite数据库路径。
- 输入
sqlite3 99iOS.sqlite
打开数据库
- 输入.schema命令可以查看表结构。如果已经创建了数据库和联系人表,则会有以下的输出。
删除表
当我们希望删除数据库中的一张表时,需要使用DROP语句。DROP语句的基本语法是:
'DROP TABLE database_name.table_name;'
下方的代码中编写一个dropTable方法来删除一张表。
- (BOOL)dropTable {
if (NULL == _db) { //1
NSLog(@"数据库不存在,删除'联系人'表失败");
return NO;
}
char *errMsg = NULL;
// 拼接SQL语句
const char *sql = "DROP TABLE CONTACTS;"; //2
if (sqlite3_exec(_db, sql, NULL, NULL, &errMsg) != SQLITE_OK) { //3
NSLog( @"删除'联系人'表失败");
return NO;
}
NSLog( @"删除'联系人'表成功");
return YES;
}
示例代码
https://github.com/99ios/13.5.2
文章发布时间为: August 5th , 2017 at 03:10 pm
最后编辑时间为: September 26th , 2017 at 06:10 am
本文由 99ios 创作,转载请注明出处
最后编辑时间为: September 26th , 2017 at 06:10 am
本文由 99ios 创作,转载请注明出处