注册 登录

清河洛

SQLite数据库操作

qingheluo2017-04-18清河洛378
一、创建数据库使用命令:sqlite3 DatabaseName.db :在当前目录下创建一个文件DatabaseName.db通常情况下,数据库名称在 RDBMS 内应该是唯一的。二、附加数据库在sqlite3命令模式中ATTACH DATABASE 'DatabaseName.db' as 'Alias-Name';如果数据库尚未被创建,上面的命令将创建一个数据库,如果数据库已存在,则把数据库文件名称与逻辑数据库 'Alias-Name' 绑定在一起。相当于SQL中的数据库别名。一个数据库文件可以有多个别名。数据库名称 main 和 t...

一、创建数据库

使用命令:sqlite3 DatabaseName.db :在当前目录下创建一个文件DatabaseName.db

通常情况下,数据库名称在 RDBMS 内应该是唯一的。

二、附加数据库

在sqlite3命令模式中ATTACH DATABASE 'DatabaseName.db' as 'Alias-Name';

如果数据库尚未被创建,上面的命令将创建一个数据库,如果数据库已存在,则把数据库文件名称与逻辑数据库 'Alias-Name' 绑定在一起。相当于SQL中的数据库别名。一个数据库文件可以有多个别名。

数据库名称 main 和 temp 被保留用于主数据库和存储临时表及其他临时数据对象的数据库。这两个数据库名称可用于每个数据库连接,且不应该被用于附加,否则将得到一个警告消息

三、分离数据库

在sqlite3命令模式中DETACH DATABASE 'Alias-Name';

用来把命名数据库从一个数据库连接分离和游离出来,如果同一个数据库文件已经被附加上多个别名,DETACH 命令将只断开给定名称的连接,而其余的仍然有效。无法分离 main 或 temp 数据库。

如果数据库是在内存中或者是临时数据库,则该数据库将被摧毁,且内容将会丢失。

四、数据库的备份和恢复

数据库备份:sqlite3 testDB.db .dump > testDB.sql

数据库恢复:sqlite3 testDB.db < testDB.sql

五、sqlit中的系统表

sqlite有两张系统表sqlite_master和sqlite_sequence,用来维护整个数据库,记录数据库中表的信息,当数据库创建时会自动创建这两个表

sqlite_master :是一张只读表,记录了数据库中表,索引,创建sql语句等信息

该表的创建语句:CREATE TABLE sqlite_master(type TEXT, name TEXT, tbl_name TEXT, rootpage INTEGER, sql TEXT );

字段中type是类型,name是名字,tbl_name是源于哪张表,sql是定义创建的sql语句,rootpage暂时不知道是什么,应该和存储位置有关

其中type的值可能是table或index,分别表示表和索引

此表中不会存储临时表,临时表的信息存储在sqlite_tmp_master表中,表的结构和sqlite_master相同

sqlite_sequence :用来记录维护数据库中每张表的RowID的最大值(自增id)

第一列name用来存储表名称。第二列seq用来保存表RowID的最大值

该值最大值为9223372036854775807,如果该值超过最大值,会引起SQL_FULL错误

当对应的表增加记录,该表会自动更新。当表删除,该表对应的记录也会自动删除



网址导航