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

MySQL复习1

基本概念

OLTP

OLTP(On-Line transaction processing)翻译为联机事物处理;主要对数据库增删改查。

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

OLAP

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

当数据积累到一定程度,我们需要对过去发生的事情做一个总结,就需要将过去一段时间产生的数据拿出来统计分析,获取我们需要的信息。

SQL

结构化查询语言(Structured Query Language)简称 SQL,是一种特殊目的的编程语言,用来存取数据和查询、更新和管理关系数据库系统。SQL 是关系数据库系统的标准语言。

关系型数据库包括:MySQL, SQL Server, Oracle, Sybase, postgreSQL 和 MS Access 等;

SQL 包括:DQL,DML,DDL,DCL 和 TCL。

DQL

Data Query Languate:数据查询语言;

  • select :从一个或多个表中检索特定的记录。
DML

Data Manipulate Language:数据操作语言;

  • insert:插入记录;
  • update:更新记录;
  • delete:删除记录。
DDL

Data Define Language:数据定义语言;

  • create:创建一个新的表、表的视图、或在数据库中的对象;
  • alter:修改现有的数据库对象,例如修改表的属性或者字段。

MySQL 体系结构

image.png

从图中可以看到 MySQL 的组成部分:

  1. 连接池组件
  2. 管理服务和工具组件
  3. SQL 接口组件
  4. 查询分析器组件
  5. 缓冲组件
  6. 插件式存储引擎
  7. 物理文件

连接者

不同语言的代码程序和数据库交互(SQL 交互)。

MySQL 内部连接池

管理缓冲用户连接、用户名、密码、权限校验、线程处理等需要缓存的需求。

查询解析器

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

查询优化器

SQL 语言执行前使用查询优化器进行优化。

缓冲组件

数据库设计范式

为了建立冗余较小,结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则称为范式。范式是符合一种设计要求的总结。想要设计一个结构合理的关系型数据库,必须满足一定的范式。

范式一

确保每一列保持原子性,数据库表中所有字段都是不可分解的原子值;

例如某个表中有一个地址字段,如果需要经常访问地址字段中的城市属性,则需要将该字段拆为多个字段,省份、城市、详细地址等。

范式二

确保表中每列都和主键相关,而不能只与主键的某一部分相关;

范式三

确保每一列都和主键直接相关,而不是间接相关;减少冗余;

反范式

CRUD

执行过程

创建数据库

create database `firstdb` default character set utf8;

删除数据库

drop database `firstdb`;

选择数据库

use `firstdb`;

创建表

create table if not exists `animaltb` (  
    `id` int unsigned auto_increment comment '编号',  
    `type` varchar(10) not null comment '类别',  
    `height` decimal(8, 2) not null comment '身高',  
    primary key (`id`)  
)engine = innoDB default charset = utf8 comment = '动物表';

删除表

drop table `animaltb`;

清空数据表

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

insert into `animaltb` (`type`, `height`) values  ('lion', 7.9);

delete from `animaltb` where id = 3;

update `animaltb` set `type` = 'lion' where id = 2;
update `animaltb` set `height` = `height` + 1 where id = 3;

select field1, field2, ...fieldn from table_name [where clause];

推荐课程:https://xxetb.xetslk.com/s/3oyV5o


http://www.kler.cn/news/293064.html

相关文章:

  • LAN变压器的DCR
  • 科研绘图系列:R语言折线图(linechart plots)
  • NFT Insider #146:The Sandbox 推出「体素游戏」计划;加密猫发布新 NFT 「Egg」,暴涨 37.5 倍!
  • 【ESP8266】macos 下 sdk 环境搭建
  • MATLAB进行天线阵列方向图综合
  • Python爬虫案例四:爬取某个博主的所有文章保存成PDF格式
  • 基于时序差分的无模型强化学习:Q-learning 算法详解
  • Redis进阶(六):缓存
  • 安卓开发中的ViewPager2的使用
  • 手动添加jar包到本地仓库
  • 【日记】往哈尔滨西天取经、弱电工程师与软考证书(2113 字)
  • 黑马点评8——好友关注-SortedSet
  • Vue3中引用的组件如果使用了插槽,如何做到引用的组件不显示某些元素
  • 9/3作业
  • 使用reflex的序章:安装cargo、fnm和bun
  • Vue计算属性(computed)的使用方法及使用场景总结
  • windows pg 数据库 配置远程链接
  • JS面试真题 part1
  • 基于yolov8的包装盒纸板破损缺陷测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • 【Unity】打包报错类型不存在于命名空间内
  • 算法篇_C语言实现霍夫曼编码算法
  • 科研绘图系列:R语言PCoA图(PCoA plot)
  • HarmonyOS开发实战( Beta5.0)DevEco Device Tool开发环境搭建实践
  • 卷轴模式系统源码开发之社交电商:融合传统与创新的新篇章
  • 解决职业摔跤手分类问题的算法与实现
  • Matlab 并联双振子声子晶体梁结构带隙特性研究
  • 算法训练营|图论第11天 Floyd算法 A*算法
  • 【微服务】接口的幂等性怎么设计?
  • Kubernetes 上安装 Jenkins
  • 5、Django Admin后台移除“删除所选”操作