(window.webpackJsonp=window.webpackJsonp||[]).push([[112],{413:function(t,s,a){"use strict";a.r(s);var e=a(10),n=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"sqlite"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#sqlite"}},[t._v("#")]),t._v(" SQLite")]),t._v(" "),s("p",[t._v("：一个关系型数据库，很轻量级。")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://www.sqlite.org/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("官网"),s("OutboundLink")],1)]),t._v(" "),s("li",[t._v("采用 C 语言开发。")]),t._v(" "),s("li",[t._v("支持 SQL 操作，支持简单的 CRUD 功能，还支持 ACID 事务。")]),t._v(" "),s("li",[t._v("不需要安装或配置就可以直接使用，使用简便，占用的计算机资源少。")]),t._v(" "),s("li",[t._v("不是采用 C/S 架构，而是将 SQLite 引擎嵌入程序中，在代码中直接调用其 API 。")]),t._v(" "),s("li",[t._v("可以存储在文件中，也可以存储在内存中。\n"),s("ul",[s("li",[t._v("没有访问权限控制。只要用户能打开存储 SQLite 数据库的文件，就能读写数据库。")])])]),t._v(" "),s("li",[t._v("适用于嵌入式系统等简单的数据存储场景，是世界上使用量最大的一种数据库。")])]),t._v(" "),s("h2",{attrs:{id:"版本"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#版本"}},[t._v("#")]),t._v(" 版本")]),t._v(" "),s("ul",[s("li",[t._v("v1.0 ：于 2000 年发布。最初是 D. Richard Hipp 为美国海军电脑系统设计的简单数据库。")]),t._v(" "),s("li",[t._v("v2.0 ：于 2001 年发布。")]),t._v(" "),s("li",[t._v("v3.0 ：于 2004 年发布。")])]),t._v(" "),s("h2",{attrs:{id:"管理单元"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#管理单元"}},[t._v("#")]),t._v(" 管理单元")]),t._v(" "),s("p",[t._v("一个 SQLite 实例中只有一个数据库，其中可以创建多个数据表，每个数据表中可以存储多行数据。")]),t._v(" "),s("p",[t._v("例：创建数据表")]),t._v(" "),s("div",{staticClass:"language-sql extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sql"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("CREATE")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("TABLE")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"table1"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n    "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"id"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("INTEGER")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("PRIMARY")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("KEY")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("text")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("NOT")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("NULL")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("INSERT")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("INTO")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"table1"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("VALUES")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("NULL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"one"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("ul",[s("li",[t._v("在 SQLite 中，声明为 INTEGER PRIMARY KEY 的字段会自动递增。如上，插入一行数据时，如果 id 字段为 NULL ，则 SQLite 会自动将该字段赋值为 max(id)+1 。")])]),t._v(" "),s("h2",{attrs:{id:"数据类型"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#数据类型"}},[t._v("#")]),t._v(" 数据类型")]),t._v(" "),s("p",[t._v("SQLite 采用动态类型，插入数据时不会检查其数据类型，任何类型的数据一般都可以插入任何字段中。")]),t._v(" "),s("p",[t._v("常用的数据类型：")]),t._v(" "),s("ul",[s("li",[t._v("NULL ：空值")]),t._v(" "),s("li",[t._v("INTEGER ：带符号的整数")]),t._v(" "),s("li",[t._v("REAL ：浮点数")]),t._v(" "),s("li",[t._v("TEXT ：字符串，采用 utf-8 编码。")]),t._v(" "),s("li",[t._v("BLOB ：直接存储插入的数据，不做改变。")])])])}),[],!1,null,null,null);s.default=n.exports}}]);