【MySQL】数据库基础和SQL分类

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【MySQL】数据库基础和SQL分类

MySQL数据库基础

数据库的概念

数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库的使用优于简单的文件存储,因为它提供了更好的安全性、数据查询和管理的功能,并更容易控制和存储海量数据。

主流数据库

下面列举了几个主流的数据库:

  • SQL Server:微软的产品,适用于中大型项目。
  • MySQL:甲骨文产品,全球最受欢迎的数据库,适用于电商、SNS、论坛等简单业务。
  • Oracle:甲骨文产品,适合大型项目和复杂的业务逻辑。
  • PostgreSql:加州大学伯利克分校开发的关系型数据库。
  • SQLite:轻型数据库,适用于嵌入式设备。
  • H2:Java开发的嵌入式数据库。

基本使用

连接服务器

连接MySQL服务器的方式:

mysql -h127.0.0.1 -P3306 -uroot -p

服务器管理

停止服务器:

systemctl stop mysqld

启动服务器:

systemctl start mysqld

重启服务器:

systemctl restart mysqld

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

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

说明一下:

图中的Client对应的就是mysql命令,MySQL对应的就是mysqld服务。

DB(database)表示的是mysqld管理的多个数据库,而每一个DB下会包含多张表。

使用案例

数据存储路径

MySQL创建的数据库和表结构会以文件的形式存储,数据存储路径可以在配置文件中查看。

创建数据库

连接MySQL服务器后,通过create语句创建数据库:

CREATE DATABASE helloworld;

使用数据库

使用数据库:

USE helloworld;

创建数据库表

通过create语句创建一个名为student的表:

CREATE TABLE student (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50),
  age INT
);

表中插入数据

通过insert语句向表中插入数据:

INSERT INTO student (name, age) VALUES ('John', 25);
INSERT INTO student (name, age) VALUES ('Jane', 28);

查询表中的数据

通过select语句查看表中的数据:

SELECT * FROM student;

数据逻辑存储

数据的逻辑存储以二维表格的形式进行,每行为一条记录,每列代表一个属性。

MySQL架构

MySQL是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如Unix/Linux、Windows、Mac和Solaris。MySQL架构主要可分为如下四层:

  1. 连接层: 完成连接处理、授权认证及相关的安全方案。
  2. 服务层: 在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的。包括权限判断、SQL接口、SQL解析、SQL分析优化、缓存查询的处理以及部分内置函数执行等。各个存储引擎提供的功能都集中在这一层,如存储过程、触发器、视图等。
  3. 引擎层: 由多种可拔插的存储引擎共同组成。真正负责MySQL中数据的存储和提取。每个存储引擎都有自己的优点和缺陷,例如InnoDB支持事务、行级锁和外键等,MyISAM则支持全文索引和压缩等特性。
  4. 存储层: 将数据存储在裸设备的文件系统之上,完成存储引擎的交互。

MySQL客户端是通过MySQL服务器来执行数据库操作的。MySQL服务器会收到MySQL客户端发来的SQL语句,并根据SQL语句执行对应的操作。MySQL客户端不仅指连接MySQL时使用的mysql命令,还包括语言接口客户端。MySQL提供了多种语言接口,如C/C++、Python、Java和PHP等。

SQL分类

SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL语句可分为以下三类:

  1. DDL(Data Definition Language): 数据定义语言,用于维护存储数据的结构,包括create语句用于创建数据库、表等;drop语句用于删除数据库、表等;alter语句用于修改数据库、表等的结构。
  2. DML(Data Manipulation Language): 数据操作语言,用于对数据进行操作,包括insert语句用于向表中插入数据;delete语句用于从表中删除数据;update语句用于修改表中的数据。
  3. DCL(Data Control Language): 数据控制语言,主要用于权限管理和事务控制,包括grant语句用于授权给用户访问数据库或表的权限;revoke语句用于收回已授权的权限;commit语句用于提交事务。

此外,DML中又单独分了一个DQL(Data Query Language)数据查询语言,包括select语句用于查询表中的数据、from语句用于指定要查询的表等。

存储引擎

存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引、如何更新数据、如何查询数据等技术的实现方法。MySQL中的存储引擎是插件式的存储引擎,它可以支持多种存储引擎。

查看存储引擎

通过show语句可以查看MySQL支持的存储引擎。在MySQL客户端中执行以下命令:

SHOW ENGINES;

其中MySQL默认使用的存储引擎是InnoDB,该存储引擎支持事务、行级锁、外键等。其他常用的存储引擎还包括MyISAM、MEMORY和CSV等。

存储引擎的选择要根据具体的业务需求和数据特点进行,不同的存储引擎有不同的特性和适用场景。例如,InnoDB适用于事务处理和并发读写较多的场景,MyISAM适用于读操作频繁、写操作较少的场景,MEMORY适用于对速度要求较高、数据量不大、对数据持久性要求不高的场景。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
SQL 存储 关系型数据库
MySQL原理简介—1.SQL的执行流程
本文介绍了MySQL驱动、数据库连接池及SQL执行流程的关键组件和作用。主要内容包括:MySQL驱动用于建立Java系统与数据库的网络连接;数据库连接池提高多线程并发访问效率;MySQL中的连接池维护多个数据库连接并进行权限验证;网络连接由线程处理,监听请求并读取数据;SQL接口负责执行SQL语句;查询解析器将SQL语句解析为可执行逻辑;查询优化器选择最优查询路径;存储引擎接口负责实际的数据操作;执行器根据优化后的执行计划调用存储引擎接口完成SQL语句的执行。整个流程确保了高效、安全地处理SQL请求。
105 75
|
15天前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
1天前
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
|
1天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
61 42
|
2天前
|
SQL 关系型数据库 MySQL
MySQL进阶突击系列(07) 她气鼓鼓递来一条SQL | 怎么看执行计划、SQL怎么优化?
在日常研发工作当中,系统性能优化,从大的方面来看主要涉及基础平台优化、业务系统性能优化、数据库优化。面对数据库优化,除了DBA在集群性能、服务器调优需要投入精力,我们研发需要负责业务SQL执行优化。当业务数据量达到一定规模后,SQL执行效率可能就会出现瓶颈,影响系统业务响应。掌握如何判断SQL执行慢、以及如何分析SQL执行计划、优化SQL的技能,在工作中解决SQL性能问题显得非常关键。
|
1天前
|
SQL 存储 关系型数据库
【SQL技术】不同数据库引擎 SQL 优化方案剖析
不同数据库系统(MySQL、PostgreSQL、Doris、Hive)的SQL优化策略。存储引擎特点、SQL执行流程及常见操作(如条件查询、排序、聚合函数)的优化方法。针对各数据库,索引使用、分区裁剪、谓词下推等技术,并提供了具体的SQL示例。通用的SQL调优技巧,如避免使用`COUNT(DISTINCT)`、减少小文件问题、慎重使用`SELECT *`等。通过合理选择和应用这些优化策略,可以显著提升数据库查询性能和系统稳定性。
25 9
|
19天前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
70 6
|
2月前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
19天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
152 0
|
2月前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。