基本概念
1.库 schema:整个项目
2.表 table:行和列组成。表述一个类每一行描述一个对象。
3.字段 field:类似于班级、姓名、序号等。
4.值 value:表格每一行具体信息储存。
5.主键 primary key:类似于序号。(数据库会自增,不会重复)
6.外键 foreign key:引用另一个表的内容,易于维护,保持数据准确。
7.范式:描述物体时可以吧信息集中或分类。
常见数据库
关系型数据库:
- sqlite:轻量级数据库,功能基础简单。python解释器内置驱动,可直接使用。
- mysql:最流行的的数据库。中型。
3.PostgreSQL:大象数据库,号称最先进的数据库。架构优秀、功能前卫。 - oracle:地位很高的商用数据库。昂贵、稳定、功能强大。常与java配合使用。
- access:微软office套件中包含,轻量。由于数据库门槛,使用者不多。
no-sql(no only aql)型数据库
6.mongodb:存储单位是文档,json结构整个存进去。数据放在内存中可提高查询性能,定期把数据持久化硬盘上。
7.redis:键值对
数据库字段类型
数据库字段类型关键字基本一致:
1.整数:常用INT INTEGER 占4个字节(每个字节2^8)
其它TINYINT(1个字节) SMALLINT(2个字节) MEDIUMINT(3个字节) BIGINT(8个字节)
2.浮点数:FLOAT(4个字节) DOUBLE(8个字节)
3.字符串:CHAR 存储不超过10个字符
常用 VARCHAR 0-65535字节 可变字符串。VARCHAR(5)可存储5个字符
TINYTEXT medium longtext ,应用于大文本文件
BLOB medium longblob ,二进制文件,应用于图片、视频。但一般不在数据库中存储图片和视频,会增加数据库压力。图片视频传到普通文件目录下,数据库中存储文件路径。
4.日期:DATE
DATETIME 日期时间
TIMESTAMP 时间戳
sqlite字段:
INTEGER:整型
REAL: 浮点数
TEXT:字符串
NULL:空
SQL
structured query language 结构化查询语言。对数据库进行查找、增加、修改、删除、统计等操作。
CURD 增删改查 select update retrieve delete。
书写风格:关键字一般大写(大小写都行)。表名一般小写下划线连接。
基本语法:
1.查找
SELECT 字段1,字段2,字段3,… FROM 表名; 返回值[(),(),()]。
字段较多时可简写 SELECT * FROM; 性能轻微下降
SELECT * FROM 表名 WHERE 字段1 = 过滤值,字典2 = 过滤值; where限定条件查找
2.添加
INSERT 字段1,字段2,… INTO 表名 VALUES ();
简写 INSERT INTO 表名 VALUES ();
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语句,效率较高。