网站关键词优化教程,深圳百度推广,合肥高端网站建设公司,叮当网站做app数据库编程 数据库的概念 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库是存放数据的仓库。它的存储空间很大#xff0c;可以存放百万条、千万条、上亿条数据。但是数据库并不是…数据库编程 数据库的概念 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库是存放数据的仓库。它的存储空间很大可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放是有一定的规则的否则查询的效率会很低。当今世界是一个充满着数据的互联网世界充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多比如出行记录、消费记录、浏览的网页、发送的消息等等。 数据库分类 常用的数据库
大型数据库 Oracle中型数据库 Server是微软开发的数据库产品主要支持windows平台
小型数据库 : mySQL是一个小型关系型数据库管理系统。开放源码 SQLite基础SQLite的源代码是C其源代码完全开放。它是一个轻量级的嵌入式数据库。SQLite有以下特性 零配置一无需安装和管理配置 储存在单一磁盘文件中的一个完整的数据库 数据库文件可以在不同字节顺序的机器间自由共享 支持数据库大小至2TB1024G 1TB足够小全部源码大致3万行c代码250KB 比目前流行的大多数数据库对数据的操作要快创建SQLite数据库
手工创建 使用sqlite3工具通过手工输入SQL命令行完成数据库创建. 用户在Linux的命令行界面中输入sqlite3可启动sqlite3工具
代码创建
在代码中常动态创建数据库 在程序运行过程中当需要进行数据库操作时应用程序会首先尝试打开数据库此时如果数据库并不存在程序则会自动建立数据库然后再打开数据库
虚拟机中sqlite3安装sqlite3 安装
在线安装1、设置能够上网2、更新更新源apt-get update3、安装软件及开发环境apt-get install sqlite3 ---sqlite3数据库软件apt-get install libsqlite3-dev ---sqlite3数据库开发支持库apt-get install sqlite3-doc ---sqlite3数据库说明文档-------------------------------- apt-get install sqlitebrowser ---sqlite3数据库操作软件
源码安装tar xf sqlite-autoconf-3140100.tar.gz
./configure
make
sudo make install 安装完成后可以使用sqlite3 -version命令来测试是否安装成功 $ sqlite3 -version
3.14.1 2016-08-11基础SQL语句使用 【腾讯文档】sqlite基础SQL语句使用 sqlite基础SQL语句使用 sqlite使用入门 数据库 · 华清远见工作空间 sqlite3的使用: 使用sql系统命令, 创建一个学生库sqlite3 student.db 使用SQL命令 , 创建表; .tables 查看表 .schema 查看表结构 使用SQL命令 , 插入内容; insert into 表名) values(数据内容) 使用 SQL命令 , 查询内容select * from stu 查看表中所有内容 使用SQK命令 , 设置主键 只有在创建表时才能设置为主键不能重复 删除一个表 drop 打开图形化数据库 创建查看 sqlite3编程 API接口文档 官方文档List Of SQLite Functions 中文文档SQLite 命令 - SQLite 中文版 - UDN开源文档 头文件#include sqlite3.h
编译gcc sqlite1.c -lsqlite31.int sqlite3_open(char *path, sqlite3 **db);功能打开sqlite数据库如果数据库不存在则创建它
path 数据库文件路径
db 指向sqlite句柄的指针
返回值成功返回SQLITE_OK失败返回错误码(非零值)2.int sqlite3_close(sqlite3 *db);功能关闭sqlite数据库
返回值成功返回SQLITE_OK失败返回错误码返回值返回错误信息3.执行sql语句接口
int sqlite3_exec(sqlite3 *db, /* An open database */const char *sql, /* SQL to be evaluated */int (*callback)(void*,int,char**,char**), /* Callback function */void *arg, /* 1st argument to callback */char **errmsg /* Error msg written here */
);功能执行SQL操作
db数据库句柄
sql要执行SQL语句
callback回调函数(满足一次条件调用一次函数用于查询)再调用查询sql语句的时候使用回调函数打印查询到的数据
arg:传递给回调函数的参数
errmsg错误信息指针的地址
返回值成功返回SQLITE_OK失败返回错误码回调函数
typedef int (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name);功能select:每找到一条记录自动执行一次回调函数
para传递给回调函数的参数由 sqlite3_exec() 的第四个参数传递而来
f_num记录中包含的字段数目
f_value包含每个字段值的指针数组列值
f_name包含每个字段名称的指针数组列名
返回值成功返回SQLITE_OK失败返回-1每次回调必须返回0后才能继续下次回调4.不使用回调函数执行SQL语句(只用于查询)
int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int *nrow, int *ncolumn, char **errmsg);功能执行SQL操作
db数据库句柄
sqlSQL语句
resultp用来指向sql执行结果的指针
nrow满足条件的记录的数目(但是不包含字段名(表头 id name score))
ncolumn每条记录包含的字段数目
errmsg错误信息指针的地址返回值成功返回SQLITE_OK失败返回错误码5.返回sqlite3定义的错误信息
char *sqlite3_errmsg(sqlite3 *db);创建查看 sqlite3 数据库使用 数据库简介 常用的数据库
大型数据库 Oracle
中型数据库 Server是微软开发的数据库产品主要支持windows平台
小型数据库 : mySQL是一个小型关系型数据库管理系统。开放源码 (嵌入式不需要存储太多数据)SQLite基础SQLite的源代码是C其源代码完全开放。它是一个轻量级的嵌入式数据库。SQLite有以下特性 零配置一无需安装和管理配置 储存在单一磁盘文件中的一个完整的数据库 数据库文件可以在不同字节顺序的机器间自由共享 支持数据库大小至2TB1024G 1TB 嵌入式足够足够小全部源码大致3万行c代码250KB 比目前流行的大多数数据库对数据的操作要快创建SQLite数据库1. 手工创建 使用sqlite3工具通过手工输入SQL命令行完成数据库创建. -----------------两种方式都会用得到重点是代码创建--------------------
2. 代码创建
在代码中常动态创建数据库 在程序运行过程中当需要进行数据库操作时应用程序会首先尝试打开数据库
此时如果数据库并不存在程序则会自动建立数据库然后再打开数据库 虚拟中sqlite3安装 源码安装 安装完成后可以使用sqlite3 -version命令来测试是否安装成功 基础SQL语句使用 sql有两种命令 1. sqlite3系统命令 --- .开头 2. SQL命令 --- 结尾 命令在 记事本 中详细展示, 群内已分享 sqlite3 sql语句.txt sqlite3 API接口 List Of SQLite Functions 常用接口会在 sqlite3 编程中具体展示 sqlite3编程 头文件: #include sqlite3.h 编译方式: gcc 文件名.c -lsqlite3 1)打开或创建数据库 打开或创建数据库
sqlite3_open
头文件: #includesqlite3.h
声明: int sqlite3_open(char *path, sqlite3 **db)
功能打开sqlite数据库 或新建数据库
参数path 数据库文件路径 db 指向数据库句柄的指针 - 该二级指针指向一级指针地址,最终会存储打开的数据库的首地址 返回值成功返回0失败返回错误码(非零值)
使用: sqlite3 *db;if(sqlite3_open(stu.db,db) ! 0){fprintf(stderr,”err: %s\n”,sqlite3_errmsg(db));}//sqlite3自带的打印错误信息 2)打印错误信息 打印错误信息
sqlite3_errmsg
声明:const char *sqlite3_errmsg(sqlite3 *db); //bd;
功能: 打印错误信息
返回值返回错误信息
使用: fprintf(stderr,sqlite3_open failed %s\n,sqlite3_errmsg(db)); 使用: 3)关闭数据库 sqlite3_close
声明: int sqlite3_close(sqlite3 *db);
功能关闭sqlite数据库
返回值成功返回0失败返回错误码
使用: sqlite3_close(db);4)执行sql语句 功能执行sql语句;
原型int sqlite3_exec(sqlite3 *db, /* An open database */ const char *sql, /* SQL to be evaluated */int (*callback)(void*,int,char**,char**), void *arg, /* 1st argument to callback */char **errmsg /* Error msg written here */);
参数sqlite3 *db指定要操作的数据库句柄指针;char *sql指定要执行的sql语句; int (*callback)(void*,int,char**,char**)回调函数; {callback(void *arg,int f_num,char ** f_value ,char **f_name)}void *arg传递给回调函数的第一个参数; - 类似线程函数传参,需强转 - 不传参可以填NULLchar **errmsg该二级指针指向的以一级指针会存储错误信息的首地址;(定义一个一级指针就好了)错误信息存储在静态存储区,存在着相应的源码,我们不用去深究
返回值成功返回SQLITE_OK其实就是0;失败返回error_code其实就是非0 使用: sqlite3_exec : 每查询到一行满足条件的信息, 都会调用一次callback函数显示结果 int sqlite3_exec 的回调函数:(一般在执行 需要终端打印数据的时候使用) int callback(void *arg, int columns, char **column_text, \char **column_name);功能sqlite3_exec每找到一条满足条件的记录就会执行一次回调函数。参数void *argsqlite3_exec的第四个参数传入;int columns查询结果的列数;char **column_text该二级指针指向的是一个数组该数组是一个指针数组数组中的元素都是char*类型的指针。指针指向查询结果的内容char **column_name该二级指针指向的是一个数组该数组是一个指针数组数组中的元素都是char*类型的指针,指针指向查询结果的列名;返回值成功时候必须返回0该返回值会返回给sqlite3_exec函数如果没有返回0则sqlite3_exec会认为回调函数运行失败从而导致sqlite3_exec运行失败; //记得加入 return 0; 关于回调函数中, 如何打印查询的内容: 查询 只用于查询
sqlite3_get_table()
声明: int sqlite3_get_table(sqlite3 *db, const char *sql,\char ***resultp, int *nrow, int *ncolumn, char **errmsg);功能执行SQL操作参数: db数据库句柄 sqlSQL语句resultp用来指向sql执行结果的指针 (该参数三级指针肯定指向二级指针所以定义二级指针变量) nrow该一级指针指向的内存空间中存储结果的行数(一级指针指向变量地址)包括列名 id name sorcencolumn该一级指针指向的内存空间中存储结果的列数 errmsg该二级指针指向的一级指针会存储错误信息首地址 返回值成功返回SQLITE_OK失败返回错误码