数据库 SQLite

数据库介绍


数据库(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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值