SQLite3下载与安装

一、SQLite概述:

1.简介:SQLite是一款开源的、嵌入式关系型数据库,它在便携性、易用性、紧凑型、高效性和可靠性有突出的表现。它是一款嵌入式数据库,所以在大多数嵌入式开发中都会使用SQLite,它没有独立的进程,与所在的应用服务共同生存,代码也与应用程序代码在一起。对于内部程序有一个独立的数据库服务器,对于外部而言无法看到程序有一个关系型数据库在运行,程序也不需要关系数据库是如何运作的,只需要管理自己的数据即可。

2.体系结构:SQLite拥有简洁、模块化的体系结构,可以划分为3个子系统和8个独立模块组成。这些模块将查询划分为几个独立的任务,体系几个顶部编译查询语句、中部执行、底部处理存储并于操作系统交互
如图

在这里插入图片描述

-接口:接口处于栈的顶端,由SQLite C API组成,开发人员通过此接口与数据库通信。

  • 编译器:编译过程从语法分析器和词法分析其开始,他们协同处理sql查询语句,分析语法有效性,然后转化为底层能够处理的数据结构,最后代码生成器生成sqlite专用的汇编代码。

  • 虚拟机:虚拟数据库引擎。它是专为处理数据设计的虚拟机,独立于上层的操作系统、CPU等。例如创建一个表这些操作都是先编译成虚拟机语言,然后才形成一个指令集。

  • 后端:由B-tree、页缓存以及操作系统接口组成。B-tree负责排序。页负责存储信息如:字段、索引、记录。pager(sqlite一种数据结构)负责管理页面,根据B-tree请求从磁盘读写数据。

3.SQLite优点:

  • 零配置:不需要做任何配置

  • 移植性:可以运行在Windows、Linux、BSD、MACOS、UNIX等系统上。无缝工作在32位和64位操作系统上。同时适应大小字节。

  • 紧凑型:只需要包含一个头文件和一个库。

  • 简单性:SQLite的API简单易用。

  • 灵活性:直接放到应用程序中就可以获得SQL支持

  • 自由授权:免费开源

  • 可靠性:代码肯定可靠

  • 易用性:

4. SQLite缺点:
并发:SQLite的锁机制是粗粒度的,它允许多个读但是只允许一个写。写期间不允许其他访问数据库,如果应用程序需要很高的并发性,则不适合。
网络:SQLite数据库可以通过网络文件共享,但是当多个客户端修改数据库文件时,会导致出错。

5. 获取SQLitewww.sqlite.org

6. 安装SQLite

  1. 离线安装:dpkg -i sqlite3_3.7.2-1ubuntu0.1_i386.deb

  2. 在线安装:
    apt-get update
    apt-get install sqlite3 //sqlite3数据库软件
    apt-get install libsqlite3-dev //sqlite3数据库开发支持库
    apt-get install sqlite3-doc //sqlite3数据库说明文档
    apt-get install sqlitebrowser //sqlite3数据库操作软件

7.编译源码:
1.解压源码:# tar xvf sqlite-autoconf-3081002.tar.gz

2、进到源码目录并定制Makefile

# cd sqlite-autoconf-3081002
# ./configure --prefix=$PWD/build --host=arm-linux CC=/opt/arm-linux-gcc-4.6.4/bin/arm-linux-gcc				
# ./configure --prefix=$PWD/build --host=i386-linux

说明
--prefix: 指定安装路径
--host:指定主机编译环境
arm-linux是指ARM交叉编译
i386-linux是指x86系统
CC:指定编译器
如果--host是arm-linux则需要交叉编译工具链
如果--host是i386-linux则不需要指定编译器,而使用系统默认的gcc

3、编译:# make

4、安装:# make install

8.打开数据库:在命令行输入命令:sqlite3 + *.db(数据库名)

9.数据库管理:

  • 创建数据库:sqlite test.db。如果仅仅是这样的话创建的是一个假数据库,当退出数据库后,该数据库就不存在了,除非在里面创建一张表或者一个视图,才能在磁盘创建一个永久数据库。

  • 退出数据库:.exit

  • 获取数据库scheam信息

  •  	.tables : 查看所有的表
     	.schema <table_name> :查看表结构
     	.database: 显示当前打开的数据库
     	.indices test 显示test表的索引
    
  • 导出数据:将数据库对象导出成SQL格式

  •  	1. .output file.sql (前提 file.sql 已经存在这个文件)
     	   .dump
     	2. sqlite3 test.db .dump > file.sql
    
  • 导入数据:导入数据有两种方法,如果数据文件是由SQL语句构成,则使用.read命令导入,如果数据文件是由符合分割的值组成,则使用.import命令导入。

  •  	1. .read file.sql
     	   .import file.csv test:将带有分隔符的csv数据导入到test表中
     	2. sqlite3 test.db < file.sql
    
  • 数据库备份:sqlite3 test.db .dump > file.sql

  • 将数据库导出为表格:sqlite3 -header -csv infomation.db “select *from Brother;” > Brother.csv

10.图形界面工具推荐:DB Browser for SQLite(轻巧、简洁)

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能