Learning SQLite & Command Line

1. 介绍

SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。 与其他数据库管理系统不同,SQLite 的安装和运行非常简单。 在大多数情况下:只要确保 SQLite 的二进制文件存在即可开始创建、连接和使用数据库。

【注意点】

在 SQLite 中,每个表的每一行都有一个 64-bit signed integer ROWID;
如果表中包含的列类型INTEGER PRIMARY KEY,则该栏将变为 ROWID 的别名。

SQLite 中的每个表的数据存储,使用B叉树结构. 其中,每个表含有一个条目,使用 rowid 的值作为 key。

这意味着,基于 rowid 进行检索或排序是非常快速的。基于 rowid 搜索一条记录,或者一个范围的记录,
查找速度上将比任何其他基于 PRIMARY KEY 或索引值,快两倍左右。
  

2. 安装

如果你正在使用 Mac OS 雪豹或者更新版本的系统,那么系统上已经装有 SQLite 了。
使用其他系统的,可以前往这里下载和安装: Download

3. Command Line

SQLite 库提供一个简单的命令行实用程序:sqlite3。

    $ sqlite3
    SQLite version 3.7.12 2012-05-14 01:41:23
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite>
  
常用命令行记录:
    # 创建数据库: 若数据库文件存在则打开,否则生成新的文件
    $ sqlite3 colleges.sqlite
    SQLite version 3.7.12 2012-05-14 01:41:23
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite>

    # 创建表
    sqlite> create table schools(name varchar(200));

    # 查看所以表名
    sqlite> .tables
    schools

    # 查看单个表的结构
    sqlite> .schema schools
    CREATE TABLE schools(name varchar(200));

    # 向表中插入数据
    sqlite> insert into schools values('school one');

    # 查找表中数据
    sqlite> select *from schools;
    school one
    sqlite>

    # 设置查找结果的展示
    sqlite> .mode column
    sqlite> .header on
    sqlite> select *from schools;
    name
    ----------
    school one

    # 打开一个 sqlite 数据文件
    sqlite> attach "mydb.sqlite" as db1;
    sqlite> .databases

    # 退出命令行
    sqlite> .quit
  

【备注】
使用 Xcode 运行一个 SQLite 的 Demo。发现项目根目录下面的 db 文件内,数据始终为空。
调查后发现,项目编译后,运行时 db 存储在 iPhone 模拟器文件目录下。
参考路径如下:

/Users/leehenry/Library/Application Support/iPhone Simulator/6.0/Applications/xxx/Documents

参考文章:
一个小时内学习SQLite数据库
Command Line Shell For SQLite
Datatypes In SQLite Version 3

2013-05-17

rocket-wing