当前位置: 首页 > news >正文

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,结束,下一篇,继续。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 配置RIPv2的认证
  • 详解Stable Diffusion 原理图
  • excel批量新建多个同类型的表格
  • 【深入理解SpringCloud微服务】深入理解Eureka核心原理
  • 43 华三AC登录Web页面
  • STM32测测速---编码电机读取速度的计算
  • 【微服务】feign使用
  • 独立开发的在线客服系统出海记
  • Codeforces Round 959 (Div. 1 + Div. 2 ABCDEFG 题) 文字讲解+视频讲解
  • 【BUG】已解决:zipfile.BadZipFile: File is not a zip file
  • SeleniumBasic操作运行中的Chrome浏览器
  • 力扣 19删除链表倒数第N个结点
  • 电脑屏幕闪烁?3招教你轻松搞定
  • 恐怖数字暗影:猜中才能逃离
  • FLINK-checkpoint失败原因及处理方式
  • php的引用
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • angular组件开发
  • chrome扩展demo1-小时钟
  • java中的hashCode
  • mysql innodb 索引使用指南
  • yii2中session跨域名的问题
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 前嗅ForeSpider采集配置界面介绍
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (libusb) usb口自动刷新
  • (笔试题)合法字符串
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (转)重识new
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET 8.0 中有哪些新的变化?
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net下的富文本编辑器FCKeditor的配置方法
  • ::什么意思
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [ 第一章] JavaScript 简史
  • [20150321]索引空块的问题.txt
  • [Angularjs]ng-select和ng-options