[MySQL初阶]MySQL数据库基础
MySQL数据库基础
- 1. 数据库基础
-
- 1.1 什么是数据库
- 1.2 主流数据库
- 2. 数据库的基本使用
-
- 2.1 连接服务器
- 2.2 使用案例
- 2.3 数据逻辑存储
- 3. MySQL架构与分类
-
- 3.1 MySQL架构
- 3.2 SQL分类
- 4. 存储引擎
-
- 4.1 存储引擎基本概念
- 4.2 存储引擎基本操作
1. 数据库基础
1.1 什么是数据库
存储数据用文件就可以了,为什么还要弄个数据库?
文件保存数据有以下几个缺点:
文件的安全性问题
文件不利于数据查询和管理
文件不利于存储海量数据
文件在程序中控制不方便
数据库存储介质:
磁盘(MySQL)
内存
为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。
数据库是一整套的数据存储容灾解决方案。是经过系统化组织的结构化数据集合,本质上是由数据库管理系统(DBMS)管理的特殊格式文件集合。这些文件通过高度优化的二进制格式存储,包含数据表、索引、事务日志等核心组件,普通文本编辑器无法直接解析其内容。
数据库有数据库文件(说白了就是磁盘文件,如fopen、open打开文件等操作),数据库服务器,数据库服务端。
数据库客户端:
(或是图形界面的mysql客户端)
数据库服务器:
mysql本质也是个网络服务,mysql服务本质就是网络服务器进程与文件的关系。
1.2 主流数据库
SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
2. 数据库的基本使用
2.1 连接服务器
mysql服务可以跨网络
# mysql -h 代表连谁
# -P 端口号
# 在企业中,MySQL不能暴露在公网上
# MySQL一般会更改一下服务端口
# -u 代表是谁
mysql -h 127.0.0.1 -P 3306 -u root -p # 连本地
mysql > quit # 退出mysql
mysql -uroot -p # 也可以登录上mysql
# 如果没有写-h 127.0.0.1 默认是连接本地
# 如果没有写-P 3306 默认是连接3306端口号
所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
数据库服务器(此处指的mysql软件)、数据库和表的关系如下:
2.2 使用案例
# root下
cd /var/lib/mysql # 默认数据存储目录
在 Linux 系统中,/var/lib/mysql 是 MySQL/MariaDB 数据库的默认数据存储目录,存放着数据库的核心运行数据和系统文件。
创建数据库
create database test;
-a(–all):显示所有文件(包括以 . 开头的隐藏文件)
-l(–long):以长格式显示详细信息(权限、所有者、大小、时间等)
-d(–directory):仅显示目录本身的信息,而非其内容