当前位置: 首页 > news >正文

网站备案 山东核验点网站建设论文开题报告

网站备案 山东核验点,网站建设论文开题报告,商丘住房和城乡建设厅网站,东莞网站建设三合一文章目录数据库一、概览二、基础概念三、常用数据库(举例)四、SQLite CLI(命令行)基础五、SQL 基本操作(CRUD)(以创建学生信息表为例)1. 创建表(Create)2. 插入(Insert&a…

文章目录

  • 数据库
    • 一、概览
    • 二、基础概念
    • 三、常用数据库(举例)
    • 四、SQLite CLI(命令行)基础
    • 五、SQL 基本操作(CRUD)(以创建学生信息表为例)
      • 1. 创建表(Create)
      • 2. 插入(Insert)
      • 3. 删除(Delete)
      • 4. 更新(Update)
      • 5. 查询(Select)
    • 六、补充技巧与细节
    • 七、SQLite C 接口(编程)
    • 八、编译与依赖
    • 附:常用示例命令
  • 习题

数据库

一、概览

  • 涵盖内容:数据库基础概念、SQLite3 常用命令与 SQL 增删改查(CRUD)、SQLite C 语言接口使用示例、工具与编译注意事项、以及课堂项目(学生管理、词典导入、天气查询等)。

二、基础概念

  • 数据库(Database):将数据集合化并存放,便于管理与查询。
  • 数据库管理系统(DBMS):软件,负责数据存储、管理与访问;相关角色包括数据库管理员、数据库应用软件、操作系统。
  • 关系型数据库(RDBMS):以表格(类似 Excel)组织数据,常用字段示例:姓名、性别、年龄、分数。
  • 非关系型数据库(NoSQL):如 JSON 格式的键值对(key = value)。

三、常用数据库(举例)

  • SQL Server、Oracle、SQLite(轻量级、单文件数据库)等。

四、SQLite CLI(命令行)基础

常见命令:

sqlite3 stu.db    -- 打开/创建数据库文件
.tables            -- 列出表
.schema            -- 查看表结构
.headers on         -- 显示查询列名
.mode column        -- 以列对齐模式显示查询结果
.quit / .exit       -- 退出
.help               -- 帮助

注意:SQL 语句必须以分号 ; 结尾。


五、SQL 基本操作(CRUD)(以创建学生信息表为例)

1. 创建表(Create)

CREATE TABLE stu (name TEXT,sex TEXT,age INTEGER,score REAL,PRIMARY KEY(name)  -- 示例主键
);
-- 或者:
CREATE TABLE stu1 (name TEXT, sex TEXT, age INT, score REAL);

说明PRIMARY KEY 用于唯一标识记录;如果希望实现自增长,字段类型应写为 INTEGER PRIMARY KEY

2. 插入(Insert)

-- 插入整行
INSERT INTO stu VALUES ("tom","male",19,99.5);
-- 插入部分列
INSERT INTO stu (name, sex) VALUES ("jack","male");

3. 删除(Delete)

-- 删除记录
DELETE FROM 表名 WHERE 条件;
-- 删除表
DROP TABLE 表名;

4. 更新(Update)

-- 添加字段
ALTER TABLE stu ADD COLUMN sno;
-- 修改数据
UPDATE stu SET sno=110 WHERE name="tom";

5. 查询(Select)

SELECT * FROM stu;                      -- 显示所有列
SELECT name FROM stu WHERE score>80;    -- 查询部分字段
SELECT * FROM stu WHERE age IN (18,19);
SELECT * FROM stu WHERE age>18 AND score>80;
SELECT * FROM stu WHERE name LIKE "%tom%";  -- 模糊匹配
SELECT * FROM user WHERE id<10 ORDER BY id LIMIT 2;
SELECT * FROM user WHERE age BETWEEN 19 AND 20;

常用关键字:IN, AND, OR, BETWEEN ... AND ..., LIKE, ORDER BY, LIMIT


六、补充技巧与细节

  • 时间列插入:可使用 datetime('now','+8 hours')(UTC 调整为 +8 小时)。
CREATE TABLE user1 (id INT, name CHAR, age INT, dt DATETIME);
INSERT INTO user1 VALUES (2, '张三', 23, datetime('now','+8 hours'));
  • 自动增长列:必须把字段类型写为 INTEGER PRIMARY KEY 才能实现自动增长,例如:
CREATE TABLE user3 (id INTEGER PRIMARY KEY ASC, name CHAR, age INT, dt DATETIME);
INSERT INTO user3 (NULL, '李四', 23, datetime('now'));
  • ASC 表示升序,DESC 表示降序。

七、SQLite C 接口(编程)

主要函数:

  • int sqlite3_open(const char *filename, sqlite3 **ppDb);

    • 打开数据库文件并返回 sqlite3* 句柄。成功返回 SQLITE_OK
  • int sqlite3_exec(sqlite3 *db, const char *sql, int (*callback)(void*,int,char**,char**), void *arg, char **errmsg);

    • 执行 SQL 语句;若结果集不为空,会调用回调函数处理每一行。

    • callback 函数原型:

      int callback(void *para, int n_column, char **column_value, char **column_name);
      
    • errmsg 可用于接收错误信息(执行失败时)。

  • int sqlite3_close(sqlite3 *db);

    • 关闭数据库并释放资源。

回调函数用于接收每一行的列值与列名,以字符串数组形式传入。


八、编译与依赖

  • 在 Linux 下安装开发包:
sudo apt-get install libsqlite3-dev
  • 编译示例:
gcc test_sqlite3.c -lsqlite3

附:常用示例命令

-- 打开数据库
sqlite3 stu.db-- 查看表与结构
.tables
.schema stu-- 查询并以列样式显示
.headers on
.mode column
SELECT * FROM stu;-- 创建示例
CREATE TABLE stu1 (name TEXT, sex TEXT, age INT, score REAL);-- 插入示例
INSERT INTO stu VALUES ("tom","male",19,99.5);-- 更新示例
ALTER TABLE stu ADD COLUMN sno;
UPDATE stu SET sno=110 WHERE name="tom";-- 删除示例
DELETE FROM stu WHERE name="tom";
DROP TABLE stu;

习题

读取一个包含单词原型和释义的文件,将其信息录入表中

代码实现:

#include<stdio.h>
#include<string.h>
#include<sqlite3.h>
#include<fcntl.h>
#include<unistd.h>int main(void){FILE* fd;fd = fopen("dict.txt","r");if(fd == NULL){printf("fopen fail\n");return -1;}sqlite3 *db = NULL;int ret = sqlite3_open("word.db",&db);if(ret != SQLITE_OK){printf("sqlite3_open fail");return -1;}sqlite3_exec(db,"create table word(id INTEGER PRIMARY KEY ASC,word,meaning);",NULL,NULL,NULL);char buf[1024];char word[64] = {0};char meaning[512] = {0};char *p = NULL;while(fgets(buf,sizeof(buf),fd) != NULL){buf[strlen(buf)-1] = '\0';p = strchr(buf,' ');int len = p - buf;strncpy(word,buf,len);word[len] = '\0';while(*p == ' '){p++;}strcpy(meaning,p);meaning[strlen(meaning)-1] = '\0';char sql[2048] = {0};sprintf(sql,"insert into word values(NULL,\"%s\",\"%s\");",word,meaning);char *errmsg = NULL;ret = sqlite3_exec(db,sql,NULL,NULL,&errmsg);if(ret != SQLITE_OK){printf("sqlite3_exec fail :%s\n",errmsg);return -1;}}sqlite3_close(db);return 0;
}
http://www.dtcms.com/a/509430.html

相关文章:

  • 方维网络的品牌网站建设wordpress删除主题数据
  • 美食网站设计目的尤溪网站建设
  • 建设部网站造价咨询工业设计软件上市公司
  • 外贸自建站的推广方式门户网站建设的平台
  • 呼和浩特网站建设哪家最便宜如何把wordpress头部去掉
  • 兰州网站订制网站建设与准备
  • 专业网站优化软件重庆承越网站建设公
  • 谷歌推广网站开发公司是否可以代建筑公司支付材料款
  • 上海本地网站建设小程序代码怎么获取
  • FTP 和 SFTP:作用、使用场景及详细使用教程
  • 东莞常平网站建设网站建设要做原型图吗
  • 重庆市建设工程信息网官网怎么查看seo业务培训
  • 长沙个人网站建设网站中医建设
  • 【图像理解进阶】如何用大模型实现手写汉字识别?Python实战教程
  • 淇县住房和城乡建设局网站怎样用手机做推广免费网站
  • 外贸网站建设不可缺少的灵活性超级优化空间
  • 企业网站的设计思路手机网站建设渠道
  • 荣欣建设集团有限公司网站广东东莞电子厂
  • 群晖做自己的电影网站织梦网站栏目建设
  • 嵌入式开发学习日志41——stm32之SPI总线基本结构
  • 哈尔滨网站建设公司oeminc信息爆炸的时代做网站
  • 网站建设的项目方案模板中国建设企业银行
  • 泉州自助建站软件免费域名注册方式
  • 商城网站哪个公司做的好处羽毛球赛事2022
  • 高邮城乡建设局 网站长春网站建设厂家
  • 浙江城乡建设网站证件查询张家港网站建设服务
  • 【Java工程师面试全攻略】Day14:大数据处理与实时计算深度解析
  • 网上做家教的网站您备案的网站名称没有关联性
  • 互联网科技公司做网站哪家好标题优化seo
  • 宿州精品网站建设建设银行银行官网网站