数据库

数据库

2. MesaAQlite使用

实例:使用数据存储一个班上学生的信息

            学号 sid    用户名 useername    密码  password       分数score

                 1501             zhangsan                     1234                    100

                 1503             lisi                               2341                     90

                 1502             wanglaowu                  3412                     80

 

(1)创建数据库

(2)创建数据表

(3)设计数据表(添加多个段/列)

(4)数据库的常用操作:增,删,查,改

3. SQL结构化查询语句

SQL,Stucture,Query Language,结构化查询语言,作用是操作数据库(创建表,对数据库,增,删,改,查)

 

(1)创建数据表

create table if not exists StuInfo (sid integer,usernamevarchar(20),password varchar(20),score varchar(20) )

(2)插入数据

insert into StuInfo (sid,username,password,score)values(1501,'zhangsan','1234','100’)

insert into StuInfo (sid,username,password,score)values(1502,'lisi','2341','90');

 

insert into StuInfo (sid,username,password,score)values(1503,'wanglaowu','3412','80')

(3)查询数据

<1>查询表格中所有数据  

select * from StuInfo

<2>查询指定的字段

select username from StuInfo

<3>根据指定的条件进行查询

select *from StuInfo where score='80'

<4>根据多个条件进行查询

select *from StuInfo where password='1234' and score='100' 

<5>查询后需要排序

select *from StuInfo order by score

//根据age升序排列

select *from StuInfo order by score desc

<6>获取数据行数

select count(*) from StuInfo

(4)修改数据

update StuInfo set score='10' where password ='1234’;

(5)删除数据

delete from StuInfo where password='1234';

 

 

 4.FMDB 第三方开源数据库

(1)配置

导入文件,添加二进制库 libsqlite3.dylib

包含头文件#import "FMDatabase.h"

 

5. 数据库在项目中使用-单例设计模式

#import "QFViewController.h"
#import "FMDatabase.h"
@interface QFViewController ()
//定义一个数据库对象
{
    FMDatabase *_database;
}
@end

@implementation QFViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
//    (1)创建数据库
    [self createAndInitDataBase];
//    (2)创建数据表
    [self createTable];
//    (3)插入数据
    [self insertData];
//    (4)查询数据
    [self queryData];
//    (5)修改和删除数据
}
-(void)createAndInitDataBase
{
    
//    ios安全机制 沙盒
//    (1)每个应用都在自己的沙盒目录下运行
//    (2)每个应用只能对自己沙盒下地文件进行操作
//    (3)默认文件夹 Documents,Library,tmp
//     确定文件位置
//    当前应用文件夹:NSHomeDirectory()
    
//    NSLog(@"home=%@",NSHomeDirectory());
//    NSLog(@"%@",[[NSFileManager defaultManager]contentsOfDirectoryAtPath:NSHomeDirectory() error:nil]);
//    设置路径
    NSString *path=[NSString stringWithFormat:@"%@/Documents/StuIfo.sqlite",NSHomeDirectory()];
    _database=[[FMDatabase alloc]initWithPath:path];
    if(!_database.open)
    {
        NSLog(@"打开失败");
        return;
    }
    NSLog(@"打开成功");
}

-(void)createTable
{
    NSString *sql=@"create table  if not exists "//冒号前必须有空格
    
        "StuIfo(sid integer,username varchar(20),password varchar(20),score varchar(20))";
    
//    excutequery用来执行select语句
//    其他语句使用executeUpdate
    
    BOOL b=[_database executeUpdate:sql];
    NSLog(@"create b=%d",b);
    
}

-(void)insertData
{
    int sid=1501;
    NSString *username=@"zhangsan";
    NSString *password=@"123";
    NSString *score=@"100";
    NSString *sql=@"insert into StuIfo(sid,username,password,score) values(?,?,?,?)";
//    注意:对应的每一个参数都应该是字符串,其他类型须转化为字符串
    BOOL b=[_database executeUpdate:sql,[NSString stringWithFormat:@"%d",sid],username,password,score];//sql的所有参数必须是字符串
    NSLog(@"%d",b);
}

-(void)queryData
{
//    显示所有人得数据
     NSString *sql=@"select * from StuIfo";
//    表示查询后的结果集
    FMResultSet *resultset=[_database executeQuery:sql];
//    next方法每次获取一条记录,获取不到返回nil
    while ([resultset next]) {
        NSLog(@"sid=%@,name=%@,pass=%@,score=%@",
              [resultset stringForColumn:@"sid"],
              [resultset stringForColumn:@"username"],
              [resultset stringForColumn:@"score"],
              [resultset stringForColumn:@"password"]);
    }
    
}

 

posted @ 2015-04-07 19:14  天路格桑花  阅读(153)  评论(0编辑  收藏  举报