数据(Data)

数据是什么,linux万物皆文件,大数据时代万物皆数据(狗头保命),你今天吃得啥、几点刷淘宝、买了啥、在那买的、经常看什么类型的xx、离婚多少次、传票有没有、这些都可以是数据。
通俗一点,每个月 的工资数、银行卡号、姓名都是数据,或者游戏点卡、游戏等级、符文等等。

数据库(DataBase)

通俗的说:存储数据的仓库。方便进行数据的存储、更新、查询等。
大一刚学C要做控制台的图书管理系统、通讯录基本用结构体把这些数据存储到txt文件吧,存取的方法都是自己写的,数据类型多起来的时候、数据量大的时候自己手写函数存取就显得戳不及防了,于是想着能不能把这些数据存储的方法函数写好、以后要进行数据存储就可以直接cv了,这就是数据库管理系统(DBMS, Database Manage System)的由来。

分类

关系型数据库

SQL( Structured Query Language):结构化查询语言
代表:MySql、MariaDB、SQL Server、Oracle、SQLite、Access、PostgreSQL
通俗的说就是一张张填着数据的表格(TABLE)

MySql && MariaDB

Mysql由瑞典 MySQL AB 公司开发,后来被 Oracle 公司收购了,社区看着不妙有被闭缘的风险就从mysql迁出一个分支-MariaDB。所性数据库课程查了些现在用的比较多的数据库,就选择了mariaDB,后来数据库的新老师用mysql的时候大家惊呆了(前一个老师教sql server)。而且主要在服务器上用的比较多都是mysql,后面大作业的时候干脆整了个服务器-.-就是辣么自信,数数也整了不下一个手掌的服务器了。。
下载MairaDB去国内清华镜像下载快的一匹。

SQL Server && Access

windows家的玩意,说实话不喜欢,前者安装能写好多文章,后者Office大法。之接触过前者一阵子,为了写文章(做实验)怎么安装这玩意,说实话依赖的东西太多,当时把班上不少人整得那是一个可乐kb。

SQLite

起初是为了嵌入式开发的关系型数据库,十分轻便(lite),甚至你都不需要安装它,后来便成为了少量数据和演示数据库的优先选择。比如python flask。。。
没有用户管理,便于开发测试

非关系型数据库

NoSQL( Not Only SQL)
代表:MongoDB、Redis、Memcached、 Cassandra
在速度和扩展性上有很大优势。又可细分为文档存储(MongoDB)、键值对存储(Redis)、列存储、图存储等。

MongoDB

使用类似json格式的bson存储数据

Redis

B站上经常看到渗透获取Redis权限…

如何选择

Flask Web开发实战- 李辉
两者并不是对立的,我们需要根据使用场景选择适合的数据库类型。大型项目通常会同时需要多种数据库,比如使用MySQL作为主数据库存储用户资料和文章,使用Redis(键值对型数据库)缓存数据,使用MongoDB(文档型数据库)存储实时消息。

u1s1,没见过世面的就是我吧。。。。。

SQL注入

数据库安全必然设计的问题之一。。。使用ORM、参数验证、格式化啥的。