【自学笔记】MySQL的重点知识点-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • MySQL重点知识点
      • MySQL知识点总结
        • 一、数据库基础
        • 二、MySQL的基本使用
        • 三、数据类型
        • 四、触发器(Trigger)
        • 五、存储引擎
        • 六、索引
        • 七、事务处理
        • 八、用户权限管理
  • 总结


MySQL重点知识点

MySQL知识点总结

一、数据库基础
  • 数据库定义:数据库是一个有组织的集合,用于存储和管理数据的系统。它提供数据的快速访问和处理,并支持数据的增加、修改、删除和查询。
  • 数据库管理系统(DBMS):数据库管理系统是数据库的核心组成部分,用于管理数据库的创建、维护、访问和操作。常见的DBMS包括MySQL、Oracle、SQL Server等。
  • 数据模型:不同的DBMS可能支持不同的数据模型,如关系型、文档型、图形型等。MySQL主要支持关系型数据模型。
二、MySQL的基本使用
  • 连接服务器:使用mysql -h 主机名 -P 端口号 -u 用户名 -p命令连接MySQL服务器。
  • 服务器管理:可以通过服务管理器对MySQL服务器进行启动、停止、暂停和重启等操作。
  • 数据库和表操作
    • 创建数据库:CREATE DATABASE 数据库名 charset utf8;
    • 查看数据库:SHOW DATABASES;
    • 选择数据库:USE 数据库名;
    • 删除数据库:DROP DATABASE 数据库名;
    • 创建表:CREATE TABLE 表名 (字段名1 类型 [(宽度) 约束条件], 字段名2 类型 [(宽度) 约束条件], ...);
    • 查看表结构:DESC 表名;
    • 删除表:DROP TABLE 表名;
三、数据类型

MySQL支持多种数据类型,包括:

  • 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT
  • 浮点类型:FLOAT、DOUBLE
  • 定点数类型:DECIMAL
  • 位类型:BIT
  • 日期时间类型:YEAR、TIME、DATE、DATETIME、TIMESTAMP
  • 文本字符串类型:CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT
  • 枚举类型:ENUM
  • 集合类型:SET
  • 二进制字符串类型:BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB
  • JSON类型:JSON对象、JSON数组
四、触发器(Trigger)
  • 定义:触发器是一种特殊的存储过程,它在某个表上的数据发生变化时自动执行。
  • 语法CREATE TRIGGER triggerName BEFORE|AFTER INSERT|UPDATE|DELETE ON tableName
  • 执行语句块:触发器可以包含单条SQL语句或由BEGIN...END结构组成的复合语句块。
  • 示例:当创建的员工的工资大于其领导时,就报错。
DELIMITER $
CREATE TRIGGER salary_check_trigger
BEFORE INSERT ON employees
FOR EACH ROW
BEGIN
    DECLARE mgr_sal DOUBLE;
    SELECT salary INTO mgr_sal FROM employees WHERE employee_id = NEW.manager_id;
    IF NEW.salary > mgr_sal THEN
        SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = '错误,插入的薪资高于其领导';
    END IF;
END$
DELIMITER ;
  • 查看触发器:使用SHOW TRIGGERS\G查看数据库中定义的所有触发器,使用SHOW CREATE TRIGGER 触发器名\G查看某个触发器的定义。
  • 删除触发器:使用DROP TRIGGER IF EXISTS 触发器名;删除触发器。
五、存储引擎
  • InnoDB:MySQL的默认存储引擎,支持事务处理、行级锁定和外键。
  • MyISAM:不支持事务处理,但提供了较快的查询速度。
  • 其他存储引擎:如Memory、CSV、Archive等,各有不同的特点和适用场景。
六、索引
  • 定义:索引是数据库表中一列或多列的值进行排序的一种结构,可以加快查询速度。
  • 类型:包括聚簇索引、非聚簇索引(二级索引、辅助索引)、联合索引等。
  • 创建索引:使用CREATE INDEX语句创建索引。
  • 查看索引:使用SHOW INDEX FROM 表名;查看表中的索引。
  • 删除索引:使用DROP INDEX语句删除索引。
七、事务处理
  • 定义:事务是一组要么全部执行成功,要么全部不执行的SQL语句。
  • 特性:ACID特性,即原子性、一致性、隔离性和持久性。
  • 控制语句
    • 开始事务:START TRANSACTION;
    • 提交事务:COMMIT;
    • 回滚事务:ROLLBACK;
八、用户权限管理
  • 创建用户:使用CREATE USER语句创建新用户。
  • 授权:使用GRANT语句为用户授权。
  • 查看权限:使用SHOW GRANTS FOR语句查看用户的权限。
  • 撤销权限:使用REVOKE语句撤销用户的权限。
  • 删除用户:使用DROP USER语句删除用户。

以上是MySQL的一些主要知识点,涵盖了数据库基础、MySQL的基本使用、数据类型、触发器、存储引擎、索引、事务处理以及用户权限管理等方面。

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,自学记录MySQL的重点知识点。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》

DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance)订阅 已识别 - 已识别问题,并且正在实施修复。 1月 29, 2025 - 20:57 CST 更新 - 我们将继续监控任何其他问题。 1月 28, 2025 - 22&am…

安卓(android)饭堂广播【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的(如果代码有错漏,可查看源码) 1.熟悉广播机制的实现流程。 2.掌握广播接收者的创建方式。 3.掌握广播的类型以及自定义官博的创建。 二、实验条件 熟悉广播机制、广播接收者的概念、广播接收者的创建方式、自定广播实现方式以及有…

分享|借鉴传统操作系统中分层内存系统的理念(虚拟上下文管理技术)提升LLMs在长上下文中的表现

《MemGPT: Towards LLMs as Operating Systems》 结论: 大语言模型(LLMs)上下文窗口受限问题的背景下, 提出了 MemGPT,通过类操作系统的分层内存系统的虚拟上下文管理技术, 提升 LLMs 在复杂人物&#…

games101-作业3

由于此次试验需要加载模型,涉及到本地环节,如果是windows系统,需要对main函数中的路径稍作改变: 这么写需要: #include "windows.h" 该段代码: #include "windows.h" int main(int ar…

Spring Boot 日志:项目的“行车记录仪”

一、什么是Spring Boot日志 (一)日志引入 在正式介绍日志之前,我们先来看看上篇文章中(Spring Boot 配置文件)中的验证码功能的一个代码片段: 这是一段校验用户输入的验证码是否正确的后端代码&#xff0c…

【大厂AI实践】OPPO:大规模知识图谱及其在小布助手中的应用

导读:OPPO知识图谱是OPPO数智工程系统小布助手团队主导、多团队协作建设的自研大规模通用知识图谱,目前已达到数亿实体和数十亿三元组的规模,主要落地在小布助手知识问答、电商搜索等场景。 本文主要分享OPPO知识图谱建设过程中算法相关的技…

机器学习周报-文献阅读

文章目录 摘要Abstract 1 相关知识1.1 WDN建模1.2 掩码操作(Masking Operation) 2 论文内容2.1 WDN信息的数据处理2.2 使用所收集的数据构造模型2.2.1 Gated graph neural network2.2.2 Masking operation2.2.3 Training loss2.2.4 Evaluation metrics 2…

工具的应用——安装copilot

一、介绍Copilot copilot是一个AI辅助编程的助手,作为需要拥抱AI的程序员可以从此尝试进入,至于好与不好,应当是小马过河,各有各的心得。这里不做评述。重点在安装copilot的过程中遇到了一些问题,然后把它总结下&…

后盾人JS--闭包明明白白

延伸函数环境生命周期 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> <…

顺启逆停程序

两台电机用Q0.0和Q0.1表示&#xff0c;分别有自身的启动和停止按钮&#xff0c;第一台电机启动后&#xff0c;第二台电机才能启动。停止时&#xff0c;第二台电机停止后&#xff0c;第一台电机才能停止。 1. 按下按钮SB1&#xff0c;接触器KM1线圈得电吸合&#xff0c;主触点…

登录授权流程

发起一个网络请求需要&#xff1a;1.请求地址 2.请求方式 3.请求参数 在检查中找到request method&#xff0c;在postman中设置同样的请求方式将登录的url接口复制到postman中&#xff08;json类型数据&#xff09;在payload中选择view parsed&#xff0c;将其填入Body-raw中 …

CUDA学习-内存访问

一 访存合并 1.1 说明 本部分内容主要参考: 搞懂 CUDA Shared Memory 上的 bank conflicts 和向量化指令(LDS.128 / float4)的访存特点 - 知乎 1.2 share memory结构 图1.1 share memory结构 放在 shared memory 中的数据是以 4 bytes(即 32 bits)作为 1 个 word,依…

基于Springboot的社区药房管理系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业多年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…

【力扣系列题目】最后一块石头的重量 分割回文串 验证回文串 等差数列划分{最大堆 背包 动态规划}

文章目录 七、最后一块石头的重量最后一块石头的重量【堆】[最后一块石头的重量 II](https://leetcode.cn/problems/last-stone-weight-ii/)【背包】 八、分割回文串分割回文串【分割子串方案数量】[分割回文串 II](https://leetcode.cn/problems/omKAoA/)【最少分割次数】[分割…

KIMI K1.5:用大语言模型扩展强化学习(论文翻译)

文章目录 KIMI K1.5技术报告摘要 1. 引言2. 方法&#xff1a;基于大语言模型的强化学习2.1 强化学习提示集整理2.2 长思维链监督微调2.3 强化学习2.3.1 问题设定2.3.2 策略优化2.3.3 长度惩罚2.3.4 采样策略2.3.5 训练方法的更多细节 2.4 长到短&#xff1a;短思维链模型的上下…

【Linux系统】进程间通信:实现命名管道通信

认识命名管道通信 命名管道通信的结构图示&#xff1a; 图中的 Server 和 Client 是不同的进程&#xff0c; Server 负责发送数据&#xff0c; Client 则是接收数据&#xff0c;进程之间通过命名管道进行数据通信 准备工作&#xff1a; 创建以下文件 Server.hpp #服务器类的…

SpringBoot Web开发(SpringMVC)

SpringBoot Web开发&#xff08;SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样&#xff0c;是围绕前端控制器模式设计的&#xff0c;其中中央 Servlet DispatcherServlet 做整体请求处理调度&#xff01; . 除了DispatcherServletSpringMVC还会提供其他…

Linux《基础指令》

在之前的Linux《Linux简介与环境的搭建》当中我们已经初步了解了Linux的由来和如何搭建Linux环境&#xff0c;那么接下来在本篇当中我们就要来学习Linux的基础指令。在此我们的学习是包括两个部分&#xff0c;即指令和关于Linux的基础知识&#xff1b;因此本篇指令和基础知识的…

我的求职面经:(1)C++里指针和数组的区别

经典问题&#xff1a; char s1[]"hello"; char *s2"hello"; 1、s1的值是放在栈上的&#xff0c;值是可以修改的&#xff0c;而hello是一个字符串常量放在静态存储区是不能修改的。 2、内存大小不一样 #include<stdio.h>int main(){char s1[]&quo…

react中如何获取dom元素

实现代码 const inputRef useRef(null) inputRef.current.focus()