数据库SQLITE3初识
数据库DataBase,我们都没有接触过数据库,那么数据库是什么?
它是一个有结构的、集成的、可共享的统一管理的数据集合!
所谓有结构的,指的是数据是按一定的模型组织起来的。
简单的说,拿个箱子,用隔板把它隔开,如此箱子被分为许多格子,因而我们像填坑一样把数据放进去!OK,那么就把数据组装起来,有人说不如用结构体?但是不要忘了,箱子还可以分类、储存。这是结构体不能做到的!
所谓集成的,是指数据库中集中存放着企业各种各样的数据。
就如上面我所讲的一样,箱子把零散的数据集结在一起一样!
而且你可以在这个箱子里面把你多余的东西全部清理掉,对吧?
如此集中存放的好处显而易见:
(1)一个数据只需一个备份,重复存储少,即消除了数据的冗余。
(2)没有数据冗余,也就能保证数据的一致。
所谓共享,指的是数据库中的数据可以被不同的用户使用。也就是说,每一个用户可以按自己的要求访问相同的数据库。
所谓统一管理的,指的是数据库由DBMS统一管理,任何数据访问都是通过DBMS来完成的。
共享和统一管理我就不说了,一个箱子当然是可以给其他人用啦,只要你不上锁!
刚才大家又见到了一个新的单词:DBMS
这是个什么东西呢?
其实他的全名为DataBase Management System数据库管理系统
- 是用来管理数据库的一种商品化软件。
- 所有访问数据库的请求都由DBMS来完成的。
- DBMS提供了操作数据库的许多命令(语言),即SQL语言。
官方的解释非常复杂,什么应用层,语言翻译处理、数据存取层等等!好吧,我非常讨厌这样子,于是就有我来给大家缩减地来讲解!
通过上面的图大家有看清是咋么回事吗?多么直白!但有人要问了,咋么管理呢?那就是我们的SQL语句了!当然在linux下绝对不会使用非常大的数据库,因而我们只要掌握一些基本语句就可以了!
SQL语句我将在后面的博客进行相应的归纳!
刚才是说到数据库管理了吧?但是我们还要知道数据库有哪些对不对?
- Oracle 不用我多说,大家基本都听过这个数据库!特点是:支持多语言,极好的并行处理能力,多用于金融,保险等行业
- SQL Server 微软产品,很好的数据库管理系统,最好的应该是现在微软推广云服务,不瞒大家,我在azure上搭建过服务器,用的就是它!集成化极好,虽然我不是很会使用它!
- DB2,这个也是我很少接触过的数据库!仅仅知道它的移植性非常好!
- ACCESS 不多说了,office就有,图形化界面就是操作很简单
- Sqlite3 极小的数据库,等下将是我的主角!
好了,这5个数据库类型已经给大家介绍了!
那么数据库还有一个非常重要的概念:数据模型
其实它就是一个组合:
(1) 数据结构 //类型 数值等
(2) 数据操作 //遍历 删除等
(3) 数据的完整性约束 //一定的关系连接
主要有4大类
- 层次数据模型
- 网状数据模型
- 关系数据模型
- 面向对象数据库模型
我就讲关系数据,因为这个才是重点,至于其他,你想了解可以百度,面向对象的模型貌似最近才刚刚火起,用的不是很多!
总所周知,进入学校,学校会按什么给你定义呢?学号!对,因而学号和你的名字,成绩及其他各类信息存在了关系,找到学号就是找到了你的所有信息,这就是关系模型!
那么它如何保证数据的独立性的呢?那就要看数据库他是如何构造的!
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级组成。但是我并不打算说这个,因为本人也对这个抽象的东西感到一些恐惧,其实在做开发过程中,我们压根就不用去了解他,就算我去面试,如果考官问我,我也会直接告诉他,我不知道,尼玛,我又不是来制造数据库的人!大家不用去纠结于它,我提它就是说知道就行!
还有就是数据库中还存在的候选键,主键什么,不要去管它了,这个等到我们在用sql server的时候再用吧!只要记住一点:学号就是你的主键!唯一标识符!
而我为什么又要选择用sqlite3来作为嵌入式使用的数据库呢?
- 因为它小!体积适合!嵌入式的东西空间是有限的,用它来做数据正好!
- 可移植性高 ,嵌入式 我不多说,必须要有移植性!
- 编程接口简单,简单的编程我就可以用它了!不用它用什么?
- 代码开源,节约成本那是必须的!否则做什么嵌入式啊!
具体优势有哪些呢? 百度一下!
- SQLite的优势
- 内存占用量小
- 事务操作是原子,一致,孤立,并且持久的(ACID),即使在系统崩溃和电源故障之后。
- ACID兼容(原子性,一致性,独立性,可持久性),支持视图,子查询,触发器
- 单个库文件中包含数据库引擎与接口,且其运行不依赖其它库
- 可以将数据放进单个文件
- 为C/C++, PHP等应用提供了接口
- 免费
- 允许为SQL命令集动态添加自定义函数(简单函数及聚集函数),而无需重编SQLite库
- 改进的B-树。对于表采用B+树,大大提高查询效率。
好了,今天我写到这了,好饿,我要去吃饭了!回头我来写sqlite3的安装与sql语法!
数据库SQLITE3初识的更多相关文章
- iOS开发中的4种数据持久化方式【二、数据库 SQLite3、Core Data 的运用】
在上文,我们介绍了ios开发中的其中2种数据持久化方式:属性列表.归档解档.本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运 ...
- 数据库(SQLITE3函数总结): sqlite3_open, sqlite3_exec, slite3_close,sqlite3_prepare_v2,sqlite3_column_text,
Sqlite3 的确非常好用.小巧.速度快.近期研究它,有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记. 导入SQLLite library并引入头文件. libsqlite3.dyl ...
- Linux下用到数据库sqlite3
最近在Linux下用到数据库sqlite3,于是开始了该方面的学习. 0. 引言 我们这篇文章主要讲述了如何在C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理, 包括创建数据库.创建 ...
- beego的orm ,用的数据库sqlite3
测试 beego的orm ,用的数据库sqlite3 1 package main import ( "fmt" "github.com/astaxie/beego/or ...
- 时间序列数据库(TSDB)初识与选择
时间序列数据库(TSDB)初识与选择 本文作者由 MageByte 团队的 「借来方向」编写,关注公众号 给你更多硬核技术 背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词.大数据.人工 ...
- 时间序列数据库(TSDB)初识与选择(InfluxDB、OpenTSDB、Druid、Elasticsearch对比)
背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词.大数据.人工智能.物联网.机器学习.商业智能.智能预警啊等等. 以前的系统,做数据可视化,信息管理,流程控制.现在业务已经不仅仅满足于这 ...
- Android中如何使用命令行查看内嵌数据库SQLite3
转载博客:http://www.linuxidc.com/Linux/2011-06/37135.htm 在上图中,除了最后一个红色的方框,其它方框都是adb shell下的命令. [1]在Andro ...
- Python标准库14 数据库 (sqlite3)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.S ...
- 使用数据库sqlite3 C语言实现登陆注册的功能
//此代码为注册功能 void create_regtable() { int rc; //rc为返回值,判断函数是否执行成功 rc=0函数执行成功,rc !=0函数执行失败 sqlite3 *db; ...
随机推荐
- Ubuntu 12.04 安装最新版本NodeJS
昨天搭建了一个Windows NodeJS 运行环境,但Windows 运行NodeJS命令行各种别扭,开源包的编译也是各种问题,折磨了我一天一夜,果断换到Linux 平台.. 我选择了Ubuntu ...
- Hadoopd 单元测试-MPUnit
Apache 版: 官网:http://mrunit.apache.org 教程:https://cwiki.apache.org/confluence/display/MRUNIT/MRUnit+T ...
- Ubuntu下Jenkins(docker)配置Docker远程启动
背景: 在做用Jenkins构建docker的操作,需要用Jenkins调用docker命令,需要先安装docker-build-step插件,然后开启docker远程访问. 默认情况下,Docker ...
- WPF:MVVM模式下ViewModel关闭View
不外乎两种基本方法. 消息通知和参数传递. 一.消息通知 利用View里的IsEnable属性 原理是这样的: 1.UI中的IsEnabled绑定VM中的属性 2.UI的后台代码中,注册IsEnabl ...
- Cookie客户端缓存.Session.Application
Cookie客户端缓存. 1.引言 随着浏览器的处理能力不断增强,越来越多的网站开始考虑将数据存储在「客户端」,那么久不得不谈本地存储了. 本地存储的好处: 一是避免取回数据前页面一片空白,如果不需要 ...
- C# 收银机顾显(客显)及打印小票(58热敏打印机)
最近做winform收银机,设计顾显及打印小票总结. 1.顾显(串口COM1) 只涉及到总计,所以只是简单的功能. public static ClientDisplayResult Display( ...
- Linux中tail指令详解
linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档 ...
- robot framework学习笔记之三—Scalar变量
一.变量赋值 1)Set赋值 通常使用Set Variable关键字对变量进行赋值,其他Set相关的带Variable的关键字也可以进行赋值 赋值的时候,变量后面写不写『=』都可以,如下: 如果${v ...
- Centos安装Ruby2.2.3
升级软件包版本 (PS:我没有升级,一是太慢了,二是不知道更新完之后是否会影响其他的应用) #升级所有包,改变软件设置和系统设置,系统版本内核都升级 yum -y update #升级所有包,不改变软 ...
- [Objective-C语言教程]基础框架(34)
如果您参考Apple文档,应该会看到Foundation框架的详细信息,如下所示. Foundation框架定义了Objective-C类的基础层. 除了提供一组有用的原始对象类之外,它还引入了几个定 ...