初识mysql

通过这篇文章,认识什么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: 回滚当前事务中的所有操作。
 

上一篇:HTB:Base[WriteUP]


下一篇:力扣面试150 汇总区间 双指针 StringBuilder