一、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. 获取SQLite:www.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 已经存在这个文件).dump2. 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(轻巧、简洁)

SQLite3下载与安装相关推荐

  1. python下载安装教程mac-数据分析入门~mac 下载及安装 Python 环境

    嗯,从今天开始要记录我从文科小白步入数据分析师的一步步,当然不是自学,第一步买课,等有自学能力开始再找能否自学的出路,经过对 DC 学院,Udacity.courses 等课程的框架.基础要求.老师, ...

  2. 210312阶段三通过sqlite3源码安装sqlite3

    目录 一.学习的知识点 1操作系统 1.1PC 1.2移动端 2数据库 2.1Linux下安装sqlite3 处理器 二.上课没有听懂或者没有理解的地方 三.当天学习的收获 一.学习的知识点 1操作系 ...

  3. 常用开发工具 之 SQLite 数据库 与 Navicat for SQLite 的下载、安装与简单使用说明

    常用开发工具 之 SQLite 数据库 与 Navicat for SQLite 的下载.安装与简单使用说明 目录 常用开发工具 之 SQLite 数据库 与 Navicat for SQLite 的 ...

  4. MySql基础篇---001 数据库概述与MySQL安装篇:概述,表和类对应关系,表关系、数据库卸载,下载,安装,配置,启动,登录,演示,图形化工具,目录结构,常见问题

    第01章_数据库概述 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储 ...

  5. MySQL下载与安装教程以及环境变量配置

    MySQL下载 1 搜索mysql 选择mysql downloads 如下 2 点击滑动到底部选择社区版本(免费) 如下 3 选择Community Server 如下 4 选择对应的版本下载 我选 ...

  6. java jdk 1.8 安装_下载、安装、配置 java jdk1.8

    近期配置react native的开发环境,所以就从配置环境开始.rn的环境配置有那么几项,其中重要的一个就是java jdk(Java Development Kit 的缩写),那么以下就是下载.安 ...

  7. vs安装一直在提取文件_Visual Studio 2019下载及安装教程

    宸1分钟前 这可是我珍藏多年的资源啊. Visual Studio 2019 Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品.是目前最流行的Windows ...

  8. python安装包_迈出Python学习第一步:Python开发环境的下载与安装

    所谓"磨刀不误砍柴工"."工欲善其事,必先利其器",都在告诉我们一个道理:要做好一个事情,事先做好充分的准备工作是非常重要的.所以在我们正式学习用Python编 ...

  9. oracle怎么下载安装,Oracle数据库的下载和安装方法

    一.Oracle数据的下载与安装: 我这里是Oracle Database 11g Release 2版本的. 1.百度云链接: 链接:https://pan.baidu.com/s/1QYvBVS3 ...

  10. 我的世界php安装,我的世界Linux搭建网页后台Multicraft下载与安装

    小编为大家带来了<我的世界>Linux搭建网页后台Multicraft下载与安装,首先下载Multicraft Linux版,下载好了以后请玩家自己看着下面的教程来安装. 64位:http ...

最新文章

  1. 数据库范式(1NF、2NF、3NF、BCNF)
  2. 算法提高课-搜索-DFS之连通性模型-AcWing 1112. 迷宫:dfs和bfs两种解法
  3. 好的MongoDB中文文档
  4. d3.js实现隐藏部分关系
  5. 百度SEO最新强引蜘蛛软件工具
  6. ASP.NET 1.1与ASP.NET 2.0 应用运行并存
  7. PyQt5学习笔记(二) 文本控件及使用
  8. 红孩子艰难求生 苏宁易购或伸援手
  9. 计算机打印机节支措施,“节支降耗,从我做起 ”倡导篇 ——节约纸张
  10. Python 正则表达式匹配中文
  11. Sql Server Express版本升级到企业版
  12. 大学综评自招面试 计算机专业,自主招生中的综合评价面试技巧
  13. docker限制容器下载速度
  14. (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
  15. 深度搜索算法(DFS)
  16. PMOS双电源供电隔离电路(USB接入为电池充电 电池断开供电)
  17. 推荐一款非常好用的效率APP
  18. 【图像处理】SFR算法详解1
  19. 不用远程软件,校园网电脑之间如何远程连接
  20. fopen 参数'rb' 与'rb+'引发的黑色血案

热门文章

  1. Mixly Aduino 超声波~蜂鸣器
  2. 《北京市工作居住证》办理攻略
  3. 51单片机实现流水灯
  4. 51开发板的功能及简单使用
  5. 为什么要进行网站重构呢?
  6. HCIE大师之路(六)——BGP路由综合实验
  7. 【毕业设计】基于单片机的太空游戏机 - 嵌入式 物联网 stm32 51
  8. FME、MYFME安装破解教程
  9. 光纤通信是不是计算机类的,光纤通信专业属于什么门类
  10. matlab画三维空间布朗运动,matlab绘制布朗运动的二维三维图.doc