MySQL操作相关知识点个人总结
一、数据库创建相关1.编码集创建数据库的时候有两个编码集数据库编码集数据库未来存储数据的编码格式数据库校验集数据库进行字段比较使用的编码采用什么编码集决定存取数据时采用什么编码操作和编码必须是一致的比如通过大写A还是小写a进行查找不同编码集有不同的效果。编码集确定后此后创建的表会默认继承数据库的编码规则。2.备份数据库备份的本质是把数据库上所有做过的操作都记录下来所以要恢复备份的数据库本质是将这些记录的操作再跑一遍。二、表的创建相关可使用不同存储引擎创建表修改某一列的属性不是定向修改而是直接覆盖。不要轻易删除表或修改表结构因为数据库是程序员负责维护的最靠近底层的模块一旦修改所有上层相关操作都可能会出问题。三、数据类型约束用于保证插入的数据一定是合法的这样程序员才能放心使用。数据类型本身是一种约束比如插入数据超过其类型的界限mysql会直接拦截这和语言不一样语言是运行时才会报错。1为什么有这么多类型其实和语言一样类型不同占用的空间也不同根据场景选择合适的类型从而减少空间的浪费。2.类型选讲1char类型MYSQL的一个字符和C不同不是一个字节。一个汉字底层虽然占多字节在MYSQL中也叫一个字符utf中一个字符占用三个字节所以建表时char(2)可以塞两个英文字母也可以塞两个汉字2enum和set虽然看起来存储的是选项但实际上存储的是代码既可以插入数字也可以插入选项文本。不过集合采用位图存储所以输入的数字会换算成对应的集合如1011代表第1、2、4个选项被选中。四、表的其它约束前面提到数据类型本身是一种约束它保证的是字段的正确性但还需要有额外的约束从业务逻辑角度保证数据的正确性如两个人不可能拥有同样的身份证号码。下面挑选一些约束进行介绍1.空属性、not null与default在MYSQL中NULL代表没有值空代表内容为空。如果通过default设置了默认值同时设置为not null插入时不填写值没有问题。如果没设置默认值而设置了not null就会报错至少要插入一个空值。2.自增长如果用别的值来截断他会就着新值进行自增。此外可以设定自增的起始值一个表最多一个自增长。3.主键主键让数据具有唯一性。可以建完表后再添加或删除主键添加时数据本身不能有重复否则无法添加。4.复合主键如果多列数据绑在一起设定主键这些数据就叫复合主键比如一个学生和一门课程形成一对信息任何表只会有一个主键因为多个主键必然形成复合主键5.唯一键唯一键同样起到使某列具有唯一性的作用。但主键不能为空而唯一键可以为空。主键和唯一键互相补充通常只有特定标识作为主键和复合键比如学号而唯一键用来标识具有业务含义的数据如成绩等等。6.外键存在的意义首先逻辑上有关联的数据不一定会放在一个表里比如班级分类文科班、理科班以及学生表班级、姓名...但假如逻辑上两张有关联的表具有约束关系就需要用外键。比如学生表中某一位学生不应该归属于不存在的班级。此时班级表作为主表学生表作为从表。五、表的查询1.插入value后不写要插入哪些列默认是全列插入需要填写所有不允许为空的列。在value后圆括号后带逗号可以继续插入更多的行插入和键冲突时可以选择直接替换也就是用replace直接插入2.筛选这里重点讲一下查询语句的顺序mysql不是按照书写顺序执行的而是按下面的顺序FROM首先确定从哪张表获取数据。WHERE对表中的原始行进行过滤。此时数据库还在看原始数据它只知道这些原始列根本还不知道你后来打算给表达式结果或列本身叫别名。GROUP BY如果有分组在这一步进行。HAVING对分组后的数据进行过滤这里可以使用聚合函数。SELECTselect本质指定最终结果显示哪些列或表达式实际上表的内容到此已经全部出来了。ORDER BY排序是在select显示出来后进行的。LIMIT限制返回行数在排序后进行。需要注意的是运算后要用select显示时列名可以用as替换但where不能这个别名因为where比select靠前。而having虽然实际比select要后但MySQL对其进行了扩展使得having可以使用别名在实际执行时会自动换回与原名。如果HAVING在SELECT之后数据库必须先计算出所有结果、起好别名然后再去过滤掉不符合条件的行。这在性能上是极大的浪费——既然这组数据最后都要被扔掉为什么还要费劲给它计算别名并展示出来呢3.删除表使用delete清除表后自动计数不会归0,而使用truncate就可以归零计数这个命令也不走事物即不被记录到日志里是危险的4.删除重复数据的实际操作创建新表插入数据后覆盖原表以免数据删错或导致文件系统inode分布不均匀。5.对聚合以及表的理解分组和聚合是两个概念先将数据分好组然后再用聚合函数将每个组形式上变为一行统计后的数据。而这些中间过程形成的都是表所以形式上MYSQL操作中一切皆表。六、复合查询复合查询看似复杂只要牢记子查询、笛卡尔积的结果都只是一张新表主查询只是对这张新表做查询就会很明了当然还是得靠多练习from后面跟两张表它们就会做笛卡尔积也就是组合得到一张新表笛卡尔积后要做无效信息过滤此外多表联合时相同名称的列应取别名。如果两张表是同一张表就叫自连接自连接前两张表分别要起别名。子句返回的虽然是表但如果是一行一列就可以直接在where语句中和列属性做相等判断

相关新闻

装饰模式详解:不靠继承也能动态扩展对象功能(含可运行代码 + 与继承/适配器辨析)

装饰模式详解:不靠继承也能动态扩展对象功能(含可运行代码 + 与继承/适配器辨析)

一、装饰模式是什么 装饰模式动态地给一个对象添加额外的职责。就增加功能而言,装饰模式相比生成子类(继承)更为灵活。 核心思想:把"核心功能"和"附加功能"分开,附加功能做成一个个"装饰器&q…

2026/10/9 7:56:25 阅读更多 →
函数递归知识

函数递归知识

函数递归知识 文章目录函数递归知识一.什么是递归(一)递归的思想(二)递归的限制条件二.递归举例(一)举例1:求n的阶乘1.分析和代码实现2.画图推演(二)举例2:顺…

2026/10/9 7:56:24 阅读更多 →
数据库课程设计模板:学生成绩管理系统表结构与SQL实战

数据库课程设计模板:学生成绩管理系统表结构与SQL实战

简介:这份资源是面向高校数据库课程设计场景的学生成绩管理系统模板文档,适合正在完成数据库课设、需要参考完整设计流程与报告结构的本科生或自学者。文档以Microsoft SQL Server 2000为设计环境,围绕需求分析、概念模型、逻辑与物理结构设计…

2026/10/9 7:55:24 阅读更多 →

最新新闻

Java老系统AI改造实战:低成本接入大模型与RAG

Java老系统AI改造实战:低成本接入大模型与RAG

很多企业手头都压着一套跑了好几年的Java老系统,Spring Boot MyBatis,数据库里攒了不少业务数据,接口文档零零散散,领导突然说要“接入AI”。我的建议是:别慌,别想着重写,更别因为这事把一个好…

2026/10/9 8:23:06 阅读更多 →
每日打卡5:从微习惯到高效任务管理的实战指南

每日打卡5:从微习惯到高效任务管理的实战指南

“每日打卡5”这个标题乍一看特别简单,甚至有点没头没尾,但真正上手做过习惯养成、任务管理的人,一眼就能明白它背后的分量。打卡不是“每天记一笔”那么轻飘飘的事,它是一套把抽象目标变成具体动作的反馈系统,而“5”…

2026/10/9 8:23:06 阅读更多 →
系统全盘备份与还原实战:用Dism++打造一键恢复的工作环境

系统全盘备份与还原实战:用Dism++打造一键恢复的工作环境

重装系统最烦人的不是丢数据,而是丢"工作状态"。我的办公电脑里装了几十个软件,每个软件还有各自的账号登录态、窗口布局、快捷键设置和启动项,哪怕用U盘把安装包全留好,重新装一遍也要折腾大半天。更别说Windows更新抽…

2026/10/9 8:23:06 阅读更多 →
幼儿园管理系统开发实战:选班并发控制与膳食过敏原管理

幼儿园管理系统开发实战:选班并发控制与膳食过敏原管理

接到幼儿园管理系统这个项目的时候,我心里是有点发怵的。找我的人是一家民办连锁幼儿园的园长,她给我看了三个竞品系统的报价,然后补了一句:我们也想做个软件,但别像他们那样——光有个花名册,老师还得天天…

2026/10/9 8:23:06 阅读更多 →
JavaWeb毕设实战:在线教务管理系统架构与核心模块解析

JavaWeb毕设实战:在线教务管理系统架构与核心模块解析

简介:一份基于SSM框架(Spring、SpringMVC、MyBatis)的JavaWeb在线教务管理系统完整源代码,面向计算机专业学生与毕业设计开发者,尤其适合需要课程设计或毕设参考的JavaWeb入门者。系统涵盖课程、教师、学生等基础信息管…

2026/10/9 8:23:06 阅读更多 →
虚拟机创建全指南:从选型、装系统到网络配置与报错排查

虚拟机创建全指南:从选型、装系统到网络配置与报错排查

装虚拟机这件事,乍一看就是个"向导里点下一步"的活,但真正把虚拟机创建出来、装好系统、配好网络、用顺手的人,其实并不多。这些年我帮同事、朋友处理过的虚拟机问题,从"安装 Linux 蓝屏"到"VMware 无法…

2026/10/9 8:22:05 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →