目录
一、数据库的基本概念
1. 什么是数据库
2. 主流的数据库
二、基本使用
1. 连接服务器
2. 服务器管理
3. 服务器、数据库、表关系
4. 使用案例
5. 数据库的存储逻辑
三、MySQL架构
四、SQL分类
五、存储引擎
1. 存储引擎
2. 查看存储引擎
3. 存储引擎对比
六、修改MySQL密码
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用-------- 百度百科。
存储数据用文件就可以了,为什么还要弄个数据库?
MySQL客户端 vs MySQL服务器
首先,当你在特定的目录下安装好MySQL之后,会有mysql和mysqld,他们分别是客户端和服务器,从上图可以看出服务的体积是要大一些的。
接下来的MySQL的基本使用,只需要知道如何在命令行登录MySQL服务器即可,一些SQL语句在本篇博客中不会深入讲解,混个脸熟即可。
在命令行中连接MySQL服务器如下:
一般如果你是在学习阶段,用的是本地主机进行连接的话,也可以像下面这种方式进行登录:
当你正确输入密码并回车之后,就会出现如下的提示,表明你已经连接到MySQL啦
此时你就可以输入各种SQL语句让服务器执行了,当要退出mysql时直接输入 quit 或exit 或 \q
停止MySQL服务:执行systemctl stop mysqld 命令 或 service mysqld stop 命令。
启动MySQL服务:执行systemctl start mysqld 命令 或 service mysqld start 命令。
重启MySQL服务:执行systemctl restart mysqld 命令 或 service mysqld restart 命令。
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如下:
- 图中的Client对应的就是mysql命令,MySQL对应的就是mysqld服务。
- DB(database)表示的是mysqld管理的多个数据库,而每一个DB下会包含多张表。
数据存储路径
通过MySQL创建的数据库和各种表结构,最终会以文件的形式存储下来,通过查看MySQL的配置文件中的datadir可以得知数据文件的存储路径。
比如我的MySQL配置文件的路径为/usr/local/myaql/data/data,也就是你在后续创建的数据库以及各种表都是在这个路径下,当然你可以进行修改。
我们可以看看这个目录下都有哪些东西 ,可以看到该目录下有很多MySQL相关的数据文件。
创建数据库:create database hello;
可以看到,在MySQL中执行SQL语句,创建了一个数据库,其实就相当于创建了一个目录,在这个目录下,只有一个名为的db.opt的文件,该文件中指明了当前数据库的默认字符编码和字符校验规则。(需要注意的是,你在查看MySQL所创建的数据库是,最好是切换到超级用户)
删除数据库:drop database hello;
删除数据库,本质就是删除了这个目录
使用数据库:use hello;
显示数据库,就相当于我们在linux下执行ll命令,使用数据库相当于在linux下执行cd命令
创建数据库表
我们用create语句创建一个student表:
通过show语句可以查看创建的student表结构。比如:
由于student表采用的存储引擎是InnoDB,因此在MySQL的数据存储路径下的helloworld目录下,就会多出两个文件,分别是student.frm和student.ibd。如下:
其中student.frm是表结构文件,student.ibd是表数据和索引的文件。
小贴士:InnoDB存储引擎对应的是两个,MyISAM存储引擎对应的是三个
表中插入数据
通过desc语句可以查看对应的表结构:
通过insert语句可以向表中插入数据
查询表中的数据
通过select语句可以查看表中的数据:
表中的数据是以二维表格的形式进行呈现的,包括行和列。如下:
其中每一行我们称之为是一条记录,而每一列都代表一个属性(属性列)。
MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。
由图,可以看出MySQL最上层是连接组件。下面服务器是由连接池、管理工具和服务、SQL接口、解析器、优化器、缓存、存储引擎、文件系统组成。
SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
代表指令: create, drop, alter
代表指令: select
存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
show engines;
其中MySQL底层默认使用的存储引擎是InnoDB,该存储引擎支持事务、行级锁、外键等。
使用set password命令
set password for 你的用户名@localhost = password('你的密码');