SQLite3数据库

扫码查看

#SQLite可视化管理工具(SQLite Expert Pro)

SQLite特点:

1. 遵守ACID(原子性、一致性、隔离性和持久性)的关系型数据库管理系统;
2. 不是一个C/S结构的数据库引擎,而是被集成在用户程序中;不是一个应用程序与之通信的进程;
3. 是一种嵌入式数据库,它的数据库就是一个文件。
4. Android、iOS等移动操作系统中的数据库实现就使用的SQLite3;它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口;
5. 比目前流行的大多数数据库对数据的操作要快;
6. SQLite3支持数据库大小至2TB,包含在一个C程序库中大小250KB;

7. 零装配,无需安装和配置;

基本结构:

SQLite3数据库-LMLPHP

简单来说两部分——前端解析系统--后端引擎

SQLite的表和索引用B/B+树来组织

SQL语句

1. 创建表

create table 表名 (字段1  数据类型约束1,  ...  , 字段n  数据类型约束n )

create table students ( id integer primary key autoincrement,
name vachar(20) check (length(name) > 3),
tel_no vachar(11) not null,
cls_id integer not noll,
unique (name, tel_no),
FOREIGN KEY(cls_id) REFERENCES classes(id)
);

SQLite数据类型

声明类型亲缘类型应用规则
INT
INTEGER
TINYINT
SMALLINT
MEDIUMINT
BIGINT
UNSIGNED BIG INT
INT2
INT8
INTEGER1
CHARACTER(20)
VARCHAR(255)
VARYING CHARACTER(255)
NCHAR(55)
NATIVE CHARACTER(70)
NVARCHAR(100)
TEXT
CLOB
TEXT2
BLOBNONE3
REAL
DOUBLE
DOUBLE PRECISION
FLOAT
REAL4
NUMERIC
DECIMAL(10,5)
BOOLEAN
DATE
DATETIME
NUMERIC5

主键约束:

SQLite表中含有一个内置主键row_id

外键约束:

外键能够确保表中的关键值必须从另一个表中引用,且该数据必须在另一个表中存在,否则会操作失败或引发其他的连锁反应。 

2. 插入数据

insert into 表名 (字段列表) values (与字段列表中对应的字段值)

举例,

insert into classes values(1, 'software', 2010);

批量插入

insert into stu select * from students;

3. select语句——使用数据库

3部分组成:基本操作,附加操作,扩展操作

select [distinct] columns from tables

    where predictate

    group by columes

    having predicate

    order by columns

    limit count, offset;

4. update语句——更新表中数据

update table set update_list where predicate;

5. delete语句——删除数据

delete from table where predicate

6. 修改表

alter table tableName { rename to newName | add column 新的字段}

SQLite API

基本操作:增、删、查、改

insert,delete, query, update

Cursor

当执行查询语句时,返回的数据类型为Curor。它是一个提供了随机读写访问数据库查询结果集的接口,Cursor并不是线程安全的,因此,当在多线程中访问Cursor对象时要手动进行同步,避免出现线程安全问题。

Cursor中定义了一个光标位置,该光标默认指向第一个数据。

用户可以通过moveToNext函数不断地移动光标获取下一个函数,不断地重复这个过程就可以获取到所有数据。

  

 

05-08 08:12
查看更多