专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构
SQLiteManager创建数据表
- 如果是第一次运行,打开数据库之后,只能得到一个空的数据,没有任何的数据表
- 为了让数据库正常使用,如果数据表不存在,需要执行
创表
操作
注意:创表操作本质上是通过执行
SQL
语句实现的
执行
SQL
语句函数/** 执行sql语句 - parameter sql: sql语句 - returns: sql语句是否执行成功 */ func execSQL(sql: String) -> Bool { /** sqlite执行sql语句: 参数: 1.COpaquePointer: 数据库句柄 2.sql: 要执行的sql语句 3.callback: 执行完成sql后的回调,通常为nil 4.UnsafeMutablePointer<Void>: 回调函数第一个参数的地址,通常为nil 5.错误信息的指针,通常为nil 返回值: Int: SQLITE_OK表示执行成功 */ return (sqlite3_exec(db, sql, nil, nil, nil) == SQLITE_OK) }
创建数据表
// MARK: - 创建数据表 private func createTable() -> Bool { let sql = "CREATE TABLE IF NOT EXISTS T_Person ( \n" + "id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \n" + "name text, \n" + "age integer, \n" + "height real \n" + ")" print("sql: \(sql)") // 执行sql return execSQL(sql) }
调整
openDB
函数// 创建数据表 if createTable() { print("打开数据表成功") } else { print("打开数据表失败") }
代码小结
- 创表
SQL
可以从Navicat
中粘贴,然后做一些处理- 将
"
替换成'
- 在每一行后面增加一个
\n
防止字符串拼接因为缺少空格造成SQL
语句错误 - 在
表名
前添加IF NOT EXISTS
防止因为数据表存在出现错误
- 将
调试代码中的SQL
- 将
SQL
打印出来 - 粘贴到
Navicat
里来执行,可以更好的定位SQL
语句错误的位置 - 在拼接
SQL
时,最好在每句后面加\n
.可以避免缺少空格把2个单词误认为一个单词