L10数据库——数据库介绍

数据库介绍

引题

为什么使用数据库
之前的学习中我们已经可以存储数据、变量、读写本地文件(txt、CSV)。

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

数据库基本概念

观察表格、Excel表格,打开 学生列表。xls excel表格文档。类比引入数据库概念

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

常见数据库介绍

关系型数据库:
1. sqlite:轻量级数据库。功能基础简单,在数据较少情况下性能并不比重型数据库底,优点,Python解释器内置驱动,无需安装直接使用,适合初学数据库。手机应用使用的就是sqlite数据库
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)型数据库
7.mongodb : 存储单位是文档,son(类似后端dict)结构整个存进去,数据常放在内存中以获得查询性能,定期把数据持久化到硬盘上
8.redis : 键值对 “name”="小明"类似与这样’

数据库字段类型

数据库:
数据库创建表示要事先告诉计算机硬盘,每张表的每个字段存什么类型、将要存储的内容大还是小,我们需要选择合适的类型和长度,长度过小,内容值存不进去,长度太大,浪费硬盘空间,我们需要选择合适的类型和长度。
各数据库字段类型关键字基本一致,常用字段类型如下:
1.数值
整数:常用INT INTEGER 占四个字节,2**32,可以表示常用范围整数。
其他 TINYINT(1个字节) SMALLINT(2个字节) MEDIUMINT(3个字节)
BIGINT(8个字节)适用于身份证号、VIP号码比较长的编号。
2.浮点数
(常用)FLOAT(4字节) 单精度小数。 即使是单精度,范围也不小
DOUBLE(8字节) 双精度小数
场景:金钱计算,轨道计算。
3.字符串
CHAP 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-22-08"
DATETIME 日期时间 “2018-22-08 16:52:30.123” “2018-22-08 16:52:30.123 CTM+8”
TIMESTAMP 时间戳 1541667270 1541667270.7252207

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

(SQL)

structured query language 结构化查询语言。专门对数据库进行查找、增加、修改、删除、统计的操作语言。
CURD 增删改查 select update retrieve delete。
书写风格,大小写都行,建议大写,表明大小写都行,但是在一些数据库中不区分大小写,建议小写

(重要)基本语法。
1.查找

SELECT 字段1,字段2,字段3…FROM 表明; Python中返回值形如[(1,502班,小明,男),(),()]。
字段比较多时简写为 SELECT * FROM 表明; 由于数据库执行时会把*转换为字段再执行,性能极微小下降。
SELECT * FROM 表名 WHERE 字段1 = 过滤值,字典2 = 过滤值; where限定条件查找

2.添加
INSERT 字段1,字段2… INTO 表名 VALUES (1,“小明”.“男”);
简写:INSERT INTO 表名 VALUES (1,“小明”.“男”);

3.修改
UPDATE 表名 SET 字段1=新值,字段2=新值 WHERE 字段1 = 要修改的那一行那一个字段的值;
注意没有where条件限定行的话将会更新整张表。

4.删除
DELETE FROM 表名; 注意会删除整张表的所有行。
DELETE FROM 表名 WHERE 字段1 = 值; 限定条件删除某些行

5.创建表
CREATE 表名 {
字段类型 字段名 其他关键字(主键 备注),
INT id PRIMARY KEY,
VARCHAR(20) username ,
}

进阶语法:
分组group by、统计、聚合having max avg, 爬虫中后期讲这些
(课下)存储过程:数据库脚本,类似后端语言,有变量、控制语句、函数等。适合书写复杂SQL语句,效率比较高的,效率较高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值