怎么查看网站的ftp网站开发流程莆田
web/
2025/10/9 11:28:36/
文章来源:
怎么查看网站的ftp,网站开发流程莆田,vs做网站添加背景,阿里巴巴官网首页登录入口阅读引言#xff1a; 本文将会从环境sqlite3的安装、数据库的基础知识、sqlite3命令、以及sqlite的sql语句最后还有一个完整的代码实例#xff0c; 相信仔细学习完这篇内容之后大家一定能有所收获。 目录
一、数据库的基础知识
1.数据库的基本概念
2.常用数据库
3.嵌入式…
阅读引言 本文将会从环境sqlite3的安装、数据库的基础知识、sqlite3命令、以及sqlite的sql语句最后还有一个完整的代码实例 相信仔细学习完这篇内容之后大家一定能有所收获。 目录
一、数据库的基础知识
1.数据库的基本概念
2.常用数据库
3.嵌入式数据库
4.sqlite3基础
5.创建数据库
6.数据库的相关术语
二.Sqlite3安装
三、Sqlite3命令
四、Sqlite3语句
五、Sqlite编程接口
六、代码实例
七、简单总结 一、数据库的基础知识
1.数据库的基本概念 数据Data能够输入计算机并能被计算机程序识别和处理的信息集合 数据库 Database数据库是在数据库管理系统管理和控制之下存放在存储介质上的数据集合 2.常用数据库 大型数据库 Oracle公司是最早开发关系数据库的厂商之一其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。 IBM 的DB2是第一个具备网上功能的多媒体关系数据库管理系统支持包Linux在内的一系列平台。 中型数据库 Server是微软开发的数据库产品主要支持windows平台。 小型数据库 mySQL是一个小型关系型数据库管理系统开发者为瑞典MySQL AB公司2008年被Sun公司收购开放源码。 3.嵌入式数据库 基于嵌入式Linux的数据库主要有SQLite, Firebird, Berkeley DB, eXtremeDBFirebird是关系型数据库,功能强大,支持存储过程、SQL兼容等SQLite关系型数据库,体积小,支持ACID事务 Berkeley DB中并没有数据库服务器的概念它的程序库直接链接到应用程序中eXtremeDB是内存数据库,运行效率高 4.sqlite3基础 SQLite的源代码是C其源代码完全开放。SQLite第一个Alpha版本诞生于2000年5月。 他是一个轻量级的嵌入式数据库。 SQLite有以下特性 零配置无需安装和管理配置储存在单一磁盘文件中的一个完整的数据库数据库文件可以在不同字节顺序的机器间自由共享支持数据库大小至2TB足够小全部源码大致3万行c代码250KB比目前流行的大多数数据库对数据的操作要快 5.创建数据库 手工创建 使用SQLite3工具通过手工输入SQL命令行完成数据库创建用户在Linux的命令行界面中输入SQLite3可启动SQLite3工具 代码创建 在代码中常动态创建数据库在程序运行过程中当需要进行数据库操作时应用程序会首先尝试打开数据库此时如果数据库并不存在程序则会自动建立数据库然后再打开数据库 6.数据库的相关术语 数据库的相关术语有很多以下是一些常见的数据库术语 1. 数据库Database数据的集合按照一定的数据模型组织和存储的集合。 2. 表Table用于存储数据的二维数据结构由行Record和列Field组成。 3. 行Record表中的一条数据也被称为记录或元组。 4. 列Field表中的一个属性也被称为字段或列名。 5. 主键Primary Key表中用于唯一标识每条记录的字段或字段组合。 6. 外键Foreign Key表中用于建立与其他表之间关联关系的字段。 7. 索引Index加速数据检索的数据结构通过对关键字段建立索引可以快速定位数据。 8. 查询Query从数据库中检索数据的操作通过使用SQL语言编写查询语句来实现。 9. SQLStructured Query Language结构化查询语言用于管理和操作关系型数据库的标准语言。 10. 视图View虚拟表基于一个或多个表的查询结果创建的可以简化复杂的查询操作。 11. 触发器Trigger与表相关联的特殊类型的存储过程在插入、更新或删除数据时自动触发执行。 12. 事务Transaction一组数据库操作要么全部执行成功要么全部回滚保证数据的一致性和完整性。 13. 归范式Normalization为了避免数据冗余和不一致对数据模型进行优化的过程。常见的归范式有第一范式1NF、第二范式2NF和第三范式3NF等。 14. 关系数据库管理系统RDBMS用于存储、管理和操作关系型数据库的软件系统例如MySQL、Oracle、SQL Server等。 这些术语是数据库领域中常用的理解这些术语可以帮助你更好地了解和使用数据库。 15.数据库管理者(database administrator) 二.Sqlite3安装
sudo apt-get install dpkg -s sqlite3 按道理来讲 到这一步就结束了 但是在实际的代码编译中 找不到sqlite3.h头文件 也链接不到对应的sql接口的实现。大家安装完可以先去/usr/include目录下看有没有对应的头文件 没有的话这样干。安装sqlite3的库包。
sudo apt-get install libsqlite3-dev 三、Sqlite3命令 注意都以.开头 .exit 退出 .quit 退出 .table 查看表 .schema 查看表的结构 .open databasename 打开数据库 .help 命令帮助 简单演示 四、Sqlite3语句 1-- 创建一张表 create table stuinfo(id integer, name text, age integer, score float); 2-- 插入一条记录 insert into stuinfo values(1001, zhangsan, 18, 80); insert into stuinfo (id, name, score) values(1002, lisi, 90); 3-- 查看数据库记录 select * from stuinfo; select * from stuinfo where score 80; select * from stuinfo where score 80 and name zhangsan; select * from stuinfo where score 80 or namewangwu; select name,score from stuinfo; 查询指定的字段 select * from stuinfo where score 85 and score 90; 4-- 删除一条记录 delete from stuinfo where id1003 and namezhangsan; 5-- 更新一条记录 update stuinfo set age20 where id1003; update stuinfo set age30, score 82 where id1003; 6-- 删除一张表 drop table stuinfo; 7-- 增加一列 alter table stuinfo add column sex char; 8-- 删除一列 create table stu as select id, name, score from stuinfo; 复制除了要删除的那一列 drop table stuinfo; //删除原来的表 alter table stu rename to stuinfo; //把新建的表改为原来的表名 设置主键并且该主键是自增的 主键的意思就是唯一的意思 比如一张表中的id号 身份证号啥的。 create table info(id integer primary key autoincrement, name vchar); 简单演示 五、Sqlite编程接口 int sqlite3_open(char *path, sqlite3 **db) 功能打开sqlite数据库path数据库文件路径db指向sqlite句柄的指针返回值成功返回0失败返回错误码(非零值)int sqlite3_close(sqlite3 *db); 功能关闭sqlite数据库 返回值成功返回0失败返回错误码const char *sqlite3_errmg(sqlite3 *db); 返回值返回错误信息Int sqlite3_exec(sqlite3 *db, const char *sql, sqlite3_callback callback, void *, char **errmsg); 功能执行SQL操作db数据库句柄sqlSQL语句callback回调函数errmsg错误信息指针的地址返回值成功返回0失败返回错误码typedef int (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name); 功能每找到一条记录自动执行一次回调函数para传递给回调函数的参数f_num记录中包含的字段数目f_value包含每个字段值的指针数组f_name包含每个字段名称的指针数组返回值成功返回0失败返回-1不使用回调函数执行SQL语句int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int*nrow, int *ncolumn, char **errmsg); 功能执行SQL操作db数据库句柄sqlSQL语句resultp用来指向sql执行结果的指针nrow满足条件的记录的数目ncolumn每条记录包含的字段数目errmsg错误信息指针的地址返回值成功返回0失败返回错误码 六、代码实例
实例软件结构如下 Makefile
OBJ$(wildcard ./*.c)
all:$(OBJ)gcc *.c -o test -lsqlite3
main.c
#include sqlite_method.h/* hint user input */
void hint_display();/* main */
int main(int argc, const char *argv[])
{sqlite3 *db;char *errmsg;char input;if(sqlite3_open(DATABASE_PATH, db) ! SQLITE_OK) {printf(%s\n, sqlite3_errmsg(db));return -1;} else {printf(open database [%s] success\n, DATABASE_PATH);}if(sqlite3_exec(db, create table if not exists exercise(id integer, name text, score integer);, \NULL, NULL, errmsg) ! SQLITE_OK) {printf(sqlite3_exec failed, line: %d\n, __LINE__);}/* handle user input */while(1) {hint_display(); scanf(%c, input);switch(input) {case i:insert_handle(db);getchar();break;case d:delete_handle(db);getchar();break;case q:query_handle(db);getchar();break;case u:update_handle(db);getchar();break;case !:quit_handle(db);getchar();break;default:printf(invalid option!\n);}}return 0;
}void hint_display()
{printf(**********************************************************\n);printf(*i: insert d: delete q: query u: update !:exit*\n);printf(**********************************************************\n);
}sqlite_method.h
#ifndef _SQLITE_METHOD_H_
#define _SQLITE_METHOD_H_/*Author: Hewei*Date: 2024-3-30*Brife: database operator* */#include sqlite3.h
#include string.h
#include stdlib.h
#include stdio.h#define DATABASE_PATH ./exercise.db
#define N 256void insert_handle(sqlite3 *db);
void delete_handle(sqlite3 *db);
void query_handle(sqlite3 *db);
void update_handle(sqlite3 *db);
void quit_handle(sqlite3 *db);#endif sqlite_method.c
#include sqlite_method.hvoid insert_handle(sqlite3 *db)
{int id;char name[128] {0};int score;char buff[N] {0};char *errmsg;printf(Please input id:);scanf(%d, id);printf(Please input name:);scanf(%s, name);//getchar(); method 1printf(Please input score:);//scanf(% c%d, score); method 2scanf(%*c%d, score);sprintf(buff, insert into exercise values(%d, %s, %d), id, name, score);if(sqlite3_exec(db, buff, NULL, NULL, errmsg) ! SQLITE_OK) {printf(%s\n, errmsg);} else {printf(\n\n\n);printf(insert operator success!|\n);}}void delete_handle(sqlite3 *db)
{int id;char buff[N] {0};char *errmsg;printf(Please input delete id:);scanf(%d, id);snprintf(buff, sizeof(buff), delete from exercise where id %d, id);if(sqlite3_exec(db, buff, NULL, NULL, errmsg) ! SQLITE_OK) {printf(%s\n, errmsg);} else {printf(\n\n\n);printf(delete operator success!|\n);}}int query_callback(void *arg, int f_num, char **value, char **name)
{int i;static int count 0;if(count 0) {for(i 0; i f_num; i) {printf(%-10s, name[i]); }count 1;putchar(10);}for(i 0; i f_num; i) {printf(%-10s, value[i]);}puts();return 0;
}void query_handle(sqlite3 *db)
{ char buff[N] {0};char *errmsg;sprintf(buff, select * from exercise);if(sqlite3_exec(db, buff, query_callback, NULL, errmsg) ! SQLITE_OK) {printf(%s\n, errmsg);} else {printf(\n\n\n);printf(query operator success!|\n);}}void update_handle(sqlite3 *db)
{char buff[128];char *errmsg;int id, score;printf(Please input you want update id:);scanf(%d, id);printf(Please input you want update score:);scanf(%d, score);sprintf(buff, update exercise set score %d where id %d\n, score, id);if(sqlite3_exec(db, buff, NULL, NULL, errmsg) ! SQLITE_OK) {printf(%s\n, errmsg);} else {printf(\n\n\n);printf(update operator success!\n);}
}void quit_handle(sqlite3 *db)
{printf(\n\n\n);printf(database os exit success!\n);sqlite3_close(db);exit(1);
}七、简单总结
1. 关系型数据库其实就是execl那种类似的表格 不是什么高深的东西
2. Sqlite3的特点 体积小、简单、高效、本地存储、源码开放。 好了 老规矩希望对有需要的人有帮助。因为这个我实现得不是很规范看不懂的地方随时欢迎私信。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89609.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!