目录
数据存取演变历史
1.文本文件
文件路径 和 数据格式可能不一样
2.软件开发目录规范
规定了数据文件的存储位置>>>db文件夹, 但是数据格式还是没有完全统一
3.数据库服务
统一了存取位置, 也统一了数据格式
数据库软件应用史
单机游戏时代:
不同计算机上的相同程序, 数据无法共享, 数据库服务全在本地完成
网络游戏时代:
不同计算机上的相同程序, 数据可以共享. 数据库服务单独在网络架设(远程数据库服务)
远程数据库服务: 数据库集群:
1.数据安全性问题
2.服务器负载问题
让多台服务器运行相同的数据库服务
数据库的本质
底层原理角度看数据库:
数据库指的是用于操作数据的进程 [运行在内存中的代码]
现实应用角度看数据库:
数据库指的是拥有操作界面的应用程序 [用于操作进程的界面]
一般情况下我们讲的都是数据库软件
数据库软件本质上也是一款款CS架构的应用程序 >>> 理论上所有的程序员都可以编写
数据库的分类
1.关系型数据库
1.1 数据的组织方式有明确的表结构
id name pwd
关系型数据库存取数据库的方式可以看成是表格
1.2 表与表之间可以建立数据库层面的关系
用户表 房屋表
>>> 只要获取到用户表的一条数据就可以获取到与之相关的其他表数据
关系型数据库有哪些?
MySQL, PostgreSql, MariaDB,Oracle,squlite,db2,sql server
MySQL: 是一款开源型数据库, 使用最为广泛,
PostgreSQL: 开源型数据库, 支持二次开发
MariaDB: 开源型数据库, 与MySQL是同一个作者, 用法也极其相似
Oracle: 收费软件, 安全性极高, 主要用于银行及各大重要机构
sqlite: 小型数据库, 主要用于本地测试 , django框架自带该数据库
2. 非关系型数据库
2.1 数据的组织方式没有明确的表结构, 是以K:V键值对的形式组织的
{'name':'lili'} {'username':'kevin','pwd':123}
2.2 数据之间无法直接建立数据库层面的关系
非关系型数据库有哪些?
redis, mongoDB,memcache
redis: 目前最火,使用频率最高的缓存型数据库
mongoDB: 稳定性数据库, 最像关系型的非关系型数据库, 用于爬虫, 大数据
Memcache : 已经被redis淘汰
MySQL简介
1. 版本问题;
5.6x是之前使用频率最高的版本
5.7x是尝试迁移的版本
8.0x是最新版本, 本地用得较多, 线上环境几乎不用
""" 操作几乎没有区别, 主要体现在底层运作上不一样"""
2. 下载与安装
详情参见: MySQL 安装使用 - Yietong - 博客园
基本使用
1. 先启动服务端
可能会报错, 拷贝关键信息去百度
2.查找MySQL文件位置
mysql cmd窗口就是服务端, 不要关闭
3.再次开启新的cmd窗口
mysql 直接回车会议游客模式进入, 功能较少
4. 用户名密码登录
mysql -u 用户名 -p 密码
>>>>mysql默认管理员账户 用户名是root, 密码是空
5. 退出
exit / quit
系统服务制作
1. 添加环境变量
环境变量的添加方式参见:python,pycharm 的环境变量设置_Yietong309的博客-CSDN博客_pycharm环境变量配置
2. 将mysql服务端制作成系统服务(开机自启动)
2.1 以管理员身份打开cmd窗口
2.2 执行系统服务命令 >>> mysql -- install
2.3 启动服务端
2.3.1 右键直接点启动
2.3.2 命令启动 >>> net start mysql
查看系统服务的命令 >>> services.msc
关闭mysql服务端 >>>> net stop mysql
移除系统服务 >>>> 1. 先确保服务已经关闭 2. 执行移除命令 >>> mysqld -- remove
密码相关操作
1.修改密码
mysqladmin命令
通用方式; 直接在cmd中写 >>> mysqladmin -u用户名 -p原密码 password 新密码
第一次修改 >>> mysqladmin -u root -p password 123
第二次修改 >>> mysqladmin -u root -p123 password 321
偏门方式(有些版本无法使用): # 需要先登录
set password=PASSWORD(新密码);
2. 忘记密码:
直接重装/拷贝对应文件, 先关闭服务端, 然后以不用校验用户身份的方式启动, 进行修改 最后安装正常的方式启动
2.1 net stop mysql
2.2 mysqld -- skip-grant-tables
2.3 mysql -uroot -p
2.4 update mysql.user set password = password(123) where Host= 'localhost' and User = 'root';
2.5 net stop mysql
2.6 net start mysql
SQL与NoSQL
数据库的服务端支持各种语言充当客户端
以MySQL服务端为例
MySQL客户端,python代码编写的客户端,Java代码编写的客户端
为了能够兼容所有类型的客户端, 有两种策略
1. 服务端兼容 >>>> 不合理, 这种方式比较消耗数据库服务端资源
2. 指定统一标准 >> SOL语句 , NoSQL语句
SQL 语句是操作关系型数据库的语法 >>>> 有时候也用来表示关系型数据库
NoSQL语句是操做非关系型数据库的语法 >>>> 有时候也用来表示非关系型数据库
数据库的概念
为了方便理解, 我们为数据库和文件做了一个对应关系
库>>>> 文件夹
表>>>> 文件夹里的文件
记录>>>> 文件里的一行行数据