网站建设有创意,wordpress会员积分邀请,网站内链怎么坐锚文本,wordpress磁力插件目录 一、数据库
1.1.概念
1.2.类型
1.关系型数据库
2.非关系型数据库
1.3.SQL语言
1.4.如何在Linux安装sqlite数据库
1.确保虚拟机可以上网
2.配置apt-get工具集合
3.安装sqlite数据库
1.5.sqlite3
1.创建数据库
2.查看数据表
3.退出数据库
4.SQL语句
二、数… 目录 一、数据库
1.1.概念
1.2.类型
1.关系型数据库
2.非关系型数据库
1.3.SQL语言
1.4.如何在Linux安装sqlite数据库
1.确保虚拟机可以上网
2.配置apt-get工具集合
3.安装sqlite数据库
1.5.sqlite3
1.创建数据库
2.查看数据表
3.退出数据库
4.SQL语句
二、数据库编程
2.1.安装sqlite3 2.2.函数接口
1.sqlite3_open() --- 打开数据库
2. sqlite3_errmsg --- 获得出错原因
3.sqlite3_exec --- 操作数据库表
4.sqlite3_close--- 关闭数据库
2.3.实例
三、总结 一、数据库
1.1.概念
文件存放数据掉电的情况下数据不会
数据库存放的位置也是文件
什么时候使用数据库呢
当要存储和管理大量数据时往往使用数据库效率高
1.2.类型
1.关系型数据库 1Oracle 2DB2
3MySql
4sqlserver
5sqlite
2.非关系型数据库
1redis
1.3.SQL语言
数据库支持的编程语言主要对表完成增、删、改、查相关功能
1.4.如何在Linux安装sqlite数据库
1.确保虚拟机可以上网
2.配置apt-get工具集合
3.安装sqlite数据库
suo apt-get install sqlite3
1.5.sqlite3
1.创建数据库
sqlite3 数据库名
2.查看数据表
.tables
3.退出数据库
.quit
4.SQL语句
create table 表名 -------- 创建数据库表insert into 表名 values .....------ 插入元素update 表名 set 列 “” ---- 修改元素select 列., . from 表名 ----- 查询元素delete from student where .. ------- 删除某一行元素drop table 表名 ---- 删除表
注意查询是最复杂的 可以连接where条件查询也可以联合其他表查询
联合查询
cross join --- 交叉连接inner join --- 内连接outer join --- 外连接
二、数据库编程
2.1.安装sqlite3 sudo apt-get install libsqlite3-dev 2.2.函数接口
1.sqlite3_open() --- 打开数据库 int sqlite3_open(const char *filename, /* Database filename (UTF-8) */sqlite3 **ppDb /* OUT: SQLite db handle */);功能打开一个数据库文件参数filename数据库文件名称 ppDb数据库句柄返回值成功返回SQLITE_OK失败返回错误码2. sqlite3_errmsg --- 获得出错原因
const char *sqlite3_errmsg(sqlite3*);获得出错原因
3.sqlite3_exec --- 操作数据库表 int sqlite3_exec(sqlite3*, /* An open database */const char *sql, /* SQL to be evaluated */int (*callback)(void*,int,char**,char**), /* Callback function */void *, /* 1st argument to callback */char **errmsg /* Error msg written here */);功能执行SQL语句参数sqlite3*数据库句柄sql要执行的SQL语句字符串的首地址 callback回调函数只有在select语句时会使用其余SQL语句只需传入NULL对找到的数据要完成的操作void *给回调函数的参数 char **存放错误信息空间首地址返回值成功返回SQLITE_OK 失败返回错误码 4.sqlite3_close--- 关闭数据库 int sqlite3_close(sqlite3*);功能关闭sqlite3数据库 2.3.实例
创建数据库并创建student表插入数据并查询打印
#include sqlite3.h
#include stdio.h
#include stdlib.h
typedef struct student
{char name[32];char sex[8];double score;
} stu_t;/*打印查寻到的数据*/
int callback(void *arg, int column, char **pcontext, char **ptitle)
{int i 0;for (i 0; i column; i){printf(%s %s\t, ptitle[i], pcontext[i]);}printf(\n);return 0;
}int main(void)
{sqlite3 *db NULL;char *perrmsg NULL;char tmpbuff[1024] {0};int ret 0;int i 0;stu_t s[3] {{张三,男,89},{李四,男,99},{王二,男,100},};/* 打开数据库文件 */ret sqlite3_open(student.db, db);if (ret ! SQLITE_OK){fprintf(stderr, fail to open:%s\n, sqlite3_errmsg(db)); return -1;}/* 创建表 */sprintf(tmpbuff, %s, create table if not exists student (id integer primary key asc,name text,sex text,socre integer););ret sqlite3_exec(db, tmpbuff, NULL, NULL, perrmsg);if (ret ! SQLITE_OK){fprintf(stderr, fail to create table:%s, perrmsg); return -1;}/* 插入数据 */for (i 0; i 3; i){sprintf(tmpbuff, insert into student values(NULL,\%s\,\%s\,%lf);,s[i].name,s[i].sex,s[i].score);ret sqlite3_exec(db, tmpbuff, NULL, NULL, perrmsg);if (ret ! SQLITE_OK){fprintf(stderr, fail to create table:%s, perrmsg); sqlite3_free(perrmsg);sqlite3_close(db);return -1;}}/* 查寻数据 */sprintf(tmpbuff, select * from student;);ret sqlite3_exec(db, tmpbuff, callback, NULL, perrmsg);if (ret ! SQLITE_OK){fprintf(stderr, fail to create table:%s, perrmsg); sqlite3_free(perrmsg);sqlite3_close(db); return -1;} sqlite3_close(db);
} 三、总结 数据库中最难的操作还是查询操作查询按照很多不同条件查询情况比较多必须扎实掌握。