您的位置:首页 > 教育 > 锐评 > MySQL(1)

MySQL(1)

2024/10/6 14:32:08 来源:https://blog.csdn.net/Vjunjun/article/details/140621895  浏览:    关键词:MySQL(1)

文章目录

  • 概述
    • 数据库
    • OLTP
    • OLAP
    • SQL
    • DQL
    • DML
    • DDL
    • DCL
    • TCL
  • MYSQL
    • 连接池
    • 管理服务和工具组件
    • SQL接口
    • 查询解析器
    • 查询优化器
    • 缓冲组件
    • CRUD
      • 创建数据库
      • 删除数据库
      • 选择数据库
      • 创建表
      • 删除表
      • 清空数据表
  • 小结

概述

数据库

**按照数据结构来组织、存储和管理数据的仓库;**是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合;

OLTP

OLTP(online transaction processing)翻译为联机事务处理;主要对数据库增删改查;

OLTP主要用来记录某类业务事件的发生;数据会以增删改的方式在数据库中进行数据的更新处理
操作,要求实时性高、稳定性强、确保数据及时更新成功;

OLAP

OLAP(On-Line Analytical Processing)翻译为联机分析处理;主要对数据库查询;

当数据积累到一定的程度,我们需要对过去发生的事情做一个总结分析时,就需要把过去一段时间
内产生的数据拿出来进行统计分析,从中获取我们想要的信息,为公司做决策提供支持,这时候就
是在做OLAP了;

SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数
据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL是关系数据
库系统的标准语言。
关系型数据库包括:MySQL, SQL Server, Oracle, Sybase, postgreSQL 以及 MS Access等;
SQL命令包括:DQL、DML、DDL、DCL以及TCL;

DQL

Data Query Language - 数据查询语言;
select :从一个或者多个表中检索特定的记录;

DML

Data Manipulate Language - 数据操作语言;
insert :插入记录;
update :更新记录;
delete :删除记录

DDL

Data Define Languge - 数据定义语言;
create :创建一个新的表、表的视图、或者在数据库中的对象;
alter :修改现有的数据库对象,例如修改表的属性或者字段;
drop :删除表、数据库对象或者视图;

DCL

Data Control Language - 数据控制语言;
grant :授予用户权限;
revoke :收回用户权限;

TCL

Transaction Control Language - 事务控制语言;
commit :事务提交;
rollback :事务回滚;

MYSQL

MySQL由以下几部分组成:
连接池组件、管理服务和工具组件、SQL接口组件、查询分析器组件、优化器组件、缓冲组件、插
件式存储引擎、物理文件。

连接池

管理缓冲用户连接、用户名、密码、权限校验、线程处理等需要缓存的需求;
网络处理流程:主线程接收连接,接收连接交由连接池处理;
主要处理方式:IO多路复用select + 阻塞的io;
需要理解:MySQL命令处理是并发处理的;

主线程负责接收客户端连接,然后为每个客户端 fd 分配一个连接线程,负责处理该客户端的 sql
命令处理;

管理服务和工具组件

系统管理和控制工具,例如备份恢复、Mysql复制、集群等;

SQL接口

将SQL语句解析生成相应对象;DML,DDL,存储过程,视图,触发器等;

查询解析器

将SQL对象交由解析器验证和解析,并生成语法树;

查询优化器

SQL语句执行前使用查询优化器进行优化;

缓冲组件

是一块内存区域,用来弥补磁盘速度较慢对数据库性能的影响;在数据库进行读取页操作,首先将
从磁盘读到的页存放在缓冲池中,下一次再读相同的页时,首先判断该页是否在缓冲池中,若在缓
冲池命中,直接读取;否则读取磁盘中的页,说明该页被LRU淘汰了;缓冲池中LRU采用最近最少
使用算法来进行管理;
缓冲池缓存的数据类型有:索引页、数据页、以及与存储引擎缓存相关的数据(比如innodb引
擎:undo页、插入缓冲、自适应hash索引、innodb相关锁信息、数据字典信息等);

CRUD

创建数据库

CREATE DATABASE `数据库名` DEFAULT CHARACTER SET utf8;

删除数据库

DROP DATABASE `数据库名`;

选择数据库

USE `数据库名`;

创建表

CREATE TABLE `table_name` (column_name column_type);
CREATE TABLE IF NOT EXISTS `0voice_tbl` (
`id` INT UNSIGNED AUTO_INCREMENT COMMENT '编号',
`course` VARCHAR(100) NOT NULL COMMENT '课程',
`teacher` VARCHAR(40) NOT NULL COMMENT '讲师',
`price` DECIMAL(8,2) NOT NULL COMMENT '价格',
PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT = '课程表';

删除表

DROP TABLE `table_name`;

清空数据表

TRUNCATE TABLE `table_name`; -- 截断表 以页为单位(至少有两行数据),有自增索引的话,从初始值开始累加
DELETE TABLE `table_name`; -- 逐行删除,有自增索引的话,从之前值继续累加

INSERT INTO `table_name`(`field1`, `field2`, ..., `fieldn`) VALUES (value1,
value2, ..., valuen);

DELETE FROM `table_name` [WHERE Clause];

UPDATE table_name SET field1=new_value1, field2=new_value2 [,
fieldn=new_valuen]

SELECT field1, field2,...fieldN FROM table_name
[WHERE Clause]

小结

数据库这节开始写,好久没写数据库,觉得有点陌生了,现在复习下,顺便记录下。重新学习一遍,每一遍都有不一样的体会,可能就是刻意练习里的心理表征吧。这篇就写到这吧。感兴趣吗,可以一起学习学习。OK,结束,下一篇,继续。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com