目录

1.登陆选项的认识

2.什么是数据库

3.见一见数据库

1.建立数据库,本质就是Linux下的一个目录

2.在数据库内建立表,本质就是在Linux下创建对应的文件即可!

3.数据库本质其实也是文件!只不过这些文件并不是由程序员直接将操作,而是由数据库服务帮我们进行操作

4.主流数据库

服务器管理

5.服务器数据库表之间的关系

清屏

6.MySQL架构

7.SQL语句分类

8.存储引擎

存储引擎

查看存储引擎

存储引擎对比


1.登陆选项的认识

[root@iZ5waahoxw3q2bZ ~]# mysql -h 127.0.0.1 -P 3306 -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.44 MySQL Community Server (GPL)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit
Bye

 mysql -h 127.0.0.1 -P 3306 -u root -p

  1. mysql:这是 MySQL 的客户端命令,用来连接数据库服务。

  2. -h 127.0.0.1:指定连接的主机 IP127.0.0.1 代表本机(即你现在的阿里云服务器自己)。这明确告诉客户端:“不要去连远程的,就找自己的 MySQL”。

  3. -P 3306:指定端口3306 是 MySQL 的默认端口。

  4. -u root:指定用户名。就是用管理员账号 root 登录。

  5. -p:提示输入密码。你回车后会看到 Enter password:

[root@iZ5waahoxw3q2bZ ~]# mysql -P 3306 -u root -p

默认连接本地搭建的MySQL服务

[root@iZ5waahoxw3q2bZ ~]# mysql -u root -p

去掉-P会默认是3306的端口

1.目前是免密码登陆的,后面必须设置密码
2.密码输入的时候,是不回显的

2.什么是数据库

[root@iZ5waahoxw3q2bZ ~]# ps ajx | grep mysqld
    1   704   703   703 ?           -1 Sl      27   0:33 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
25325  3014  3013 25325 pts/1     3013 S+       0   0:00 grep --color=auto mysqld

[root@iZ5waahoxw3q2bZ ~]# which mysql        #MySQL的客户端
/usr/bin/mysql
[root@iZ5waahoxw3q2bZ ~]# which mysqld      #MySQL的服务端
/usr/sbin/mysqld

1.mysql它是数据库服务的客户端
2.mysqld它是数据库服务的服务器端
3.mysql本质:基于C(mysql) S(mysqld)模式的一种网络服务

[root@iZ5waahoxw3q2bZ ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1149/sshd           
tcp6       0      0 :::3306                 :::*                    LISTEN      704/mysqld 

mysql是一套给我提供数据存取的服务的网络程序

数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据 -- 将来在磁盘上存储的一套数据库文件方案

数据库服务 -- mysqld

                                                                                                                       内容
一般的文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据管理能力(用户角度)

数据库本质:对数据内容存储的一套解决方案,你给我字段或者要求,我(数据库)直接给你结果就行

存储解决方案!

存储数据用文件就可以了,为什么还要弄个数据库?

文件保存数据有以下几个缺点:

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件不利于存储海量数据
  • 文件在程序中控制不方便

数据库存储介质:

  • 磁盘
  • 内存

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。


3.见一见数据库

样例:
使用mysql建立一个数据库建立一张表结构,插入一些数据---对比一下mysql在Linux中是如何表现的

启动

 mysql -uroot -p

数据库

1.建立数据库,本质就是Linux下的一个目录

建立数据库

通过mysql客户端向mysqld服务端下达了一个创建数据库的请求

查看数据库,会发现多了一个helloworld

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| helloworld         |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

同样这边也会多一个helloworld的目录


2.在数据库内建立表,本质就是在Linux下创建对应的文件即可!

选择数据库

mysql> use helloworld;
Database changed

创建表

mysql> create table student(
    -> name varchar(32),
    -> age int,
    -> gender varchar(2)
    -> );
Query OK, 0 rows affected (0.01 sec)

varchar 是 Variable Character(可变长度字符)的缩写。
简单来说,它就是用来存文字、字符串的一种数据类型。

[root@iZ5waahoxw3q2bZ mysql]# cd helloworld
[root@iZ5waahoxw3q2bZ helloworld]# pwd
/var/lib/mysql/helloworld
[root@iZ5waahoxw3q2bZ helloworld]# ls
db.opt  student.frm  student.ibd

多了两个文件student.frm  student.ibd


插入数据

insert into student (name,age,gender) values ('张三',20,'男');

select * from student; 查询表中数据

这些工作是谁做的?mysqld服务帮我们做的

3.数据库本质其实也是文件!只不过这些文件并不是由程序员直接将操作,而是由数据库服务帮我们进行操作


4.主流数据库

SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。

Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。

MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电 商,SNS,论坛。对简单的SQL处理效果好。

PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研 究使用,可以免费使用,修改和分发。

SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库 中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的 低,在嵌入式设备中,可能只需要几百K的内存就够了。

H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。


服务器管理

执行 win+r 输入 services.msc

打开服务管理器 通过下图左侧停止,暂停,重启动按钮进行服务管理


5.服务器数据库表之间的关系

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多 个数据库,一般开发人员会针对每一个应用创建一个数据库

为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

数据库服务器、数据库和表的关系如下:


清屏

mysql> system clear

6.MySQL架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、 Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

Connection Pool解决安全和链接管理

第二层做词法语法分析以及sql语句优化

Pluggable Storage Engines 来具体完成数据库存储方案

最底下依赖的就是对应的文件系统

7.SQL语句分类

  • DDL【data definition language】 数据定义语言,用来维护存储数据的结构
    代表指令: create, drop, alter
  • DML【data manipulation language】 数据操纵语言,用来对数据进行操作
    代表指令: insert,delete,update
    • DML中又单独分了一个DQL,数据查询语言,代表指令: select
  • DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
    代表指令: grant,revoke,commit

8.存储引擎

存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术 的实现方法。

MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看存储引擎

show engines;

show engines \G

存储引擎对比

常用的是InnoDB和MyISAM

感谢你的观看,期待我们下次再见!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐