通过这篇文章,认识什么mysql数据库。
目录
一、安装
二、登录
1、找到mysql所在目录
2、进入目录,打开mysql
3、登录选项h u p P
编辑
4、退出mysql
三、什么是数据库?
1、如何理解数据库和表?
2、为什么有数据库?
3、什么是数据库文件?表?
(1)建立数据库:
(2)在数据库下建立表
(3)服务器、数据库、表之间的关系
(4)数据存储逻辑
(5)SQL分类
1. 数据查询语言(DQL)
2. 数据定义语言(DDL)
3. 数据操作语言(DML)
4. 数据控制语言(DCL)
5. 事务控制语言(TCL)
一、安装
Linux-ubantu系统安装:
在Ubuntu 22.04 LTS 上安装 MySQL两种方式:在线方式和离线方式_ubuntu离线安装mysql-****博客
Linux-centos系统安装:
【MySQL】在 Centos7 环境安装 MySQL -- 详细完整教程_centos7安装mysql教程-****博客
windows系统安装:
Windows安装mysql详细步骤(通俗易懂,简单上手)-****博客
二、登录
登录完整命令:
mysql -u [用户名] -h [主机ip地址] -P [端口号] -p
示例:
mysql -u root -h 192.168.1.100 -P 3306 -p
1、找到mysql所在目录
which mysql
2、进入目录,打开mysql
mysql -u root -p #默认端口、默认当前主机登录
3、登录选项h u p P
选项 | 描述 | 示例 |
---|---|---|
-h |
指定要连接的 MySQL 服务器的主机名或 IP 地址。 | mysql -h localhost |
-P |
指定 MySQL 服务器的端口(默认为 3306)。 | mysql -P 3307 |
-u |
指定连接 MySQL 的用户名。 | mysql -u username |
-p |
提示输入密码。此选项后面不应直接跟密码。 |
mysql -p (输入密码后按回车) |
mysql> show global variables like 'port';#查看端口号
4、退出mysql
quit
三、什么是数据库?
1、如何理解数据库和表?
mysql本质上是一个基于C(mysql)S(mysqld)的网络服务
mysql是数据库服务的客户端
mysqld是数据库服务的服务端
mysql是一套给我们提供数据存期的服务的网络程序
数据库一般指,在磁盘或者内存存储的特定结构组织的数据-在磁盘中存储的一套数据组织方案
2、为什么有数据库?
已经有了文件系统,可以存储数据,那为什么还要有数据库呢?
因为一般的文件确实提供数据的存储功能
但是文件并没有提供非常好的数据管理能力(用户角度)
例如说:文件中有10亿行的数据,
我现在要将其中创建时间为2020年9月9日之前的数据全部陈列出来
怎么做?
如果是文件系统
没有办法
程序员只能用c / c++等语言来打开文件
然后用代码来处理实现逻辑
这是查询,要写代码
同时:
修改某数据,写代码
删除某数据,写代码
增加某数据,写代码
因此,从用户(程序员)的角度讲
增删查改都需要我们自己写代码去处理
方便吗?很不方便
因此,使用文件存储数据,有以下几个缺点:
1、所有人都可以访问文件,文件不安全
2、文件不利于数据的查询和管理
3、文件不利于存储海量数据
4、文件的管理需要使用程序控制,极不方便
于是,就有人设计出了一个东西,就叫做数据库
现在我的数据不存在文件系统里
而是以某种特殊的结构 存在数据库里
其实”数据库文件“也是文件,也是要存在磁盘中,只是相关协议同传统文件不同而已
当数据存储在数据库中时,
此时,比如说,还是之前的要求:
我现在要将其中创建时间为2020年9月9日之前的数据全部陈列出来
我直接将这个要求给到数据库服务程序,数据库在后台对我的要求进行分析,处理,而后返回结果
这就极大的方便了用户对数据的管理
因此,
数据库本质,是对数据内容存储的一套解决方案,你给要求,我给结果
3、什么是数据库文件?表?
在理解之前,先见一见,现实中的数据库文件长什么样子:
查看数据库命令:
show databases;
一般数据库默认存储的目录:/var/lib/MySQL
(1)建立数据库:
例如建立一个简单的helloworld数据库:
create database helloworld;
然后我们再次查看数据库文件:
会发现多了一个数据库,
show databases;
这个数据库是什么?
我们查看/var/lib/MySQL目录下,你会发现多了一个helloworld的目录
因此,建立数据库,本质上就是在Linux下建立一个目录
(2)在数据库下建立表
例如我们建立一个学生表
create table student(
name varchar(32),
age int,
gender varchar(2)
) ;
建立完毕后,我们去查看对应数据库目录下的文件
cd /var/lib/mysql
你会发现,多了两个后缀分别为 .ibd .frm 的文件
因此,在数据库下建立表的本质就是在Linux下创建文件
然后我们再插入一个简单的数据:
insert into student (name, age, gender) values ( '张三' , 20, '男');
查询:
select * from student;
因此,看了上述的现象
我们可以做出以下总结:
一个数据库,就是一个目录;表,就是数据库文件下的文件
我们给出对应的指令,相关的创建、和底层的数据结构是由后台的数据库服务提供的
因此,本质上,数据库就是一个网络服务
(3)服务器、数据库、表之间的关系
mysql是网络服务
那么,服务器、数据库、表之间的关系是什么?
下面一张图就解释了他们之间的关系:
左边的Client客户端,其实就是我们客户自己使用的
类似抖音客户端和后台服务器的关系
(4)数据存储逻辑
展示给用户的,是以行和列的形式组织表现,仅仅只是一种显示。
(5)SQL分类
SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库的标准语言。
SQL可以分为几个主要的类别,具体如下:
分类 | 描述 | 示例 |
---|---|---|
DDL | 数据定义语言(Data Definition Language),用于定义数据库对象。 | - CREATE TABLE :创建新表<br>- ALTER TABLE :修改现有表<br>- DROP TABLE :删除表 |
DML | 数据操纵语言(Data Manipulation Language),用于操作数据。 | - SELECT :查询数据<br>- INSERT :插入数据<br>- UPDATE :更新数据<br>- DELETE :删除数据 |
DCL | 数据控制语言(Data Control Language),用于控制访问权限。 | - GRANT :授予权限<br>- REVOKE :撤回权限 |
TCL | 事务控制语言(Transaction Control Language),用于管理事务。 | - COMMIT :提交事务<br>- ROLLBACK :回滚事务<br>- SAVEPOINT :设置事务的保存点 |
DQL | 数据查询语言(Data Query Language),用于查询数据库中的数据。 | - SELECT :查询数据 |
1. 数据查询语言(DQL)
功能:用于查询数据库中的数据。
主要命令:
SELECT: 从一个或多个表中检索数据。
SELECT * FROM employees WHERE department = 'Sales';
2. 数据定义语言(DDL)
功能:用于定义数据库的结构,包括创建、修改和删除数据库对象(如表、索引等)。
主要命令:
CREATE: 创建新的数据库对象。
ALTER: 修改现有的数据库对象。
DROP: 删除数据库对象。
3. 数据操作语言(DML)
功能:用于操作数据库中的数据,包括插入、更新和删除数据。
主要命令:
INSERT: 向表中插入新数据。
UPDATE: 更新表中现有数据。
DELETE: 删除表中的数据。
4. 数据控制语言(DCL)
功能:用于控制对数据库的访问权限。
主要命令:
GRANT: 授予用户访问权限。
REVOKE: 撤销用户的访问权限。
5. 事务控制语言(TCL)
功能:用于管理数据库事务,包括提交和回滚事务。
主要命令:
COMMIT: 提交当前事务的所有操作。
ROLLBACK: 回滚当前事务中的所有操作。