【1】数据库基本概念
数据(Data)
能够输入计算机并能被计算机程序识别和处理的信息集合数据库 (Database)
数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合
常用的数据库
1)大型数据库Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。IBM 的DB2是第一个具备网上功能的多媒体关系数据库管理系统,支持包Linux在内的一系列平台。中型数据库Server是微软开发的数据库产品,主要支持windows平台。
2)小型数据库mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,2008年被Sun公司收购,开放源码。
3)基于嵌入式的数据库
基于嵌入式Linux的数据库主要有SQLite, Firebird, Berkeley DB, eXtremeDBFirebird是关系型数据库,功能强大,支持存储过程、SQL兼容等SQLite关系型数据库,体积小,支持ACID事务Berkeley DB中并没有数据库服务器的概念,它的程序库直接链接到应用程序中 eXtremeDB是内存数据库,运行效率高
SQLite3基础
SQLite的源代码是C,其源代码完全开放。SQLite第一个Alpha版本诞生于2000年5月。 他是一个轻量级的嵌入式数据库。
SQLite有以下特性:
- 
零配置一无需安装和管理配置; 
- 
储存在单一磁盘文件中的一个完整的数据库; 
- 
数据库文件可以在不同字节顺序的机器间自由共享; 
- 
支持数据库大小至2TB; 
- 
足够小,全部源码大致3万行c代码,250KB; 
- 
比目前流行的大多数数据库对数据的操作要快; 
安装方式
在线安装方式:
| 1 | 1.确保虚拟机能联网 | 
安装成功后,终端输入以下指令,判断是否安装成功:
| 1 | sqlite3 my.db | 
出现下列语句,标识安装成功,版本不一样无所谓,只要出现 sqlite> 即可
| 1 | SQLite version 3.7.2 | 
输入 ".quit "退出数据库
| 1 | linux@linux:~$ sqlite3 my.db | 
【2】sqlite3命令语句
sqlite3不区分大小写;参考网址:https://m.runoob.com/sqlite/
1. sqlite数据库创建
| 1 | sqlite3 sq.db | 
2.系统命令
| 1 | 系统命令,需要以 . 开头,不需要以 ; 结尾 | 
3. sql语句
以分号(;)结尾;不区分大小写;
没有char*类型,用char类型代替
记录:是某一行信息
字段:某一列信息
1)创建表格
| 1 | create table 表名 (字段名 数据类型, 字段名 数据类型); | 
2)删除表格
| 1 | drop table 表名; | 
3)插入记录
| 1 | 字符串类型可以使用单引号,也可以使用双引号 | 
4)查看记录
| 1 | .header on 打开表头 | 
5)修改记录
| 1 | update 表名 set 字段=数值 where 限制条件; | 
6)删除记录
| 1 | delete from 表名 where 限制条件; | 
7)主键(primary key)
| 1 | primary key 主键; | 
8)拷贝
| 1 | 从a中拷贝所有数据到b中: | 
9)增加列
| 1 | alter table 表名 add column 字段名 数据类型; | 
10)修改表名
| 1 | alter table 旧表名 rename to 新表名; | 
11)修改字段名(列名)
| 1 | 不支持直接修改列名 | 
12)删除列
| 1 | 不支持直接删除列; | 
练习:
1> 创建一个工人信息库,包含工号(主键)、姓名、年龄、薪资。
2> 添加三条工人信息(可以完整信息,也可以非完整信息)
3> 修改某一个工人的薪资(确定的一个)
4> 展示出工资在10000到20000之间的所有工人信息
5> 删除掉指定姓名工人的信息
6> 工厂倒闭,删除整个工人信息库
【3】sqlite3 API
1. 官网
https://www.sqlite.org/index.html

2. sqlite3的C - APIs
| 1 | 头文件: | 
1)sqlite3_open
| 1 | int sqlite3_open( | 
2)sqlite3_close
| 1 | int sqlite3_close(sqlite3*); | 
3)sqlite3_errmsg
| 1 | const char *sqlite3_errmsg(sqlite3*); | 
4)sqlite3_errcode
| 1 | int sqlite3_errcode(sqlite3 *db) | 
5)sqlite3_exec
| 1 | int sqlite3_exec( | 
6)回调函数
| 1 | int callback(void* arg,int cols,char** value_text,char** value_name) | 

| 1 | 
 | 
7)sqlite3_get_table
| 1 | int sqlite3_get_table( | 
8)sqltie3_free_table
| 1 | void sqlite3_free_table(char **result); | 
| 1 | 
 | 
本章完