打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Sqlite3小结(小型数据库中增删改查的操作)

一、数据库简介

1、数据库简介

    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

    在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

    数据库的使用需要依赖数据库管理系统(Database Management System,简称DBMS)。数据库管理系统是对数据库中的数据进程同一管理和控制的软件系统。通常情况下,DBMS有以下功能:

    -数据库定义

    -数据库操作

    -数据库运行控制

    -数据通信

    -海量存取数据

    最早期的数据库可以追溯到上世纪五十年代,当时雷明顿兰德公司(Remington Rand Inc)为世界上第一台电子计算机Univac I发明了一种一秒钟可以输入数百条纸带的驱动器,可以看做数据库最早的原型。

    真正意义上第一个数据库程序诞生于1961年。美国通用电气公司Bachman等人在1961年开发了IDS(Integrated Data Store)。后来在1964年通用电气公司(General ElectricCo.)的Charles Bachman 成功地开发出世界上第一个网状DBMS也即第一个数据库管理系统——集成数据存储(Integrated Data Store IDS),奠定了网状数据库的基础,并在当时得到了广泛的发行和应用。

2、常见数据库简介

目前比较流行的数据库有以下几种:

    1.大型数据库Oracle Database

    Oracle公司(甲骨文公司)是全球最大的企业级软件公司,其公司旗下著名产品有Java编程语言与OracleDatabase。Oracle公司主要面向大型企业,为各大企业提供专业级的数据库解决方案。

    2.办公用数据库Microsoft Access

    Access是微软在Office办公套件内提供的数据库软件,具有数据库引擎和图形化交互界面,并且可以使用VBA编程环境对其进行深度编程操作。

    3.小型数据库MySQL

    由瑞典MySQLAB公司开发(该公司已被Oracle公司收购),经常应用于WEB前端领域。由于体积小、速度快、代码开源深受程序开发人员喜爱。还可以配合PHP和Apache搭建数据库服务器。

    4.嵌入式数据库SQLite

    SQLite数据库是专门针对嵌入式开发的数据库软件,占用资源非常少(仅需几百K内存即可),处理速度快,而且可以直接使用C语言编程,同时也可以配合C#、PHP、Java等其他语言。SQLite诞生于2000年,2015年发布了新版本SQLite3,一经推出马上变成了最流行的嵌入式数据库软件。

//SQL中文翻译为“结构化查询语言”,是单词"Structured Query Language"的缩写。SQL是一种操作数据库的高级的非过程化编程语言,用户使用SQL命令通过DBMS对数据库内的数据进行访问。1987年,SQL得到国际标准组织ISO的支持成为数据库的国际标准,不过各种数据库的SQL命令略有不同,因此并不能够完全通用。

//SQL到底应该读作"S-Q-L"三个字母还是读作"色Q尔"整体读音,这个争    论时至今日仍没有定论

二、SQLite3数据库使用

//使用SQLite3需要安装,若当前主机没有SQLite3软件可以输入命令sudo apt-get install sqlite3安装

使用SQLite3数据库有两种方式:

    1.手动创建

    直接在terminal内输入sqlite即可进入SQLite3数据库软件,通过手动输入SQL命令行完成数据库的创建。

    2.代码创建

    由于SQLite3是基于C语言进行编程,因此可以直接在C语言代码中以函数调用和传参的形式操作数据库。在程序运行中,当需要操作数据库时,应用程序会打开数据库,若此时数据库不存在则会创建一个数据库(类似"w"模式打开文件)。注意使用过数据库编程后需要关闭。

1、SQLite3创建数据库

在terminal输入

    sqlite3 mydb.db

创建一个本地的数据库文件mydb.db

当成功创建数据库后,会出现以下提示信息:

    SQLite version 3.7.9 2011-11-01 00:52:41

    Enter ".help" for instructions

    Enter SQL statements terminated with a ";"

    sqlite>

其中"sqlite>"相当于terminal的命令提示符,在后面输入数据库操作命令

如果想退出数据库,则可以使用命令

    .quit(简写为.q)

或者

    .exit(简写为.e)

退出数据库。

2、创建表和删除表

数据库创建完毕后,还需要创建表来存储数据。输入命令

    create table table_name(column1 datatype PRIMARY KEY, column2 datatype, ……);//注意命令后的分号

创建一张表

//PRIMARY KEY表示该列为该表的“主关键字”,主关键字用于唯一索引表内的某一条记录,主关键字必须唯一且主关键字的列值不能为空

//一张表允许省略主关键字

创建表时注意每一列需要指定数据类型。SQLite的数据类型

输入命令

    .tables

查看创建表是否成功。

如果想获取表格的格式信息,则可以输入命令

    .schema

查看表格中列的完整信息。

如果想删除某表,则可以输入命令

    drop table table_name;

来删除一张表。

//SQLite语句与子句用法

3、向表中插入数据——insert语句

在创建了一张表之后,我们就可以向表中插入数据了。输入命令

    insert into table_name values(value1,value2……);

向指定名称的表中插入一个记录。

4、设定操作数据条件——where子句

在SQLite语句中,where子句用于设定筛选条件,如果给定的条件为真则从表中获取该记录。

where子句还可以搭配AND和OR运算符连接条件。其中:

    AND表示“与”,使用AND连接的所有条件必须都为真,整个条件才为真

    OR表示“或”,使用OR连接的所有条件只要有其中一条为真,则整个条件为真

where子句通常与select语句、update语句和delete语句搭配使用,具体见下面语句的操作。

5、删除表中的数据——delete语句

我们可以使用delete语句将表内的一个记录删除。输入命令

    delete from table_name where condition;

其中删除记录需要在where后输入附加条件,如果有多个条件,则可以使用AND/OR连接条件。例如:

    delete from student where number = 10102;

表示从表student中删除number等于10102的记录。

    delete from student where score < 60 AND sex = 'nan';

表示从表student中删除score小于60并且sex为nan的记录。

如果想删除某表内所有记录,则可以输入命令

    delete from table_name;

6、修改表内记录——update语句

如果想修改表内某个记录的某个或某几个列的值,则可以输入命令

    update table_name set column1 = value1, column2 = value2…… where condition;

其中修改记录需要在where后输入附加条件,如果有多个条件,则可以使用AND/OR连接条件。

7、查询表内记录——select语句

使用select语句可以输出一个表内指定的列信息,然后使用where子句确定筛选条件。

    select column1,column2…… from table_name where condition;

如果想输出表内所有列,则可以将column指定为*

    select * from table_name;//输出表内所有列的信息

/*为了输出美观,可以在执行select语句输出表内信息之前使用

    .header on

    .mode column

设定输出格式*/

除此之外,select语句还可以搭配一些SQLite功能函数使用,常用的有:

    count(*)        统计表内行数(记录数)    sqlite> select count(*) from stu;

    max(column)        计算该列的最大值        columen 是一列的名字

    min(column)        计算该列的最小值

    avg(column)        计算该列的平均值

    sum(column)        计算该列的总和

    upper(column)    输出选中的列的所有字符串的全大写字母

    lower(column)    输出选中的列的所有字符串的全小写字母

    length(column)    计算该列的所有字符串的长度

将这些函数放在select语句内可以完成一些计算工作。例如输入命令

    select sum(score) from student;

可以求出表student内所有学生的成绩总和。

8、模糊查询——like子句

除了使用where子句设定筛选条件外,我们还可以使用like子句模糊匹配表内的记录。like语句搭配两个通配符一起使用:

    百分号%    表示零个、一个或多个数字或字符

    下划线_    表示一个数字或字符

如果某条记录内的某一列能与like后的条件匹配,则该记录被选定。例如:

    select * from student where name like %l%;//从表student中选取名字内带字母l的所有记录

练习:使用SQLite3创建数据库,建立一个简易的图书管理系统。

数据库内包括三张表:

    1.图书基本信息数据表。列:图书编号、图书名称、出版社、作者、出版日期……

    2.办理借阅卡的学生表。列:借阅卡编号、学生学号、学生姓名、所在班……

    3.学生借阅图书表。列:借阅卡编号、学生编号、图书编号、借阅日期、借阅时间、是否归还……

在三张表内添加适当记录,并进行以下操作:

    1.查询指定出版社的所有图书

    2.查询指定作者的所有图书

    3.查询指定学号的学生的借阅卡信息

    4.查询指定学号的学生的图书借阅信息

    5.查询所有未归还图书

    6.若某图书被借阅,在借阅图书表内记录借阅信息

    7.若某图书被归还,删除该图书在借阅图书表内记录

三、SQLite数据库与C语言编程应用

1、sqlite编程步骤

    除了在SQLite3的终端界面操作数据库之外,SQLite3另一个特点就是可以直接作用于多种编程语言的代码内(例如C/C++、Java、PHP、Python等语言)。当这些编程语言需要数据库时,直接调用SQLite3预留给该编程语言的接口函数即可实现该数据库的操作或得到数据记录。

以C语言为例,在C语言代码内操作SQLite3数据库类似于文件IO操作,具体步骤如下:

    1.打开数据库sqlite3_open()

    2.使用函数sqlite3_exec()或其他非回调函数形式操作数据库

    3.关闭数据库sqlite3_close()

如果在C语言代码中操作SQLite3数据库,需要在程序开头添加头文件

    #include<sqlite3.h> 

并且在编译时需要添加额外的库

    gcc * -lsqlite3

注意:sqlite3库并非Linux系统自带C语言函数库,因此在编译时可能会提示缺少该库。若缺少该库,可以输入命令

    sudo apt-get install libsqlite3-dev

来安装该库。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SQLite 索引 | w3cschool菜鸟教程
Sqlite—触发器(Trigger)
SQLite的使用
SQLite的SQL语法
Sqlite的Sql语法(三) [转自www.sqlite.com.cn] - 宇鹤敬文的日志 - 网易博客
OracleSQL语言
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服