数据库专题

news2025/7/15 1:20:20

请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

 默认隔离级别

mysql      repeatable-read

oracle     read-committed

  • 脏读:
  • 不可重复读:
  • 幻读: 

CHAR 和 VARCHAR 的区别?

  • char长度是不可变的但varchar长度是可变的
  • 一般用 char 类型的 存放 固定的数据  如 身份证号(18) 电话号  性别 
  • varchar存储可变的数据

在 MySQL 中 ENUM 的用法是什么?

-- Enum(0=>'男', 1=>'女', 2=>'保密')
create table my_enum(
    gender enum('男', '女', '保密')
)

 创建之后这个这一列只能在enum中选择填入,可规范数据。

枚举的意义

  • 规范数据本身,限定只能插入规定的数据项
  • 节省存储空间

MySQL 中使用什么存储引擎?

在MySQL中的存储引擎有很多种,可以通过“SHOW ENGINES”语句来查看。下面重点关注InnoDB、MyISAM、MEMORY这三种。

show engine   查看存储引擎

InnoDB:

        特点:mysql默认的存储引擎,支持事务和外键操作

        使用场景:对事物的完整性有比较高的要求,在并发条件下要求 数据的一致性

MyISAM:

        特点:不支持事务和外键操作,读取速度快节省资源。

        使用场景:以查询为主,只有很少的更新和删除,对事务的完整性、并发性要求不高。

MEMORY:

        特点:将数据保存在内存中,在需要快速定位记录和其他类似数据环境下可以更快的访问。

        使用场景:通常用于更新不太频繁的表,可快速得到结果。

主键和候选键有什么区别?(外键)

主键(Primary Key):

主键是一种用于唯一标识数据库表中每个记录的属性或组合属性。主键必须满足以下条件:

  • 唯一性:主键值必须唯一,每个记录必须有一个唯一的主键值。
  • 非空性:主键值不能为空。
  • 不可变性:主键值一旦确定,就不能被修改。

主键通常用于连接不同的表中的数据,并确保数据的一致性和完整性。

外键(Foreign Key):

外键是一个关系型数据库表中的字段,它引用了另一个表中的主键。外键用于创建两个表之间的关系。外键必须满足以下条件:

  • 它必须是被引用表的主键。
  • 外键值必须是被引用表的主键值之一。
  • 外键值可以为空(null),如果允许空值的话。

外键可以用来维护数据库表之间的关系,例如,如果一个表存储了订单信息,而另一个表存储了客户信息,那么在订单表中,客户信息可以通过外键来引用客户表中的主键。

候选键(Candidate Key):

候选键是一个可以唯一标识表中每个记录的属性或组合属性。与主键不同的是,一个表可以有多个候选键。候选键必须满足以下条件:

  • 唯一性:候选键值必须唯一,每个记录必须有一个唯一的候选键值。
  • 非空性:候选键值不能为空。

在设计数据库表时,候选键通常用来确定主键。如果一个表中有多个候选键,数据库设计者需要选择其中一个作为主键。

BLOB 和 TEXT 有什么区别?

在关系型数据库中,BLOB(Binary Large Object)和 TEXT 是两种用于存储二进制和文本数据的数据类型。它们之间的区别在于存储的数据类型和大小限制。

BLOB:

         BLOB是用于存储二进制数据的数据类型,例如图像、音频和视频文件等。BLOB数据可以存储为二进制文件或文本格式。BLOB的最大大小取决于所使用的数据库和存储引擎。在 MySQL 中,BLOB 的最大大小可以达到 65,535 字节或 16MB。

TEXT:

        TEXT是用于存储文本数据的数据类型,例如文章、评论和其他文本数据。TEXT可以存储纯文本或格式化文本。与 BLOB 不同,TEXT 只能存储文本数据,不能存储二进制数据。TEXT的最大大小也取决于所使用的数据库和存储引擎。在 MySQL 中,TEXT 的最大大小可以达到 65,535 字节或 4GB。

总之,BLOB和TEXT都是用于存储数据的数据类型,BLOB用于存储二进制数据,而TEXT用于存储文本数据。它们的最大大小和具体的限制取决于所使用的数据库和存储引擎。在使用时,需要根据实际需要选择正确的数据类型。

LIKE 和 REGEXP (正则表达式)操作有什么区别?

在关系型数据库中,LIKE和REGEXP(正则表达式)都是用于匹配字符串的操作符,它们之间的区别在于匹配方式和匹配能力。

LIKE:

        LIKE 是一个通配符匹配的操作符,它可以用来在数据库中搜索与指定模式匹配的字符串。

REGEXP:

       REGEXP 是一个正则表达式匹配的操作符,它可以使用正则表达式来匹配数据库中的字符串。 

如果需要匹配复杂的字符串模式,那么 REGEXP 更适合使用,而对于简单的字符串匹配,使用 LIKE 更为简单和快捷。

SELECT * FROM <tablename> WHERE * REGEXP "^b";
SELECT * FROM <tablename> WHERE * LIKE "%b";

数据库的三大范式?

数据库三大范式是指规范化数据库设计的三个级别,通常称为1NF、2NF和3NF,它们的目的是通过消除数据冗余和不一致性来提高数据库的数据完整性和可维护性。

第一范式(1NF):

        第一范式要求所有的数据库表都必须是原子性的,也就是说,每个表中的列必须是不可再分的基本数据项,不能包含重复的数据或多值数据。例如,如果一个订单表中包含多个商品,那么就需要将订单表和商品表分离开来,以避免重复数据的出现。

        第二范式(2NF):

第二范式要求在满足第一范式的前提下,所有非主键列都必须完全依赖于主键,也就是说,每个表中的非主键列必须与主键列直接相关。例如,如果一个订单表包含订单编号和商品编号,那么商品价格就应该存储在商品表中,而不是在订单表中。

第三范式(3NF):

        第三范式要求在满足第二范式的前提下,任何非主键列之间都不能存在传递依赖关系,也就是说,不能存在非主键列通过其他非主键列间接依赖主键列的情况。例如,如果一个订单表包含订单编号、商品编号和商品类别,那么商品类别就应该存储在商品表中,而不是在订单表中,因为商品类别是由商品编号直接决定的,与订单编号无关。

聚合函数

  • Count(字段)根据某个字段统计总记录数(当前数据库保存到多少条数据)
  • sum(字段)计算某个字段的数值总和
  • avg(字段)计算某个字段的数值的平均值
  • Max(字段)、min(字段)求某个字段最大或最小值

MySQL 中有哪几种锁?

共享锁(Shared Lock):

共享锁也称为读锁,它可以允许多个用户同时读取同一资源,但是不能同时写入。共享锁可以防止数据在读取过程中被修改,从而保证数据的一致性。共享锁不会阻止其他用户读取数据,但是会阻止其他用户对数据进行修改。

使用场景:在需要进行大量读操作,同时需要防止数据被修改的情况下使用。

 

排他锁(Exclusive Lock):

排他锁也称为写锁,它可以防止其他用户对资源进行读取和写入操作,只有获得排他锁的用户才能对资源进行修改。排他锁可以保证数据的一致性,但是会降低系统的并发性。

使用场景:在需要进行写操作时,需要排除其他用户读写操作的情况下使用。

 

行锁(Row Lock):

行锁是针对某一行数据进行加锁,它可以防止其他用户对该行数据进行修改,但是不会影响其他行的操作。行锁的粒度比表锁更细,可以提高系统的并发性,但是会增加系统的开销。

使用场景:在并发操作较高,需要对单行数据进行加锁的情况下使用。

 

表锁(Table Lock):

表锁是针对整个表进行加锁,它可以防止其他用户对该表进行读取和写入操作,但是会降低系统的并发性。表锁的粒度比行锁更粗,可以降低系统的开销,但是会影响系统的并发性。

使用场景:在需要对整个表进行操作,且操作频率较低的情况下使用。

mysql常用关键字

  1. SELECT:用于从数据库中查询数据。
  2. INSERT:用于将新数据插入到数据库表中。
  3. UPDATE:用于更新数据库表中的现有数据。
  4. DELETE:用于从数据库表中删除数据。
  5. WHERE:用于限制查询结果的返回。
  6. AND/OR:用于组合多个查询条件。
  7. ORDER BY:用于按特定列的值对结果进行排序。
  8. GROUP BY:用于对结果进行分组。
  9. JOIN:用于将多个表中的数据联合在一起进行查询。
  10. AS:用于给表或列起别名。
  11. DISTINCT:用于返回不同的值。
  12. COUNT:用于计算匹配查询条件的行数。
  13. MAX/MIN:用于返回某列的最大/最小值。
  14. AVG:用于计算某列的平均值。
  15. SUM:用于计算某列的总和。

MongoDB是什么

MongoDB是一种面向文档的非关系型数据库(NoSQL),它使用JSON格式的文档存储数据,而不是使用表格来表示数据。MongoDB非常适用处理半结构化数据,而且非常灵活,易于扩展和集群。

mongodb 是文档型的非关系
型数据库,其优势在于查询功能比较强大,能存储海量数据。

MongoDB 的功能

面向文档:适合存储对象及 JSON 形式的数据。
动态查询:Mongo 支持丰富的查询表达式。查询指令使用 JSON 形式的标记,可轻
易查询文档中内嵌的对象及数组

MongoDB 的适用场景

高度动态的数据:MongoDB 非常适合实时的插入,更新与查询,并具备网站实时数据存储所
需的复制及高度伸缩性。

大数据量和高吞吐量的应用程序:MongoDB的可扩展性和分布式架构使其适合大规模的数据存储和高吞吐量的应用程序。

Redis、MongoDB 对比

数据模型

  •  Redis是一个基于键值对的内存数据库,支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。Redis非常适合缓存、计数器、消息队列等场景。
  • MongoDB是一个文档数据库,支持JSON格式的文档存储。MongoDB的文档可以嵌套,而且不需要预定义字段,这使得MongoDB非常适合存储半结构化数据和多变的数据模型。

存储方式

  • Redis把所有数据都存储在内存中,这使得它非常快,但也意味着它的存储能力受到内存大小的限制。Redis支持数据持久化,可以把内存中的数据定期或实时地保存到硬盘上,以防止数据丢失。
  • MongoDB支持将数据存储在内存中或磁盘上,可以选择使用单机或集群部署。MongoDB通过使用索引、复制和分片等技术来提高数据的可靠性、可扩展性和性能。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/369121.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

公众号运营之竞品分析,教你拆解公众号

知己知彼&#xff0c;百战不殆&#xff0c;公众号运营亦是如此。 当运营者只关注自己账号的时候&#xff0c;很容易陷入某个误区中出不来。这个时候就要拓宽我们的视野&#xff0c;多去看看“外面的世界”&#xff0c;不要只局限于自己的一片小天地中。 看看同领域优秀公众号…

stm32f407探索者开发板(二十二)——通用定时器基本原理讲解

文章目录一、三种定时器的区别二、通用定时器特点2.1 功能特点描述2.2 计数器模式三、通用定时器工作过程四、附一、三种定时器的区别 STM32F40x系列总共最多有14个定时器 三种&#xff08;4&#xff09;STM32定时器区别 二、通用定时器特点 2.1 功能特点描述 STM3 F4的通…

PHY设备驱动

1. 概述 MAC控制器的驱动使用的是platform总线的连接方式&#xff0c;PHY设备驱动是基于device、driver、bus的连接方式。 其驱动涉及如下几个重要部分&#xff1a; 总线 - sturct mii_bus (mii stand for media independent interface) 设备 - struct phy_device 驱动 - struc…

零日漏洞发展格局及防御策略

在过去的一年半中&#xff0c; 在野利用的零日漏洞数量持续飙升 &#xff0c;这些软件制造商尚不知晓的漏洞正在被国家行为体黑客组织和勒索软件团伙滥用。 今年上半年&#xff0c;Google Project Zero统计了近20个零日漏洞&#xff0c;其中 大部分针对微软、苹果和谷歌构建的…

【《C Primer Plus》读书笔记】第13章:文件输入/输出

【《C Primer Plus》读书笔记】第13章&#xff1a;文件输入/输出13.1 与文件进行通信13.1.1 文件是什么13.1.2 文本模式和二进制模式13.1.3 I/O的级别13.1.4 标准文件13.2 标准I/O13.3 一个简单的文件压缩程序13.4 文件I/O&#xff1a;fprintf()、fscanf()、fgets()和fputs()13…

【LVGL】学习笔记--(1)Keil中嵌入式系统移植LVGL

一 LVGL简介最近emwin用的比较烦躁&#xff0c;同时被LVGL酷炫的界面吸引到了&#xff0c;所以准备换用LVGL试试水。LVGL(轻量级和通用图形库)是一个免费和开源的图形库&#xff0c;它提供了创建嵌入式GUI所需的一切&#xff0c;具有易于使用的图形元素&#xff0c;美丽的视觉效…

极光笔记 | 埋点体系建设与实施方法论

PART 01 前 言随着网络技术的发展&#xff0c;从粗犷型到精细化运营型&#xff0c;再到现在的数字化运营&#xff0c;数据变得越来越细分和重要&#xff0c;不仅可以进行策略调整&#xff0c;还可以实现自动化的精细化运营。而数据价值的起点就是埋点&#xff0c;只有合理地埋点…

[计算机网络(第八版)]第一章 概述(学习笔记)

1.1 计算机网络在信息时代中的作用 21世纪是以网络为核心的信息时代&#xff0c;21世纪的重要重要特征&#xff1a;数字化、网络化与信息化。 三大类网络 电信网络&#xff1a;向用户提供电话、电报、传真等服务&#xff1b;有线电视网络&#xff1a;向用户传送各种电视节目&am…

zabbix4.0-使用zabbix监控别的主机-使用模板来创建图形

目录 1、 配置zabbix的yum源 2、下载zabbix-agent 3、配置zabbix-agent的配置文件 4、关闭防火墙&#xff0c;selinux 5、重启zabbix-agent 6、连通性测试&#xff0c;在zabbix-server服务器上面使用zabbix_get获取zabbix-agent服务器上的数据 7、在zabbix web端配置zab…

Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Feb 2023)

Windows 11, version 22H2&#xff0c;2023 年 2 月 更新 请访问原文链接&#xff1a;https://sysin.org/blog/windows-11/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org 全新推出 Windows 11 全新 Windows 体验&#x…

考PMP的用处有哪些?备考攻略+资料分享

说到底&#xff0c;考PMP就是为了给工作提供便利&#xff0c;你考了之后会用它&#xff0c;将学习的东西运用到工作中&#xff0c;比如提高项目完成率&#xff0c;能升职加薪啊等等&#xff0c;那自然很是有用的。 不用&#xff0c;那就只是一张当摆设的纸&#xff0c;当然&am…

项目经理如何度量项目?及项目度量指标实例【静说】

度量项目是项目经理的一个重要职责&#xff0c;通过度量项目&#xff0c;项目经理可以了解项目的进展情况&#xff0c;及时发现问题并采取相应的措施&#xff0c;以确保项目能够按时、按质、按预算完成。 分享给大家一些常见的项目度量指标&#xff1a; 1. 项目进度&#xff…

docker-compose 简单配置php和nginx及注意事项

docker-compose.yml内容&#xff1a; /docker/web/config/nginx/conf/default.conf内容&#xff1a; server { listen 80; server_name localhost; root /usr/share/nginx/html; error_log /var/log/nginx/localhost.log; location / { try_files $…

ESP32-FPV-Camera介绍和使用

ESP32-FPV-Camera介绍和使用1. 编译目标2. 编译步骤Step 1 软件配置环境准备Step 2 获取开源代码Step 3 2.4G WiFi频段选择Step 4 要确保2.4G WiFi网卡处于Monitor状态Step 5 修改频点相关代码Step 6 修改WiFi网卡相关代码Step 7 OpenGL 版本问题Step 8 构建天空端Step 9 构建地…

从0开始写Vue项目-Vue实现用户数据批量上传和数据导出

从0开始写Vue项目-环境和项目搭建_慕言要努力的博客-CSDN博客从0开始写Vue项目-Vue2集成Element-ui和后台主体框架搭建_慕言要努力的博客-CSDN博客从0开始写Vue项目-Vue页面主体布局和登录、注册页面_慕言要努力的博客-CSDN博客从0开始写Vue项目-SpringBoot整合Mybatis-plus实现…

04--WXML

1、什么是WXML什么是Wxml呢&#xff1f;我们首先要介绍一下Html&#xff0c;Html的全称为HyperTextMarkup Language&#xff0c;翻译过来就是超文本标记语言&#xff0c;这种语言目前已经普遍用于前端开发&#xff0c;而wxml正是从html演变而来&#xff0c;它基于微信这个平台&…

4EVERLAND:ERC-721 Token的存储选择

4EVERLAND&#xff1a;一个 Web3 基础设施&#xff0c;可促进项目更轻松、更快速地托管前端、存储数据/NFT/文件&#xff0c;并在 IPFS、Arweave 和 Dfinity 之上访问它们。 NFT , 数字所有权 使用以太坊标准的 NFT 创新ERC-721解决了互联网内容的主要问题之一&#xff1a;所…

计算机网络(2)从十六进制的ip数据报中得到详细字段信息

本博文介绍如何将十六进制的ip报文拆分出具体的字段信息。社会计算机网络和网络协议分析的初学者参考&#xff08;今天看了网络协议分析期末复习重点的最后一个大题&#xff0c;竟然一头雾水&#xff0c;然后快马加鞭翻阅各种资料&#xff0c;然后差不多学会 了&#xff09;wir…

RK3568平台开发系列讲解(驱动基础篇)中断子系统框架

🚀返回专栏总目录 文章目录 一、中断硬件的组成二、软件框架三、中断常见概念沉淀、分享、成长,让自己和他人都能有所收获!😄 📢中断是指 CPU 正常运行期间,由于内外部事件或程序预先安排的事件,引起的 CPU 暂时停止正在运行的程序, 转而为该内部或外部预先安排的事…

零基础入门反序列化及常用trick

前言 反序列化是一个尤为重要的知识点&#xff0c;最近对反序列化进行了简单学习&#xff0c;并总结如下&#xff0c;希望能对正在学习的师傅有所帮助。 前提 了解序列化和反序列化 学习反序列化之前&#xff0c;首先要知道序列化&#xff0c;简单的举个栗子来说 <?ph…