〔 MySQL 〕数据库基础

**1.**数据库基础(重点)

1.1****什么是数据库

1.1.1、数据库的局部概念

  1. 数据库与文件的关系
    • 局部上看,数据库是提供数据存储能力的文件,有自己内部格式,能让mysqld服务进程直接增删查改。
    • 若不直接用文件系统的文件,程序员进行数据提取就得二次编码,比较麻烦。

1.1.2、数据库的宏观概念

  1. 整体定义
    ● 宏观上,数据库是一整套数据存储的解决方案,这一整套东西就叫做数据库。

1.1.3、使用数据库的原因(相对于文件存储)

  1. 安全性
    ● 文件如果没有权限控制,随时随地可能被任何人访问,不安全。
  2. 数据查询、管理与海量数据处理
    ● 数据量大时(如10亿行、100亿行数据),若用文件,每次打开文件要读写、遍历、做统计,太麻烦,而数据库服务可统一处理。
  3. 文件控制不方便
    ● 在写代码操作文件时,用程序控制不太方便,而数据库能更好地解决这些问题。

1.1.4、数据库的本质

  1. 存储介质相关
    ● 数据库本质上是一种存储介质,一般在磁盘上存储,也可能有内存中的数据库文件。

1.1.5、数据库的其他认识

  1. 结构化数据存储
    ● 数据库可以是磁盘当中结构化的数据存储,这样的数据库文件可称之为数据库。
    ● 也可把包括客户端、服务端以及存储对应的文件的整体方案称之为数据库。

1.1.6、数据库技能需求

  1. 后端程序员与数据库
    ● 数据库不是所有程序员都必须掌握的能力,不是所有后端程序员都会接触到它。

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

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

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

1.2****主流数据库

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

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

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

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

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

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

MySQL是一套给我们提供数据存储的服务的网络程序

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

数据库服务 -- mysqld(MySQL数据库的服务端)

1.3****基本使用

1.3.1 MySQL安装

Centos 6.5下编译安装MySQL 5.6.14
CentOS 7 通过 yum 安装 MariaDB
Windows下安装MySQL5.7
Windows下安装MySQL5.7

1.3.2****连接服务器

输入:

bash 复制代码
mysql -h 127.0.0.1 -P 3306 -u root -p

-h 指明登陆部署了 mysql 服务的主机

-P 指明我们要访问的端口号

-u 指明登陆用户

-p 指明需要输入密码

密码输入的时候,是不会显的。

quit 退出 mysql 用户端

输出:

bash 复制代码
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
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>

注意:
如果没有写 -h 127.0.0.1 默认是连接本地
如果没有写 -P 3306 默认是连接3306端口号

Linux中MySQL的客户端和服务端

1.mysql它是数据库服务的客户端

2.mysqld它是数据库服务的服务器端

3.mysql本质:基于C(mysql)、S(mysqld)模式的一种网络服务

1.3.3****服务器管理

● 执行 win+r 输入 services.msc 打开服务管理器
● 通过下图左侧停止,暂停,重启动按钮进行服务管理

这里没有下载,如果下载完的,找到该服务,直接重新启动即可

1.3.4****服务器,数据库,表关系

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

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

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

1.3.5****使用案例

● 创建数据库

sql 复制代码
create database helloworld

● 使用数据库

sql 复制代码
use helloworld

● 查看当前所在数据库

sql 复制代码
show databases;

● 查看当前所在数据库的数据表

sql 复制代码
show tables;

● 创建数据库表

sql 复制代码
create table student(
    id int,
    name varchar(32),
    gender varchar(2)
);

● 表中插入数据

sql 复制代码
insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李明', '男');
insert into student (id, name, gender) values (3, '小红', '女');

● 查询表中的数据

sql 复制代码
select * from student;

1.3.6****数据逻辑存储

1.4 MySQL****架构

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

1.5 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

1.6****存储引擎

1.6.1****存储引擎

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

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

1.6.2 查看存储引擎

sql 复制代码
show engines;

1.6.3****存储引擎对比

80%使用InnoDB,后面大部分使用MyISAM。

最主要的是InnoDB支持事务,而MyISAM支持多并发读取。

2、数据库基础学习总结

一、数据库是什么以及mysql和mysqld的理解(从文件角度)

  • 数据库相当于一种数据库文件,从文件角度看,它是由mysqld服务器结合内部存储引擎进行增删查改的二进制文件。
  • 数据库可以理解为Linux目录,表达形式是Linux目录下的文件。

二、mysql、mysqld、数据库和表之间的逻辑关系

MySQL 和 mysqld

MySQL 是一个开源的关系型数据库管理系统,它提供了一个用于执行SQL语句的命令行工具,以及用于管理数据库的各种工具和服务。mysqld 是 MySQL 服务器的后台进程,它在后台运行并监听来自客户端的请求,处理数据库的读写操作。

数据库和表

数据库是由一个或多个表组成的,表是数据库中存储数据的基本单元。每个表由行和列组成,行代表数据记录,列代表数据的字段或属性。

逻辑关系
  • 数据库 是数据的容器,它可以包含多个表。
  • 是数据库中的组织单位,用于存储特定类型的数据。
  • mysqld 是 MySQL 数据库的服务器进程,负责管理数据库和处理客户端请求。
  • mysql 是 MySQL 的命令行客户端工具,用于与 mysqld 服务器交互,执行数据库操作。

在逻辑上,mysqld 提供了一个服务平台,用于管理存储在数据库中的表和数据。用户通过 mysql 客户端或其他数据库管理工具与 mysqld 服务通信,执行SQL命令来操作数据库和表中的数据。

三、数据库的整体结构与分类相关

  1. 整体结构
    • 分三层,包括链接池、词法语法分析、server优化以及存储引擎层。
相关推荐
陈卓41015 分钟前
MySQL-主从复制&分库分表
android·mysql·adb
IT项目管理1 小时前
达梦数据库DMHS介绍及安装部署
linux·数据库
你都会上树?1 小时前
MySQL MVCC 详解
数据库·mysql
大春儿的试验田1 小时前
高并发收藏功能设计:Redis异步同步与定时补偿机制详解
java·数据库·redis·学习·缓存
Ein hübscher Kerl.2 小时前
虚拟机上安装 MariaDB 及依赖包
数据库·mariadb
长征coder2 小时前
AWS MySQL 读写分离配置指南
mysql·云计算·aws
醇醛酸醚酮酯2 小时前
Qt项目锻炼——TODO清单(二)
开发语言·数据库·qt
ladymorgana2 小时前
【docker】修改 MySQL 密码后 Navicat 仍能用原密码连接
mysql·adb·docker
PanZonghui2 小时前
Centos项目部署之安装数据库MySQL8
linux·后端·mysql
GreatSQL社区3 小时前
用systemd管理GreatSQL服务详解
数据库·mysql·greatsql