数据库、HTML

一、数据库

数据库文件与普通文件区别:

普通文件对数据管理(增删改查)效率低2.数据库对数据管理效率高,使用方便

常用数据库:

1.关系型数据库:

将复杂的数据结构简化为二维表格形式

大型:0racle、DB2

中型:MySq1、sQLServer

小型:Sqlite

2.非关系型数据库以键值对存储,且结构不固定。//JSON

Redis

MongoDB

嵌入式数据库:

sqlite3:

stu.db

1.开源免费,c语言开发

2.代码量少,1万行左右,总大小10M以内

3.文件型数据库,可以移动

4.数据容量最大2T

数据库:

数据存储:

变量、数组、链表-------------》内存 :程序运行结束、掉电数据丢失

文件 : 外存:程序运行结束、掉电数据不丢失

数据库: 外存:程序运行结束、掉电数据不丢失;专业的管理数据

sqlite3:

sqlite3 xxx.db

  1. sqlite的命令

.help 查询手册

.tables 查看数据库中的表

.headers on/off 打开/关闭表头

.mode column 设置左对齐

.quit 退出数据库

  1. sqlite支持的SQL(结构化序列语言)语言

数据类型:

INTEGER : 整形

REAL:浮点型

TEXT:文本字符串类型

NULL :空

  1. 创建一张表

create table 表名(列名1 数据类型, 列名2 数据类型, ....);

  1. 插入表格

insert into 表名 values(值1, 值2, 值3, ...);

  1. 查询数据库中的表

查询表中的所有数据:

select * from 表名;

查找指定列:

select 列名1,列名2 from 表名;

条件查找:

select * from 表名 where 列名 关系运算符 值;

关系运算符:

=

>

<

!=

>=

<=

or (||)

and (&&)

模糊查找:

select * from 表名 where 列名 like "%梅";

% : 可以匹配多个字符

_ : 只能匹配一个字符

有序查找:

升序查找:

select * from 表名 order by 列名 ASC;

降序查找:

select * from 表名 order by 列名 DESC;

  1. 删除数据

delete from 表名 where 条件;

  1. 修改数据

update 表名 set 列名=新值,列名=新值 where 条件;

  1. 删除表

drop table 表名;

  1. sqlite提供的C API接口

int sqlite3_open(const char *fliename,sqlite3 **ppDb);

功能:打开一个数据库文件

参数:

filename:文件名

ppDb:数据库句柄的地址

返回值:

成功:SQLITE_OK

失败:错误码

const char *sqlite3_errmsg(sqliite3 *pdb);

功能:打印一个出错的错误信息

参数:

pdb:数据库句柄

返回值:错误码字符串

int *sqlite3_exec(sqliite3 *pdb,const chat *sql,int(*callback)(void *,int,char **,char **),void *,char **errmsg);

功能:执行sql语句

参数:

pdb:被执行的数据库

sql:要执行的sql语句

callback:回调函数(函数的指针)

int (*callback)(void* arg,int colum_n,char **column_value,char **column_name);

当使用select查询数据时,误触回调函数执行

参数:

arg:sqlite3_exrc传递的第四个参数

column_n:查询到的数据的列数

column_value:保存找到的每一列的元素的值

column_name:每一列的元素的名称。

注意:

回调函数一定要有一个返回值

有几条数据回调函数被触发几次

arg:参数

errmsg:保存错误信息

返回值:

成功:SQLITE_OK

失败:错误码

二、HTML

1.WEB服务器

并发服务器模型

HTTP模型

HTML

HTML 教程 | 菜鸟教程