1 数据库介绍sqlite3

sqlite3数据库介绍

引题

变量、读取本地文件(txt、csv)这些都可以存储数据。

  1. 持久化。内存中的变量当程序重启和电脑断电时丢失数据,而硬盘可以长时间、持久地存储数据。数据存储到硬盘上的过程叫持久化。
  2. 数据库更加专业强大。远比纯文本文档、excel表格强大,增删改查和统计函数。

数据库基本概念

  1. 库:好像整个表格文档。好像一个物流公司共占地100亩,盖了50个仓库,A01仓库负责存储河南客户货物,A02仓库负责存储广州xx项目物料。每一个仓库对应一个项目。
  2. 表 table: 对应excel表格里sheet1 sheet2。有行内容和列组成。表描述一个类,每一行描述一个对象。
  3. 字段 field: 对应表格头部的 序号、班级、姓名。好像类的属性。字段里存储的值的类型需要事先定义。
  4. 值 value:表格每一行具体存储的信息。
  5. 主键 primary key: 类似表格中 序号 这一列。数据库中这一列会自增并不会重复。
  6. 外键 foreign key:表1学员信息里一个班级字段引用自另一个表班级信息表的id列。优点易于维护,保持数据一致性。
  7. 范式:描述 xx学校时,可以把全部信息字段定义到一张表上,也可以分为学员信息表、班级信息表、课程信息表。划分维度、信息耦合度可高可低,具体结合业务逻辑分析。
    在这里插入图片描述

数据库字段类型

数据库创建表示要事先告诉计算机硬盘,每张表的每个字段存什么类型、将要存储的内容大还是小。长度过小,内容值存不进去,长度太大,浪费硬盘空间。我们需要选择合适的类型和长度。
各数据库字段类型关键字基本一致。常用字段类型如下:

  1. 数值
    整数:常用 INT , INTEGER 占4个字节,2*32,可以表示常用范围整数。
    (不太常用)TINYINT(1字节) SMALLINT(2字节) MEDIUMINT(3字节) BIGINT(8字节) 适用身份证号、VIP号码比较长的编号。
  2. 浮点数
    FLOAT(4字节) 单精度小数。即使是单精度,范围也不小。
    DOUBLE(8字节) 双精度小数。
    场景 金钱计算,轨迹计算。
  3. 字符串
    CHAR , char(10) 可以存储长度(字节长度)不超过10的字符串。例如"hello"。但由于长度按照字节判断,存unicode编码的中文只能存3个。
    常用 VARCHAR 0-65535字节 ,variable char 可变的字符串。VARCHAR(5) 可以存储5个中文或5个英文字母。场景 用户名、家庭住址。

TEXT : TINYTEXT medium longtext,场景 大文本存储,书籍文章、用户反馈。
BLOB medium long ,二进制文件, 场景 图片、视频。 但一般不在数据库中存储图片和视频,因为会增加数据库的计算压力和宽带传输压力和备份还原的难度和用户信息静态资源耦合度到一起,解决方案是 图片视频存到普通文件目录下,数据库中存储文件路径。
4. 日期
DATE 日期, 形如"2018-11-08"
常用 DATETIME 日期时间,“2018-11-08 16:52:30.123” “2018-11-08 16:52:30 GTM+8”
常用 TIMESTAMP 时间戳, 1541667270 1541667270.7252207 1541667270725

sqlite的字段比较简化:
INTEGER : 整数
REAL : 浮点数
TEXT : 字符串
NULL : 什么都不存

常见数据库介绍

关系型数据库:

  1. sqlite:轻量级数据库。功能基础简单,在数据较少情况下性能并不比重型数据库低。优点,Python解释器内置驱动,无需安装直接使用,适合初学数据库。手机应用使用的就是它。
  2. mysql:最流行的的数据库。中型。开源、php流行推动了mysql的流行。
  3. PostgreSQL: 大象数据库,号称最先进的数据库。从大学兴起的开源数据库、架构优秀、功能前卫,数据量很大的时候,性能衰减不明显。消耗相同硬件资源的情况下性能和稳定性优于mysql数据库。django odoo等python框架官方推荐使用此数据库。但是目前市场占有率还不高。
  4. oracle: 地位很高的商用数据库。昂贵、稳定,功能强大,常与java配合使用。
  5. DB2 sybase MSSQL等,其它的商用数据库。
  6. access:微软office套件中包含,轻量,由于数据库门槛,使用者不多。

no-sql(no only sql)型数据库:

  1. mongodb 存储单位是文档,json(类似后端dict)结构整个存进去。数据常放在内存中以获得查询性能,定期把数据持久化到硬盘上。
  2. redis 键值对 “name”=“小明” 。

猜你喜欢

转载自blog.csdn.net/ai_sxy/article/details/84145371
今日推荐