初识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语法!

(0)

相关推荐

  • Python SQLite3数据库操作类分享

    接触Python时间也不是很长的,最近有个项目需要分析数据,于是选用Python为编程语言,除了语言特性外主要还是看重Python对于SQLite3数据库良好的支持能力了,因为需要灵活处理大量的中间数据. 刚开始一些模块我还乐此不疲的写SQL语句,后来渐渐厌倦了,回想到以前捣鼓C#的时候利用反射初步构建了个SQL查询构造器,直到发现linq,于是放弃了这个计划,当然微软后来又推出了Entity Framework,这些都是后话了,而且现在我对微软的东西兴趣不是很大的,好了,扯多了,下面继续正文.

  • SQLite3中的日期时间函数使用小结

    复制代码 代码如下: import sqlite3conn = sqlite3.connect('/tmp/sqlite.db')cur = conn.cursor() 接下来干嘛呢?建一张表吧.这里需要注意的是,SQLite不支持在创建表的同时创建索引,所以要分两步走,先创建表然后再创建索引 复制代码 代码如下: create_table_stmt = '''CREATE TABLE IF NOT EXISTS test_table ( id INTEGER PRIMARY KEY AUTOI

  • SQLite3中自增主键相关知识总结

    一.SQLite清空表并将自增列归零 SQL标准中有TRUNCATE TABLE语句,用来清空表的所有内容.但SQLite不支持这个语句.在SQLite中直接使用 DELETE FROM TableName 就可以了.对于大多数DBMS来说,用DELETE不如用TRUNCATE 速度快,因为TRUNCATE 不用访问整个表,不用记录数据的变动. SQLite虽然不支持TRUNCATE,但它对DELETE做了优化:通常在清空表的时候,还需要把自增列归零.在SQLite中定义自增列的方法如下: 复制

  • SQLite3 命令行操作指南

    .help查看帮助信息 .backup ?DB? FILE备份数据库, 方法:.backup [main|...] filename, 数据库名可以通过.databases 命令得到,一般为main, 可以省略, filename为磁盘文件名. .bail ON|OFF遇到错误时不再继续, 默认为OFF .databases列出附加到数据库的数据库和文件 .dump ?TABLE? ...保存表到SQL格式的文件中, 没有指定表名, 则保存所有. 如果要保存到磁盘上需要结合 .output 命令

  • SQLite3 API 编程手册

    前序:... 1一. 版本... 1二. 基本编译... 2三. SQLITE操作入门... 2(1) 基本流程... 2(2) SQL语句操作... 4(3) 操作二进制... 8(4) 事务处理... 10四. 给数据库加密... 10五. 后记... 25 前序:Sqlite3 的确很好用.小巧.速度快.但是因为非微软的产品,帮助文档总觉得不够.这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记. 这里要注明,我是一个跨平台专注者,并不喜欢只用 window

  • sqlite3 top的查询及limit语法介绍

    其实,在sqlite3中没有top的语法结构,但在sqlite3中有相关的语法能实现跟top语法相同的功能,sqlite3 sql是用limit这样的语法来实现的: 如: 复制代码 代码如下: select * from table where name='_安静ゝ' order by id limit 0,10; 这个效果就相当于select top 10 * from table where name='_安静ゝ': 如果还有更精确的: 复制代码 代码如下: select * from ta

  • python操作数据库之sqlite3打开数据库、删除、修改示例

    复制代码 代码如下: #coding=utf-8__auther__ = 'xianbao'import sqlite3# 打开数据库def opendata():        conn = sqlite3.connect("mydb.db")        cur = conn.execute("""create table if not exists tianjia(id integer primary key autoincrement, user

  • 初识SQLITE3数据库

    数据库DataBase,我们都没有接触过数据库,那么数据库是什么? 它是一个有结构的.集成的.可共享的统一管理的数据集合! 所谓有结构的,指的是数据是按一定的模型组织起来的. 简单的说,拿个箱子,用隔板把它隔开,如此箱子被分为许多格子,因而我们像填坑一样把数据放进去!OK,那么就把数据组装起来,有人说不如用结构体?但是不要忘了,箱子还可以分类.储存.这是结构体不能做到的! 所谓集成的,是指数据库中集中存放着企业各种各样的数据. 就如上面我所讲的一样,箱子把零散的数据集结在一起一样! 而且你可以在

  • c++获取sqlite3数据库表中所有字段的方法小结

    常用方法: 1.使用sqlite3_get_table函数 2.获取sqlite创建表的sql语句字符串,然后进行解析获取到相应的字段 3.采用配置文件的方式,将所有字段名写入配置文件 下面针对这三个方法给大家逐一详细介绍. 方法1:使用sqlite3_get_table函数 代码: char *dbname = "test.db"; int rc = sqlite3_open(dbname, &db); if (rc == SQLITE_OK) { char sql[256]

  • thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)

    本文实例讲述了thinkPHP连接sqlite3数据库的简单实现方法.分享给大家供大家参考,具体如下: 首先检查Thinkphp目录下\Lib\Driver\Db目录里有没有DbPdo.class.php 这个文件. 如果没有就去这里下吧:http://www.thinkphp.cn/extend/205.html 然后再确认打开了PHP对sqlite的扩展支持,extension=php_sqlite.dll 连接sqlite3数据库: 在config.php 文件中添加如下配置: 'DB_T

  • Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例

    本文实例讲述了Python实现读写sqlite3数据库并将统计数据写入Excel的方法.分享给大家供大家参考,具体如下: src = 'F:\\log\\mha-041log\\rnd-log-dl.huawei.com\\test' # dst = sys.argv[2] dst = 'F:\\log\\mha-041log\\rnd-log-dl.huawei.com\\test\\mha-041log.db' # dst_anylyzed = sys.argv[3] dst_anylyze

  • Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】

    本文实例讲述了Python开发SQLite3数据库相关操作.分享给大家供大家参考,具体如下: '''SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说 没有独立的维护进程,所有的维护都来自于程序本身. 在python中,使用sqlite3创建数据库的连接,当我们指定的数据库文件不存在的时候 连接对象会自动创建数据库文件:如果数据库文件已经存在,则连接对象不会再创建 数据库文件,而是直接打开该数据库文件. 连接对象可以是硬盘上面的数据库文件,也可以是建立在内存中的,在内存中的数据库

  • Windows平台Python连接sqlite3数据库的方法分析

    本文实例讲述了Windows平台Python连接sqlite3数据库的方法.分享给大家供大家参考,具体如下: 之前没有接触过sqlite数据库,只是听到同事聊起这个. 有一次,手机端同事让我帮着写个sql,后面说运行不了报错了,我问是什么数据库,同事说是sqlite,这才知道了还有sqlite这个数据库... 接下来说说Python连接sqlite数据库,非常简单,因为python中的sqlite模块也遵循了DB-API 2.0的规范,所以操作起来和sql server.MySQL.oracle

  • Python SQLite3数据库日期与时间常见函数用法分析

    本文实例讲述了Python SQLite3数据库日期与时间常见函数.分享给大家供大家参考,具体如下: import sqlite3 #con = sqlite3.connect('example.db') con = sqlite3.connect(":memory:") c = con.cursor() # Create table c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty re

  • 初识通用数据库操作类——前端easyui-datagrid,form(php)

    初识通用数据库操作类--前端easyui-datagrid,form(php),实现代码比较简单,具体实现步骤请看下文. 实现功能: 左端datagrid显示简略信息,右侧显示选中行详细信息,数据库增删改 (1)点击选中行,右侧显示详细信息,其中[新增].[修改].[删除]按钮可用,[保存]按钮禁用 (2)点击[新增]按钮,[修改],[删除]按钮禁用,[保存]按钮启用 (3)点击[修改]按钮,[新增],[删除]按钮禁用 难点:通用数据库操作类中insert方法跟update方法 最终效果图: 前

  • python 获取sqlite3数据库的表名和表字段名的实例

    Python中对sqlite3数据库进行操作时,经常需要用到字段名,然而对于sqlite使用select语句并不能象MySql等数据库一样返回带字段名的字典数据集.特别是对于一个不熟悉的sqlite数据库,写代码时如果需要借助工具查看,那其实是有点对不起python的. 下面两段代码就可以轻易获得一个sqlite数据库中所有数据表名和字段名的列表: # python 获取sqlite3数据库mydb.db中的表名和表字段名 import sqlite3 conn=sqlite3.connect(

随机推荐