主要学MySQL的三大部分:
1. SQL语句
2. MySQL的原理/面试题
3. 用Java代码操作MySQL
1. 数据库是什么?
数据库是管理数据(增删改查)的软件
1.1 数据库有以下几种含义:
* 一门学科
* 一类管理数据的软件
* 一个具体的数据库软件,如mysql等
* 一台部署了某个数据库软件的主机(电脑)
2. 有哪些数据库软件?
按组织数据方式的不同来划分数据库软件,分为两类:
关系型数据库:用“表”这种结构来组织数据-->格式较固定
非关系型数据库:用“文档/键值对”这样的结构来组织数据-->格式较灵活
关系型数据库:
* Oracle
* 需付费,很多公司并不用
* Oracle数据库的使用必须搭配IBM小型机
* MySQL
* 开源且免费,较多公司都在使用
* SQLServer
* 很少公司用
* SQLite
* 运行速度快,占用内存小(1M左右)
* 经常用于嵌入式设备,如嵌入式开发的冰箱,洗衣机等智能家电等,其内部也要包含计算机,甚至安卓手机也内置了sqlite
非关系型数据库:redis等
3. MySQL的安装
3.1 前置知识:
mysql是一个“客户端—服务器”结构的软件
* 客户端:主动发起请求的一方,称为请求(request)
* 服务器:被动接收请求的一方,称为响应(response)
客户端和服务器之间通过网络进行通信,服务器是等待的一方。由于不知道客户端何时会发起请求,所以服务器是全年无休工作。
大部分服务器是为多个客户端提供服务的,但也有服务器是单独为某个客户端提供服务的,如分布式系统中的机器也需要进行网络通信,那么每台机器之间就互为服务器或客户端。
3.2 关于安装:
安装MySQL是把MySQL的服务器和客户端都安装在自己电脑上,MySQL的本体是服务器,在服务器内存储和管理数据(此处说的存储是存储在硬盘上)
1. 由于数据库存储的数据量较大,也需要持久化存储,所以使用硬盘。而Redis使用的是内存,追求速度
2. MySQL下载5系列的,一般企业也不会用最新的版本(新版本会有很多未发现的bug)
4. 番外小知识:
1. 关于Oracle:
虽然许多公司因为Oracle贵而放弃使用,但有些公司依旧需要用,如银行,因为需要保存的数据是人民的余额
2. 关于分布式系统:
所谓分布式,是指数据过于庞大,一台机器处理不过来,所以用多台机器进行分担,这就是分布式
3. 关于内存和硬盘:
* 现在市面上说的电脑内存是指硬盘,而真正的内存是“运存”
* 内存和硬盘的区别:
* 内存速度快,硬盘速度慢
* 内存空间小,硬盘空间大
* 内存贵,硬盘便宜
* 内存中存储的数据在程序重启,断电后就会消失,而硬盘是相对较持久的(硬盘不能永久保存数据,比如放个一百年,内部数据也会损坏)