1、基本概念
数据库&数据库管理系统(DBMS)
关系型DBMS和SQL
通用型DBMS&嵌入式DBMS
2、SQLite
简介
命令行操作
库函数编程操作
3、数据库基本概念
1)数据
能够输入计算机并能被计算机程序识别和处理的信息集合。
2)数据库
数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合。
注:数据库管理系统(DataBase Management System)------DBMS
4、数据库管理系统
DBMS是数据库系统中对数据进行统一管理和控制的软件系统。
1)数据库定义功能    Data Definition
2)数据库操纵功能    Data Manipulation
3)数据运行控制功能    Data Control
4)数据通信功能    Data Communication
5)支持存取海量数据    Mass Data
5、数据库学习网    www.w3school.com.cn/sql    
6、常用数据库
1)大型数据库
Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。
IBM的DB2是第一个具备网上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台。
2)中型数据库
    Server是微软开发的数据库产品,主要支持windows平台
    3)小型数据库
    mySQL是一个小型关系型数据库管理系统,开发者为瑞曲MySQL AB公司,2008年被SUN公司收购。开放源码
7、基于嵌入式linux的数据库
基于嵌入式linux的数据库主要有SQLite,Firebird,Berkeley DB,eXtremeDB
    1)Firebird是关系型数据库,功能强大,支持存储过程、SQL兼容等
    2)SQLite关系型数据库,体积小,支持ACID事务
    3)Berkeley DB中并没有数据库服务器的概念,它的程序库直接链接到应用程序中
    4)eXtremeDB是内存数据库,运行效率高
8、SQLite基础
SQLite的源代码是C,其源码完全开放。SQLite第一个Alpha版本诞生于2000年5月。是一个轻量级的嵌入式数据库。
SQLite特性:
    1)零配置,无需安装和管理配置
    2)储存在单一磁盘文件中的一个完整的数据库
    3)数据库文件可以在不同字节顺序的机器间自由共享
    4)支持数据库大小至2TB
    5)足够小,全部源码大致3万行C代码,250KB
    6)比目前浒的大多数数据库对数据的操作要快。
9、SQLite3操作说明(相关网址:www.sqlite.org)
1)指令操作
sqlite3 my.db命令打开my.db文件
.database       显示my.db相关信息
.tables            查看数据库里面的表信息
.schema people查看定义表的信息,会显示一句创建表命令CREATE TABLE "people"(id,name,age);
2)语句操作
创建数据库文件:sqlite3 test.db
创建表:create table people(id text, name text, age);    数据类型:Integer整、text字符串、real浮点数、blob二进制数据块,缺省为text类型。
删除表:drop table people;。
添加记录:insert into people values(1, "A", 10);。
insert into people values(2, "B", 13);。
insert into people values(3, "C", 9);
insert into people values(4, "C", 15);
insert into people values(5, NULL, NULL);        //name、age暂不填,为空值。
选择查看:select 选择列 from 表名  选择行
select * from people;选择所有行及所有表
select * from people where name='c';    姓名为C的人,所有列
select id from people where name='c';   只显示C的id
select id,age from people where name='c';    显示C的id与年龄
select id,age from people where name='c' and age>=10;
删除记录:delete from people where name='c';    删除name为以的记录
更新记录:update people set name='c' where id=1    将第一条记录的name改为c
修改表:(如添加字段)    alter table people add column address;   此时在表people中添加了一个address字段
删除列:通过创建新表的方法,将老表数据导进新表除要删除的列,再将老表删除       
改表名:alter table people rename to temp;
建新表:create table people(id, name, age);
老表导新表:insert into people select id,name,age from temp;
删除老表:drop table temp;
10、SQLite    C语言编程接口
typedef int(*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name);
功能:每找到一条记录自动执行一次回调函数
para:    传递给回调函数的参数
f_num:    记录中包含的字段数目(指的是查询结果中的字段数目)
f_value:    包含每个字段值的指针数组
f_name:    包含每个字段名称的指针数组
返回值:    成功返回0,失败返回-1
1)打开或创建一个数据库
2)数据库操作(查插删改)
3)关闭数据库close

嵌入式软件开发培训笔记——Linux下SQLite3数据库编程相关推荐

  1. linux下SQLite3数据库

    目录 一.SQLite3的安装 二.数据库的创建和打开 三.数据库的常见命令 三.SQL语句 1.创建数据库表 2.插入记录 3.查询记录 4.更新记录 5.删除记录 6.删除数据库表 四. SQLI ...

  2. linux中c语言开发实验报告,Linux下C语言编程实验报告.doc

    第五章: Linux下的C语言编程 姓名: 学号:520913080429 专业:信息安全09-04 实验内容: 1.c语言编程 2.vi编辑器 3.gcc编辑器 4.gdb编辑器 5. gdb中运行 ...

  3. 嵌入式软件开发培训笔记——ARM架构Linux系统下交叉编译环境搭建、NFS、TFTP服务配置及Nandflash的读写

    bootloader原理和开发-->kernel构建-->文件系统/根文件系统(filesystem/rootfs) APP 一.配置交叉编译环境(可参考嵌入式Linux移植与驱动开发co ...

  4. 嵌入式软件开发培训笔记——boot原理与u-boot 基于Cortex_A8核的S5PC100芯片

    一.boot原理 1.解决系统启动 (参考s5pc100手册 --->  2.1节 irom code) The boot loader is divided into the BL0(1st ...

  5. 嵌入式软件开发培训笔记——c编程基础

    参考书籍:大学电子或计算机专业C程序设计教程. 编译环境:linux操作系统下的gnu-gcc 完成c经典100题编写(题目在网上随处都能搜到) 一个很好的segment error检查方法 例程文件 ...

  6. 嵌入式软件开发培训笔记——Java第二天(运算符、程序结构、数组与继承)

    一.运算符 分割符:,.:.[].() 算术运算符:+.-.*./.%.++.-- 关系运算符:>.<.>=.<=.==.!= 布尔逻辑运算符:!.&.|.^.& ...

  7. 嵌入式软件开发培训笔记——java第五天(API——math/string/集合/日期时间以及java线程)

    目录 掌握命令行参数的使用 掌握Math类中常用的方法 掌握String/StringBuffer/StringBuilder的用法 掌握几种常用集合类的用法 掌握日期和时间处理 1.命令行参数 Ja ...

  8. 嵌入式软件开发培训笔记——C高级 结构体与共用体

    (1).结构体 基本类型       int.double.char.float.short.long等等 复合类型       数组.结构体 指针类型 空类型 1)定义结构体,不会在内存内给分配空间 ...

  9. 嵌入式软件开发培训笔记——Java第三天(方法重载、对象的构造与初始化过程分析、封装等)

    一.掌握方法重载(Overload)     同一个类中方法名相同时,称为方法的重载(Overload)     特点:1.参数列表不同                     1)参数类型不同   ...

最新文章

  1. wp7 视频下载 资源收集
  2. MFC自定义消息的实现方法
  3. 机器学习经典算法笔记——PCA和梯度上升算法
  4. 数字媒体播放器行业调研报告 - 市场现状分析与发展前景预测
  5. Mac M1安装ffmpeg报错DependencyNotInstalled: Found neither the ffmpeg nor avconv executables.
  6. 开机出现grub rescue
  7. 181231每日一句
  8. java实现控制继电器_单片机控制继电器
  9. Python数据挖掘与分析——泰坦尼克号
  10. Oracle Exadata初探
  11. 周记0053:0054
  12. 微信自动打开外部浏览器下载apk文件
  13. Ubuntu 部署 Flask + WSGI + Nginx 详解
  14. KeyError: ‘Worksheet sheet does not exist.‘
  15. Steam项目推进 (一) ——项目情况简述
  16. Win10打开任务管理器卡死的解决方法
  17. 两个主要问题将决定微信支付成败
  18. 我的世界服务器改无限跳跃,我的世界作弊码大全 再也不怕精英怪物了
  19. 【经验】展会结束后跟进客户最佳方案
  20. 阿里云视频点播vod视频无法播放预览的问题

热门文章

  1. ajax下拉框二级联动 php,关于thinkphp 与 ajax 实现二级联动下拉列表
  2. Microsoft SQL Server 2005
  3. Linux + .net core 开发升讯威在线客服系统:首个经过实际验证的高性能版本
  4. 我的创业日记(序)——人生在于一种体验
  5. python怎么识别图片上的字_python如何识别图片中的文字 | 蒲公英网
  6. Zelix KlassMaster(ZKM) java代码混淆软件使用指南
  7. 高斯模糊-原理类似近视眼
  8. 雷达技术与仿真实现(二)
  9. 梳状滤波器CIC整理
  10. 设置DirectShow开发的编译环境