自学嵌入式第三十八天:数据库
一、SQL(struct query language)关系型数据库
1.分类:大型 中型 小型
大型:ORACLE 中型:MYSQL/MSSQL 小型:SQLINE DBLL powdb
关系型数据库;
SQLINE没有网络功能,也没有权限管理;
2.名词:
DB 数据库database
DBMS 数据库管理系统
MIS 管理信息系统
OA 办公自动化
3.嵌入式数据库:
sqlite3:www.sqlite.org www.kernal.org
特点:开源、C语言开发、代码量小、文件型数据库可以移动、数据容量最大2T;
4.数据库指令
.database 查看绑定文件
.exit 退出
.headers on/off 显示表头
.schema 显示建表语句、查询表结构
.tables 显示表
5.SQL语句
(1)建表
int整型,text型文本型,real小数型,blob二进制数据
create table 表名(表字段 类型,表字段 类型,...);
(2)删除
drop table 表名;
(3)向表中增加数据
insert into 表名(字段名称) values (值名称);
(4)查询
select 列名 from 表名 条件;在列名上写*代表所有的;
条件=where 判断,支持like模糊搜索,此时要用%、_通配符(%代表0到任意多个字符、_代表一个任意字符);两个条件时用and和or;
(5)排序 (仅仅排序查询,不修改)
select 列名 from 表名 order by 数据(desc逆序,asc升序);
(6)限制
select 列名 from 表名 limit 数量;
只看前n条,数量n;
(7)修改
update 表名 set 表字段 = 值 满足条件;(表字段=值是修改后的值);
eg: updat user set id = 4 where name = 'zhangsan' and id = 3;
(8)删除
delete from 表名 满足条件;
6.C语言中的SQL
(1)#include<sqlite3.h>
sqlite *db; //创建句柄
char *errmsg; //创建报错
(2)sqlite3_open(const char *filename,sqlite3 **ppDb);
filename:数据库创建的文件;ppDb:句柄指针的地址;
(3)sqlite3_exec(sqlite3*,const char *sql,int (*callback)(void*,int,char**,char**),void*,char **errmsg);
第一个形参是句柄,第二个实参是要执行的语句,最后一个是报错数的地址;
(4)sqlite3_close(sqlite3*);
传入句柄,关闭;