Mac OSX下SQLite3的入门级使用

窗外杭州迎来了今年的初雪,很棒。本来想配两张朋友圈的照片,但只能传200K以下的就不修了。直接记录下自己接触的SQLite3的入门吧,还好之前用过Oracle和MySQL,上手还蛮快的。

一、MAC OSX

首先,这里说明下Mac已经将SQLite进行了预装,启动Terminal,输入以下命令,按步骤来,呵呵。

  1. 新建数据库文件夹,方便数据库统一进行管理。

mkdir sqldatabase
cd sqldatabase/

  2. 启动SQLite3并创建数据库

sqlite3 test.db

   Mac OSX下SQLite3的入门级使用_第1张图片

    这里说明以下退出SQLite3的方式:".exit"或者".quit"

   3. 查询已有数据库

   ".database"

   4. 查询当前数据库中的表

192:sqldatabase hansen$ sqlite3 test.db
SQLite version 3.8.5 2014-08-15 22:37:57
Enter ".help" for usage hints.
sqlite> .table
mytable

  5. 显示格式的配置情况

sqlite> .show
     echo: off
      eqp: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: "|"
    stats: off
    width:

  这些格式根据自己喜好设置,例如.mode list和.mode column:查询语句执行后以记录为行列出查询结果(两者的区别在于list有分隔符,column没有分隔符隔开),.mode.line:查询语句执行后以字段为行显示。(个人是这么理解的,呵呵)

sqlite> .mode list
sqlite> select * from mytable
   ...> ;
1|vincent
2|tim
sqlite> .mode line
sqlite> select * from mytable;
   id = 1
value = vincent

   id = 2
value = tim
sqlite> .mode column
sqlite> select * from mytable;
1           vincent   
2           tim       
sqlite> .headers on
sqlite> select * from mytable;
id          value     
----------  ----------
1           vincent   
2           tim

    6. 查看当前数据库中所有表的建表语句

sqlite> .schema
CREATE TABLE mytable(id integer primary key, value text);
CREATE TABLE iOStable(id integer primary key, value text);

    7. 字段分隔符设置

sqlite> .separator *
sqlite> select * from mytable;
1*vincent
2*tim
sqlite>

二、iOS

  创建一个iOS项目,第一件事就是导入libsqlite3.tdb库。

Mac OSX下SQLite3的入门级使用_第2张图片

   2. 封装好一些函数以便使用,例如获取数据库路径、执行SQL语句函数等。

// 数据库存放路径
- (NSString *)pathForDB{
    NSString *document = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    return [document stringByAppendingPathComponent:DatabaseName];
}

// 执行SQL语句
- (void)execSQL:(NSString *)sql{
    char *error = NULL;
    if( sqlite3_exec(db, [sql UTF8String], NULL, NULL, &error) != SQLITE_OK ){
        NSLog(@"执行SQL语句出错: %s", error);
    }
}

暂时先写这么多了,比较晚了。有不对的地方请多多指教。

你可能感兴趣的:(ios,数据库,mac,osx,sqlite3)