数据库介绍
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,
常见的关系数据库管理系统有:Oracle、MSSQLServer、DB2、MySQL
SQLite介绍
SQLite是一款轻型的数据库,是一种关系型数据库管理系统,它的设计目的是嵌入式设备中使用
SQLite占用资源非常低,非常适合移动设备中使用,而且是开源免费的
SQLite第一个版本诞生于2000年5月,至今已经有15多个年头,
SQLite也迎来了一个版本SQLite 3已经发布。
它的官方网站:http://www.sqlite.org
基础的SQL语句
SQL语句用于对数据进行存储、查询、更新等管理操作
1.创建表
CREATE TABLE IF NOT EXISTS UserTable
(username TEXT primary key,password TEXT,email TEXT);
2.插入一条数据
INSERT OR REPLACE INTO UserTable (username , password,email) VALUES (?,?,?);
3.更新一条数据
UPDATE UserTable set password = '123456' where username = 'scsys';
4.查询数据
SELECT username,password,email FROM UserTable where username = 'scsys'
5.删除数据
DELETE FROM UserTable WHERE username='scsys'
数据库操作流程
SQLite最新版本是3.0,使用前需要导入libsqlite3.0.dylib
操作数据库的流程:
打开数据库
编译SQL语句
执行SQL语句,读取数据
语句完结
关闭数据库
SQLite常用函数
SQLite3.0使用的是C的函数接口,常用函数如下:
sqlite3_open() //打开数据库
sqlite3_close() //关闭数据库
sqlite3_exec() //执行sql语句,例如创建表
sqlite3_prepare_v2() //编译SQL语句
sqlite3_step() //执行查询SQL语句
sqlite3_finalize() //结束sql语句
sqlite3_bind_text() //绑定参数
sqlite3_column_text() //查询字段上的数据
创建数据库表
sqlite3 *sqlite = nil;
//数据库路径
NSString *filePath =
[NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",@"data.sqlite"];
//打开数据库
int result = sqlite3_open([path UTF8String], &sqlite);
if (result != SQLITE_OK) {
NSLog(@"打开数据失败");
return NO;
}
//创建表的SQL语句
NSString *sql = @"CREATE TABLE UserTable
(userId text NOT NULL PRIMARY KEY UNIQUE,userName text,age integer)";
char *error;
//执行SQL语句
result = sqlite3_exec(sqlite, [sql UTF8String], NULL, NULL, &error);
if (result != SQLITE_OK) {
NSLog(@"创建数据库失败,%s",error);
return NO;
}
//关闭数据库
sqlite3_close(sqlite);
project: SQLiteDemo
导入 libsqlite3.0.dylib
new file ... name: UserDB
superclass:NSObject
打开 UserDB.h
加入
//创建表
- (void)createTable;
打开 UserDB.m
加入 #import <sqlite3.h>
在加入方法
//创建表
- (void)createTable {
sqlite3 *sqlite = nil;
NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/data.sqlite"];
//打开数据库
int result = sqlite3_open([filePath UTF8String], &sqlite);
if (result != SQLITE_OK) {
NSLog(@"打开数据库失败");
return;
}
//创建表的SQL语句
NSString *sql = @"CREATE TABLE IF NOT EXISTS User (username TEXT primary key,password TEXT,email TEXT)";
char *error;
//执行sql语句
result = sqlite3_exec(sqlite, [sql UTF8String], NULL, NULL, &error);
if (result != SQLITE_OK) {
NSLog(@"创建表失败:%s",error);
return;
}
//关闭数据库
sqlite3_close(sqlite);
NSLog(@"创建表成功!");
}
打开 AppDelegate.m
加入 #import "UserDB.h"
在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法中的 [self.window makeKeyAndVisible]; 下面加入
UserDB *userDB = [[UserDB alloc] init];
[userDB createTable];
运行
查看沙盒路径是否生成 Documents/data.sqlite
SQLite数据库管理工具
1.客户端SQLiteManager
打开 课件中的 SQLiteManager.app
通过该工具打开生成的data.sqlite 查看是否存在表 User
2.火狐浏览器插件:https://addons.mozilla.org/zh-cn/firefox/addon/sqlite-manager/
菜单 --- 工具 SQLiteManager
点击工具栏 --- 打开 找到 data.sqlite
插入数据
sqlite3 *sqlite = nil;
sqlite3_stmt *stmt = nil;
//数据库路径
NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/
%@",@"data.sqlite"];
//打开数据库
int result = sqlite3_open([path UTF8String], &sqlite);
if (result != SQLITE_OK) {
NSLog(@"打开数据失败");
return NO;
}
//创建表的SQL语句
NSString *sql = @"INSERT INTO UserTable(userId,userName,age) VALUES (?,?,?)";
//编译SQL语句
sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt, NULL);
NSString *userId = @"1002";
NSString *userName = @"张三";
int age = 3;
//往SQL中填充数据
sqlite3_bind_text(stmt, 1, [userId UTF8String], -1, NULL);
sqlite3_bind_text(stmt, 2, [userName UTF8String], -1, NULL);
sqlite3_bind_int(stmt, 3, age);
//执行SQL语句
result = sqlite3_step(stmt);
if (result == SQLITE_ERROR || result == SQLITE_MISUSE) {
NSLog(@"执行SQL语句失败");
return NO;
}
//关闭数据库句柄
sqlite3_finalize(stmt);
//关闭数据库
sqlite3_close(sqlite);
打开 UserDB.h
加入
//插入数据
- (void)inserTable;
打开 UserDB.m
加入
//插入数据
- (void)inserTable {
sqlite3 *sqlite = nil;
sqlite3_stmt *stmt = nil;
NSString *filePath =
[NSHomeDirectory() stringByAppendingFormat:@"/Documents/data.sqlite"];
//打开数据库
int result = sqlite3_open([filePath UTF8String], &sqlite);
if (result != SQLITE_OK) {
NSLog(@"打开数据库失败");
return;
}
//创建SQL语句
NSString *sql = @"INSERT INTO User(username,password,email) VALUES (?,?,?)";
//编译SQL语句 -1表示不指定
sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt, NULL);
NSString *username = @"jack";
NSString *password = @"88888";
NSString *email = @"scsys@qq.com";
//往SQL语句上填充绑定数据
sqlite3_bind_text(stmt, 1, [username UTF8String], -1, NULL);
sqlite3_bind_text(stmt, 2, [password UTF8String], -1, NULL);
sqlite3_bind_text(stmt, 3, [email UTF8String], -1, NULL);
//执行SQL语句
result = sqlite3_step(stmt);
if (result == SQLITE_ERROR || result == SQLITE_MISUSE) {
NSLog(@"执行SQL语句失败");
return;
}
//关闭数据库句柄
sqlite3_finalize(stmt);
//关闭数据库
sqlite3_close(sqlite);
NSLog(@"数据插入成功");
}
打开 AppDelegate.m
将 [userDB createTable]; 注释掉在其下加入
[userDB inserTable];
运行
打开 SQLiteManager 展开Tables 点击表user 工具栏 Manage 点击Query
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,
常见的关系数据库管理系统有:Oracle、MSSQLServer、DB2、MySQL
SQLite介绍
SQLite是一款轻型的数据库,是一种关系型数据库管理系统,它的设计目的是嵌入式设备中使用
SQLite占用资源非常低,非常适合移动设备中使用,而且是开源免费的
SQLite第一个版本诞生于2000年5月,至今已经有15多个年头,
SQLite也迎来了一个版本SQLite 3已经发布。
它的官方网站:http://www.sqlite.org
基础的SQL语句
SQL语句用于对数据进行存储、查询、更新等管理操作
1.创建表
CREATE TABLE IF NOT EXISTS UserTable
(username TEXT primary key,password TEXT,email TEXT);
2.插入一条数据
INSERT OR REPLACE INTO UserTable (username , password,email) VALUES (?,?,?);
3.更新一条数据
UPDATE UserTable set password = '123456' where username = 'scsys';
4.查询数据
SELECT username,password,email FROM UserTable where username = 'scsys'
5.删除数据
DELETE FROM UserTable WHERE username='scsys'
数据库操作流程
SQLite最新版本是3.0,使用前需要导入libsqlite3.0.dylib
操作数据库的流程:
打开数据库
编译SQL语句
执行SQL语句,读取数据
语句完结
关闭数据库
SQLite常用函数
SQLite3.0使用的是C的函数接口,常用函数如下:
sqlite3_open() //打开数据库
sqlite3_close() //关闭数据库
sqlite3_exec() //执行sql语句,例如创建表
sqlite3_prepare_v2() //编译SQL语句
sqlite3_step() //执行查询SQL语句
sqlite3_finalize() //结束sql语句
sqlite3_bind_text() //绑定参数
sqlite3_column_text() //查询字段上的数据
创建数据库表
sqlite3 *sqlite = nil;
//数据库路径
NSString *filePath =
[NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",@"data.sqlite"];
//打开数据库
int result = sqlite3_open([path UTF8String], &sqlite);
if (result != SQLITE_OK) {
NSLog(@"打开数据失败");
return NO;
}
//创建表的SQL语句
NSString *sql = @"CREATE TABLE UserTable
(userId text NOT NULL PRIMARY KEY UNIQUE,userName text,age integer)";
char *error;
//执行SQL语句
result = sqlite3_exec(sqlite, [sql UTF8String], NULL, NULL, &error);
if (result != SQLITE_OK) {
NSLog(@"创建数据库失败,%s",error);
return NO;
}
//关闭数据库
sqlite3_close(sqlite);
project: SQLiteDemo
导入 libsqlite3.0.dylib
new file ... name: UserDB
superclass:NSObject
打开 UserDB.h
加入
//创建表
- (void)createTable;
打开 UserDB.m
加入 #import <sqlite3.h>
在加入方法
//创建表
- (void)createTable {
sqlite3 *sqlite = nil;
NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/data.sqlite"];
//打开数据库
int result = sqlite3_open([filePath UTF8String], &sqlite);
if (result != SQLITE_OK) {
NSLog(@"打开数据库失败");
return;
}
//创建表的SQL语句
NSString *sql = @"CREATE TABLE IF NOT EXISTS User (username TEXT primary key,password TEXT,email TEXT)";
char *error;
//执行sql语句
result = sqlite3_exec(sqlite, [sql UTF8String], NULL, NULL, &error);
if (result != SQLITE_OK) {
NSLog(@"创建表失败:%s",error);
return;
}
//关闭数据库
sqlite3_close(sqlite);
NSLog(@"创建表成功!");
}
打开 AppDelegate.m
加入 #import "UserDB.h"
在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法中的 [self.window makeKeyAndVisible]; 下面加入
UserDB *userDB = [[UserDB alloc] init];
[userDB createTable];
运行
查看沙盒路径是否生成 Documents/data.sqlite
SQLite数据库管理工具
1.客户端SQLiteManager
打开 课件中的 SQLiteManager.app
通过该工具打开生成的data.sqlite 查看是否存在表 User
2.火狐浏览器插件:https://addons.mozilla.org/zh-cn/firefox/addon/sqlite-manager/
菜单 --- 工具 SQLiteManager
点击工具栏 --- 打开 找到 data.sqlite
插入数据
sqlite3 *sqlite = nil;
sqlite3_stmt *stmt = nil;
//数据库路径
NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/
%@",@"data.sqlite"];
//打开数据库
int result = sqlite3_open([path UTF8String], &sqlite);
if (result != SQLITE_OK) {
NSLog(@"打开数据失败");
return NO;
}
//创建表的SQL语句
NSString *sql = @"INSERT INTO UserTable(userId,userName,age) VALUES (?,?,?)";
//编译SQL语句
sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt, NULL);
NSString *userId = @"1002";
NSString *userName = @"张三";
int age = 3;
//往SQL中填充数据
sqlite3_bind_text(stmt, 1, [userId UTF8String], -1, NULL);
sqlite3_bind_text(stmt, 2, [userName UTF8String], -1, NULL);
sqlite3_bind_int(stmt, 3, age);
//执行SQL语句
result = sqlite3_step(stmt);
if (result == SQLITE_ERROR || result == SQLITE_MISUSE) {
NSLog(@"执行SQL语句失败");
return NO;
}
//关闭数据库句柄
sqlite3_finalize(stmt);
//关闭数据库
sqlite3_close(sqlite);
打开 UserDB.h
加入
//插入数据
- (void)inserTable;
打开 UserDB.m
加入
//插入数据
- (void)inserTable {
sqlite3 *sqlite = nil;
sqlite3_stmt *stmt = nil;
NSString *filePath =
[NSHomeDirectory() stringByAppendingFormat:@"/Documents/data.sqlite"];
//打开数据库
int result = sqlite3_open([filePath UTF8String], &sqlite);
if (result != SQLITE_OK) {
NSLog(@"打开数据库失败");
return;
}
//创建SQL语句
NSString *sql = @"INSERT INTO User(username,password,email) VALUES (?,?,?)";
//编译SQL语句 -1表示不指定
sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt, NULL);
NSString *username = @"jack";
NSString *password = @"88888";
NSString *email = @"scsys@qq.com";
//往SQL语句上填充绑定数据
sqlite3_bind_text(stmt, 1, [username UTF8String], -1, NULL);
sqlite3_bind_text(stmt, 2, [password UTF8String], -1, NULL);
sqlite3_bind_text(stmt, 3, [email UTF8String], -1, NULL);
//执行SQL语句
result = sqlite3_step(stmt);
if (result == SQLITE_ERROR || result == SQLITE_MISUSE) {
NSLog(@"执行SQL语句失败");
return;
}
//关闭数据库句柄
sqlite3_finalize(stmt);
//关闭数据库
sqlite3_close(sqlite);
NSLog(@"数据插入成功");
}
打开 AppDelegate.m
将 [userDB createTable]; 注释掉在其下加入
[userDB inserTable];
运行
打开 SQLiteManager 展开Tables 点击表user 工具栏 Manage 点击Query