一、数据库在开发中的地位
python基础是后端程序的开发,主要负责数据的处理(增删改查)
使用文件存储,利用python跟文件交互的弊端:
① 结果不好看,需要在控制台,使用终端控制
② 文件的处理非常繁琐
数据库的优势:
通过一些语法规则来从数据库种获取想要的数据,或者想要做的操作
① 程序稳定性
② 数据一致性
③ 并发
④ 效率
开发的架构:python + 数据库(数据处理) + 文件(记录日志)
单点、并发需求容易导致服务不安全,未来的服务架构:
客户端-->负载均衡-->nginx-->python代码服务器-->数据库
IP和域名的关系:
域名对应的IP能有很多个。
IP地址作为网站的弊端:不好记,机器到期后的IP更改
二、数据库的概念
① 记录、数据、data
一行信息称为一条记录,每一条的的每个数据都对应一个列
② 表 table
很多信息组成,多条记录组成一张表
一张表类似一个文件
③ 数据库 base
只有一个mysql来管理程序,若程序之间的数据是隔离的,创建多个文件夹分开管理
所谓的数据库中的库就是文件夹,一般情况下一个程序都使用一个库
④ 数据库管理系统 DBMS (MYSQL)
database management system
通过一个软件来管理文件夹、文件和数据
⑤ 数据库服务器
安装数据库的机器,该机器就是数据库服务器
三、关系型数据库和非关系型数据库
关系型数据库:关系型数据库是一条数据包含了一个事物的多条信息,并且信息之间是有关联性的
数据库语言:
mysql:开源的,业界通用,应用广泛
oracle:企业级数据库
sqlite:轻量级数据库
sql server
非关系型数据库:非关系型数据库是k-v结构,类似字典。存储频繁,而且要求效率高、数据之间的关联性不高。
用于消息转发,快速收发信息
数据库语言:
memcache
radis:不仅支持k-v结构,还支持其他的
mongoDB:比radis轻量级,一般用于爬虫
nosql
四、数据库安装目录结构(以windows为例)
server端
client 端(需要配置环境变量)
五、centos7 修改mysql默认编码
vi /etc/my.cnf
如下图修改,保存,重启mysql
查看编码
show variables like '%char%';
status;