MySQL简述1

2023-11-18

MySQL是什么

MySQL是一个关系型数据库管理系统

MySQL优点

免费开源:MySQL是一个开源的关系型数据库管理系统,使用和修改都不需要付费
性能高效:MySQL是一个高性能的数据库管理系统,支持大量的并发访问,适合在高并发的环境中使用
稳定可靠:MySQL是经过多年的发展和改进,稳定可靠,在大型网站和应用程序中广泛使用
可移植性好:MySQL可以在多种操作系统平台上运行,包括Windows,Linux,Mac OS 等
完善的管理工具:MySQL提供了丰富的管理工具,可以方便的进行数据库的维护和优化
功能丰富:MySQL提供了许多强大的功能,例如数据库触发器、存储过程、视图等
易于使用:MySQL的语法简单易懂,适合初学者学习

MySQL的四种分类

DDL:数据定义语言。(操作数据库、表)关键字:create、drop、alter
DML:数据操作语言(增删改表中的数据)关键字:insert、delect、update
DQL:数据查询语言(查询表中的数据)关键字:select、where
DCL:数据库操作控制语言(授权)

数据库的三大范式

第一范式(1NF):属性不可分割,即每个属性都是不可分割的原子。(实体的属性即表中的列)
第二范式(2NF):满足第一范式;且不存在部分依赖,即非主属性必须完全依赖于主属性。(主属性即主键;完全依赖是针对于联合主键的情况,非主键列不能只依赖于主键的一部分)
第三范式(3NF):满足第二范式,且不存在依赖传递,即非主属性不能与非主属性之间有依赖关系,非主属性必须直接依赖于主属性,不能简介依赖主属性。(A -> B ,B -> C , A -> C)

比如姐姐结婚,来往的宾客就不符合第一范式,宾客还可以分为男方宾客和女方宾客。
主属性为新娘和新郎,他们为联合主键,然后其他的属性为伴娘伴郎团,这就不符合第二范式了,他们不能放在一个表中,因为伴娘不依赖于新郎,伴郎也不依赖于新娘,所以新娘和伴娘团为一个表、新郎和伴郎团为一个表,新娘和新郎为一个表。
表中有ID、新郎、新娘、新娘的父母,这不符合第三范式,虽然新郎也叫爸妈,但是这是新娘的父母,是因为结婚了所以才能叫爸妈,存在着传递依赖,所以新娘和新娘的父母应该单独提出来独立为表。

这里就有一个问题了,第二范式和第三范式很像,那么怎么区分他们呢,看主键,第二范式主要是针对联合主键的情况,如果只有一个主键那自然是满足第二范式的,那如果是联合主键呢,就看是否完全依赖主键了,就像伴娘团,跟你伴郎有鸡毛关系啊。

多表查询

左连接

左表+共有的部分

语法关键字为 LEFT JOIN

右连接

右表+共有的部分

语法关键字为 RIGHT JOIN

内连接

共有的部分

语法关键字为 INNER JOINJOIN

交叉连接

每条数据对应每条数据,返回两个表的乘积,就像2*3等于6一样,表一有2条数据,表二有3条数据,就返回6条数据

显式

语法关键字为CROSS JOIN

隐式

例如 select * from 表1,表2;

子查询

将一个查询语句嵌套在另一个查询语句中

事物

特性

原子性

要么同时成功要么同时失败。就像人,要么生要么死

一致性

表示数据库执行前后,数据库中的数据都是一致性的状态。就像人,你的状态是一致的,你还是你,你不会变成另外一个人

隔离性

多个事务之间相互隔离,互不干涉。人也是独立的一个个体

持久性

事务一旦提交,对数据库中的数据所做的修改就是永久的,人也是永久的,如果做了什么决定,我们也不能再让时间倒流,我们没有后悔的权力

并发问题

脏读(读未提交)

读到了已经修改但是没有提交的数据

不可重复读(读已提交)

事务A读取一个数据,但是事务B修改并提交了,事务A再次读取,数据不一样了

幻读(可重复读)

把数据删除了,但是读到了被删除的数据

幻读的问题可以用串行化解决

MySQL索引

  • 功能分类
    • 普通索引: 最基本的索引,它没有任何限制
    • 唯一索引:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值组合必须唯一
    • 主键索引:一种特殊的唯一索引,不允许有空值。一般在建表时同时创建主键索引
    • 组合索引:顾名思义,就是将单列索引进行组合
    • 外键索引:只有InnoDB引擎支持外键索引,用来保证数据的一致性、完整性和实现级联操作
    • 全文索引:快速匹配全部文档的方式。InnoDB引擎5.6版本后才支持全文索引。MEMORY引擎不支持
  • 结构分类
    • B+Tree索引 :MySQL使用最频繁的一个索引数据结构,是InnoDB和MyISAM存储引擎默认的索引类型
    • Hash索引 : MySQL中Memory存储引擎默认支持的索引类型
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL简述1 的相关文章

  • Yii2 从 MySQL 中的表登录的分步指南

    我开始在 Yii2 中迈出第一步 到目前为止 我已经能够编写一个应用程序并将数据库中的表连接到它 就像我在 Yii1 中学到的那样 该表是contacts我的创建视图中的表单将数据发送到数据库 没有任何问题 问题是我只能在 Yii2 内置的
  • MySQL中如何重置表的自增列

    我有一张桌子 它的第一列sl是自动递增的 填充表格后 我删除了前两行 第一个条目有sl1 是否可以重置为1维持AI 我正在使用 PHP MyAdmin ALTER TABLE tablename AUTO INCREMENT 1
  • 如何设置 Hibernate 读取/写入不同的数据源?

    使用 Spring 和 Hibernate 我想写入一个 MySQL 主数据库 并从基于云的 Java Web 应用程序中的另一个复制从属数据库中读取数据 我找不到对应用程序代码透明的解决方案 我真的不想更改我的 DAO 来管理不同的 Se
  • Laravel 4 - JOIN - 相同的列名

    我目前使用此代码从数据库中检索所需的数据 query DB table packages gt join assigned packages function join use id join gt on packages id assig
  • Navicat 中的 MySQL 视图 - 如何定义“主键”?

    当我在 Navicat 中定义视图时 经常会收到以下消息 xxx 没有主键 对此表的更新将使用以下伪语句完成 UPDATE xxx SET ModifiedFieldsAndValues WHERE AllFieldsAndOldValue
  • 将歌词存储在 MySQL 数据库中

    我想知道在 mysql 数据库中存储音乐 歌词 的最佳方式是什么 以及用于此目的的设置是什么 另外 我想要表格来存储断线 我正在考虑使用 指示新行并使用 php 替换字符串 我不知道从哪里开始 或者使用什么参数 varchar int 我知
  • MySQL Spatial CONTAINS 显示错误结果

    我的 MySQL 空间搜索有一个奇怪的行为 我在 GEOM 字段 葡萄牙边界 中创建了一个多边形 然后我尝试在内部找到一个点 发现没问题 下一次尝试是查找多边形外部的点 但查询仍返回 1 个找到的行 请帮忙 我做错了什么 为什么它会找到多边
  • 获取直方图数据

    有没有办法在 MySQL 中指定 bin 大小 现在 我正在尝试以下 SQL 查询 select total count total from faults GROUP BY total 生成的数据足够好 但行太多 我需要的是一种将数据分组
  • 如何从java中的字符串时间戳中提取日期和时间

    我正在获取日期和时间String TIMESTAMP来自服务器的 MySQL 格式如下 2014 02 15 05 18 08 我想要的是提取日期DD MM YYYY格式和时间HH MM SS AM PM格式 而且这个时间戳的时区是不同的
  • 如何在函数内部使用 require_once [重复]

    这个问题在这里已经有答案了 你好 我想在函数内使用 require once 但不起作用 实际上我的页面中有三个函数我该怎么做 它在外面工作但不在函数内部 请问有谁吗 这是我的代码
  • 如何更改Linux服务器中的MySQL表名不区分大小写?

    我正在开发一个旧网站 该网站曾经托管在 Apple 服务器上 当它迁移到新的 Linux 服务器时 它停止工作 我很确定这是因为 php 脚本中使用的所有 MySQL 查询对于表名都有不同的大小写组合 我不知道为什么原始开发人员在创建表名或
  • Session_set_save_handler 未设置

    我在设置 session set save handler 时遇到问题 我将 php ini 配置为 session handler user 这个简单的测试失败了 Define custom session handler if sess
  • 我应该安装哪个驱动程序才能使用 powershell 运行 mysqlcommand?

    我安装了 mysql 连接器 ODBC 5 1 8 来运行 sqlcommand 但出现此错误 Cannot find type MySql Data MySqlClient MySqlConnection make sure the as
  • mysql 将 varchar 字段排序为整数

    我的表中有一个 varchar 字段 我想对其进行排序 但我需要将此字段作为整数处理 意思是如果按文本排序 顺序是 19 2 20 但我想得到正确的顺序 2 19 20 谁能帮我 我不知何故没有设法运行查询CAST 我总是得到Error C
  • MySQL - 查找与连接表中的所有行匹配的行

    表 1 曲目 表 2 词汇表 表 3 N M 轨道有单词 trackwords 找到包含所有单词的所有曲目 目前查询如下 SELECT DISTINCT t id FROM track as t Left Join trackwords a
  • Sails 嵌套模型集合

    我有 3 个型号 用户模型 module exports schema true attributes login type string required true hosts collection host via owners acc
  • 是否可以使用 LOAD DATA INFILE 类型命令来更新数据库中的行?

    伪表 primary key first name last name date of birth 1 John Smith 07 04 1982 眼下名包含多行的用户全名 期望的结果是分割数据 因此first name包含 John la
  • 检测 MySQL 中的 utf8 损坏字符

    我有一个数据库 其中有一堆损坏的 utf8 字符分散在多个表中 字符列表不是很广泛 AFAIK 修复给定的表非常简单 update orderItem set itemName replace itemName 但我无法找到检测损坏字符的方
  • 删除 ibdata1 后 MySQL 表消失了

    几天前 经过一番谷歌搜索后 我发现了这篇文章 我无法再让 mysql 运行了 xampp XAMPP MySQL 意外关闭 https stackoverflow com questions 18022809 xampp mysql shu
  • 在 Bluemix 中激活 PHP 扩展

    这纯粹是 Bluemix 问题 我的代码在本地主机上顺利运行 但是当我将其迁移到 Bluemix 时 我的数据库连接失败了 检查日志 我发现问题 调用未定义的函数 mysqli init HTTP 响应 500 我发现扩展已被禁用以使其更小

随机推荐

  • VTK C++版本本地编译(含OOCT编译及创建项目)

    官方编译 以Linux为主 也有Window的处理方式 可以参考 讲述Windows环境下如何进行处理 前期准备 VTK ZIP 建议下载最新版 否则会出错 也可按照需要自行选择 CMake Visualstudio 版本无要求 我下载的是
  • [仿真]PMSM矢量控制——滑模速度环

    PMSM在Simulink下的FOC滑模速度环仿真 摘要 PMSM的FOC模型 PI速度环 PMSM的FOC模型 滑模速度环 关于滑模速度环改进的讨论 摘要 本文将通过一个PMSM在Simulink下的FOC仿真 来对比PI速度环和滑模速度
  • echarts地图的常见用法:基本使用、区域颜色分级、水波动画、区域轮播、给地图添加背景图片和图标、3d地图、飞线图

    前言 最近几天用echarts做中国地图 就把以前写的demo 在vue中实现中国地图 拿来用 结果到项目里直接报错了 后来发现是因为版本的问题 没办法只能从头进行踩坑了 以下内容基于vue3 和 echarts 5 32 常用的功能应该就
  • 在Unity中使用暂停的小技巧

    很多人在游戏中写暂停脚本的时候 经常会想到 Time timeScale 0 这种方法 但是 Time timeScale 只是能暂停部分东西 如果在 update 函数中持续改变一个物体的位置 这种位置改变貌似是不会受到暂停影响的 比如
  • pcl make failed - libSM.so:

    usr lib x86 64 linux gnu libSM so undefined reference to uuid generate UUID 1 0 usr lib x86 64 linux gnu libSM so undefi
  • php 接收及发送POST/GET请求 接收Xml格式数据POST请求及发送

    补充三点说明 1 Get请求数据根据索引关键字直接从全局变量 GET中获取 无需再调用urldecode解码 GET 数组 存储Get请求字符串 用 划分字符串为数组 数组元素的形式为 a b 2 POST请求字符串形式的数据同样可以根据索
  • SqlServer2008如何解析Json—附详细代码

    1 在数据库中创建存储过程parseJSON 具体文件请在如下链接下载 链接 https pan baidu com s 1a aNmSKk yvv9wQTP3DCsg pwd yxwx 提取码 yxwx 2 具体使用方法如下 DECLAR
  • jeckins安装以及构建github上的项目

    1 安装Jenkins 下载地址 http jenkins ci org 选择Windows的native package进行下载 安装过程与所有的windows安装程序一样 简单和傻瓜 不说了 安装完成之后会自动创建一个windows服务
  • VMware安装Windows Server 2003提示Operating System not found

    VMware安装Windows Server 2003提示Operating System not found 解决方法 首先 检查虚拟机设置里的设备状态的启动时连接是不是没勾选 还是不行的话 换一个ISO文件 正常的文件大小是600多兆
  • EMQ关闭MQTT客户端匿名认证

    本文默认已经安装并且开启emqttd 做的事是关闭MQTT客户端匿名认证并且通过username和passward认证 且有一定的Linux命令基础 环境 Ubuntu16 04 emq v3 2 1 正文 关闭匿名认证 emq安装时 默认
  • MATLAB数据预处理之缺失值插补

    文章目录 前言 1 加载原始数据 2 查找缺失值并填充缺失值 总结 2021年4月5日09 51 56更新 2021年5月18日10 46 15更新 2022年10月15日07 25 01更新 参考资料 前言 现实中采集的原始数据不一定满足
  • Apache HTTP Server 2.4.49 路径穿越漏洞复现及利用

    漏洞介绍 Apache HTTP Server是Apache基金会开源的一款流行的HTTP服务器 在其2 4 49版本中 引入了一个路径穿越漏洞 满足下面两个条件的Apache服务器将会受到影响 版本等于2 4 49 穿越的目录允许被访问
  • html任务3 模拟滚动条,vue3系列:vue3.0自定义虚拟滚动条V3Scroll

    Desc Vue3 0虚拟滚动条组件V3Scroll Time andy by 2021 01 About Q 282310962 wx xy190310 props Vue3 x自定义指令写法 监听DOM尺寸变化 directives r
  • 微信小程序之基础指南

    目录 1 申请账号 2 微信开发者工具 3 小程序代码构成 3 1 JSON配置 3 1 1 小程序全局配置app json 3 1 2 小程序页面配置 3 1 3 sitemap 配置 4 小程序框架 4 1 场景值 4 2 注册小程序
  • 探密微信小程序开发中的OpenlD

    说到微信小程序开发 我们不得不提到原生系统中自带的OPENiD 用户在跟公众号交互时 为了让程序识别用户的身份 需要有一个身份标识 出于对用户信息安全的考虑 保护用户隐私 微信没有暴露用户的微信号 而是对开发者提供OpenlD 它是一个由数
  • 数学建模(三)—— 自动化车床管理

    一 题目要求 二 相关的基础知识 2 1 正态分布的假设检验 2 2 正态分布的概率 三 问题分析 四 模型的建立与求解 4 1 数据处理及分析 4 2 问题一模型的建立与求解 4 2 1 问题一模型的建立 4 2 2 问题一模型的求解 4
  • 面试复习题--音视频

    1 音频处理 oboe openSL es AAudio 2 视频处理 ffmpeg 3 图片处理 GPUImage OpenCV fastCV 4 图形基础 skia Vulkan
  • 匿名信V1.4.5.1版本更新“数据大屏”功能

    匿名信V1 4 5 1版本更新 数据大屏 功能 源码下载 匿名信h5源码 万策云盘 匿名信安装教程 匿名信v1 4 4源码下载 安装教程 匿名信 廖万里的博客 本文链接 匿名信V1 4 5 1版本更新 数据大屏 功能 匿名信 廖万里的博客
  • java中long最大值源码表示_通过JDK源码角度分析Long类详解

    概况 Java的Long类主要的作用就是对基本类型long进行封装 提供了一些处理long类型的方法 比如long到String类型的转换方法或String类型到long类型的转换方法 当然也包含与其他类型之间的转换方法 除此之外还有一些位
  • MySQL简述1

    MySQL是什么 MySQL优点 MySQL的四种分类 数据库的三大范式 多表查询 左连接 右连接 内连接 交叉连接 显式 隐式 子查询 事物 特性 原子性 一致性 隔离性 持久性 并发问题 脏读 读未提交 不可重复读 读已提交 幻读 可重