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

MySQL 完整教程:从入门到精通

MySQL 完整教程:从入门到精通

MySQL 是一个广泛使用的关系型数据库管理系统,它使用结构化查询语言 (SQL) 来管理和操作数据。本文将详细介绍 MySQL 的基本概念、安装与配置、常用 SQL 语法、数据表的创建与管理、索引、视图、存储过程、触发器等高级特性,帮助你从入门到精通 MySQL。
在这里插入图片描述

1. MySQL 简介

MySQL 是一个开源的关系型数据库管理系统,广泛应用于 web 应用程序和其他数据密集型应用中。它的特点包括:

  • 高性能:支持高并发的读写操作。
  • 可靠性:提供 ACID 事务支持,确保数据的一致性和完整性。
  • 灵活性:支持多种数据类型和复杂的查询。
  • 可扩展性:适用于小型应用到大型企业级应用。

2. MySQL 安装与配置

2.1 下载与安装

前往 MySQL 官网 下载适合你操作系统的安装包。安装过程如下:

  1. 选择合适的版本并下载。
  2. 运行安装程序,选择适合的安装类型(如开发者默认)。
  3. 配置 MySQL 服务器,包括设置 root 密码、选择默认字符集等。
  4. 完成安装。

2.2 验证安装

打开终端(命令提示符),输入以下命令以检查 MySQL 是否安装成功:

mysql -u root -p

输入你设置的 root 密码,如果能够成功登录,说明安装成功。

在这里插入图片描述

3. MySQL 基本概念

3.1 数据库与数据表

  • 数据库:用于存储数据的容器,可以包含多个数据表。
  • 数据表:数据库中的基本数据结构,由行和列组成。

3.2 数据类型

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

  • 数值类型:INT、FLOAT、DOUBLE、DECIMAL
  • 字符串类型:CHAR、VARCHAR、TEXT、BLOB
  • 日期与时间类型:DATE、TIME、DATETIME、TIMESTAMP

4. 常用 SQL 语法

4.1 创建数据库与数据表

-- 创建数据库
CREATE DATABASE my_database;-- 使用数据库
USE my_database;-- 创建数据表
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,password VARCHAR(50) NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.2 插入数据

-- 插入单条数据
INSERT INTO users (username, password) VALUES ('alice', 'password123');-- 插入多条数据
INSERT INTO users (username, password) VALUES 
('bob', 'password456'),
('charlie', 'password789');

4.3 查询数据

-- 查询所有数据
SELECT * FROM users;-- 查询特定列
SELECT username, created_at FROM users;-- 使用 WHERE 条件查询
SELECT * FROM users WHERE username = 'alice';-- 使用 LIKE 模糊查询
SELECT * FROM users WHERE username LIKE 'a%';  -- 查询以 'a' 开头的用户名

4.4 更新数据

-- 更新单条数据
UPDATE users SET password = 'newpassword123' WHERE username = 'alice';-- 更新多条数据
UPDATE users SET password = 'defaultpassword' WHERE password = 'password456';

4.5 删除数据

-- 删除单条数据
DELETE FROM users WHERE username = 'bob';-- 删除所有数据
DELETE FROM users;  -- 注意:这将删除表内所有数据

5. 数据表的管理

5.1 修改数据表结构

-- 添加新列
ALTER TABLE users ADD email VARCHAR(100);-- 修改列的数据类型
ALTER TABLE users MODIFY password VARCHAR(100);-- 删除列
ALTER TABLE users DROP COLUMN email;

5.2 查看数据表结构

-- 查看数据表结构
DESCRIBE users;-- 或者使用
SHOW COLUMNS FROM users;

5.3 删除数据表

-- 删除数据表
DROP TABLE users;

6. 索引

索引可以加速查询操作。MySQL 支持多种类型的索引。

6.1 创建索引

-- 创建单列索引
CREATE INDEX idx_username ON users(username);-- 创建复合索引
CREATE INDEX idx_username_password ON users(username, password);

6.2 查看索引

SHOW INDEX FROM users;

6.3 删除索引

DROP INDEX idx_username ON users;

7. 视图

视图是一个虚拟表,可以简化复杂查询。

7.1 创建视图

CREATE VIEW user_view AS
SELECT username, created_at FROM users;

7.2 查询视图

SELECT * FROM user_view;

7.3 删除视图

DROP VIEW user_view;

8. 存储过程

存储过程是一组 SQL 语句的集合,可以重复执行。

8.1 创建存储过程

DELIMITER //CREATE PROCEDURE GetAllUsers()
BEGINSELECT * FROM users;
END //DELIMITER ;

8.2 调用存储过程

CALL GetAllUsers();

8.3 删除存储过程

DROP PROCEDURE GetAllUsers;

9. 触发器

触发器是在特定事件发生时自动执行的 SQL 语句。

9.1 创建触发器

DELIMITER //CREATE TRIGGER before_insert_users
BEFORE INSERT ON users
FOR EACH ROW
BEGINSET NEW.created_at = NOW();
END //DELIMITER ;

9.2 删除触发器

DROP TRIGGER before_insert_users;

10. 数据库备份与恢复

10.1 备份数据库

使用 mysqldump 命令备份数据库:

mysqldump -u root -p my_database > my_database_backup.sql

10.2 恢复数据库

使用 mysql 命令恢复数据库:

mysql -u root -p my_database < my_database_backup.sql

11. 常用的 MySQL 工具

  • MySQL Workbench:图形化管理工具,便于可视化操作数据库。
  • phpMyAdmin:基于 Web 的数据库管理工具,适合快速管理 MySQL 数据库。
  • DBeaver:一个开源的多数据库管理工具,支持多种数据库类型。

在这里插入图片描述

12. 总结

本文详细介绍了 MySQL 的基本概念、安装与配置、常用 SQL 语法、数据表管理、索引、视图、存储过程、触发器等内容。通过示例代码和图示,帮助你更好地理解和掌握 MySQL 的使用。希望这份教程能对你学习 MySQL 有所帮助,祝你在数据库管理中取得成功!

如果你有任何问题或建议,欢迎在评论区留言。感谢你的阅读!

相关文章:

MySQL 完整教程:从入门到精通

MySQL 完整教程&#xff1a;从入门到精通 MySQL 是一个广泛使用的关系型数据库管理系统&#xff0c;它使用结构化查询语言 (SQL) 来管理和操作数据。本文将详细介绍 MySQL 的基本概念、安装与配置、常用 SQL 语法、数据表的创建与管理、索引、视图、存储过程、触发器等高级特性…...

【贝叶斯公式】贝叶斯公式、贝叶斯定理、贝叶斯因子,似然比

一、是什么&#xff1f; 贝叶斯公式的本质在于它提供了一种在已有知识的基础上更新和调整我们对事件的信念的方式。具体来说&#xff0c;贝叶斯公式描述了后验概率&#xff08;即在观察到某些证据后更新的概率&#xff09;与先验概率&#xff08;即在没有观察证据之前的概率&a…...

[libos源码学习 1] Liboc协程生产者消费者举例

文章目录 1. CoRoutineEnv_t结构体用于管理协程环境 3 Liboc协程生产者消费者例子4 Liboc协程生产者消费者&#xff0c; 为什么队列不需要上锁&#xff1f;5. 两个协程访问资源不需要加队列吗5. 参考 1. CoRoutineEnv_t结构体用于管理协程环境 struct stCoRoutineEnv_t { stCo…...

Python OpenCV 图像改变

更改图像数据 通过 改像素点 或者 切片的区域 import cv2 import numpy as np img cv2.imread("image.jpg") print(img[3,5]) # 显示某位置(行3列5)的像素值( 如 [53 34 29] 它是有三通道 B G R 组成) img[3,5] (0,0,255) # 更改该位置的像素…...

k8s按需创建 PV和创建与使用 PVC

在 Kubernetes 中&#xff0c;PersistentVolume&#xff08;PV&#xff09;和 PersistentVolumeClaim&#xff08;PVC&#xff09;用于管理存储资源。PV 是集群中的存储资源&#xff0c;而 PVC 是 Pod 请求 PV 的方式。按需创建 PV 通常使用 StorageClass 实现动态存储分配&…...

揭秘云计算 | 2、业务需求推动IT发展

揭秘云计算 | 1、云从哪里来&#xff1f;-CSDN博客https://blog.csdn.net/Ultipa/article/details/143430941?spm1001.2014.3001.5502 书接上文&#xff1a; 过去几十年间IT行业从大型主机过渡到客户端/服务器&#xff0c;再过渡到现如今的万物互联&#xff0c;IT可把控的资…...

【系统面试篇】进程与线程类(2)(笔记)——进程调度、中断、异常、用户态、核心态

目录 一、相关面试题 1. 进程的调度算法有哪些&#xff1f; 调度原则 &#xff08;1&#xff09;先来先服务调度算法 &#xff08;2&#xff09;最短作业优先调度算法 &#xff08;3&#xff09;高响应比优先调度算法 &#xff08;4&#xff09;时间片轮转调度算法 &am…...

基于MySQL的企业专利数据高效查询与统计实现

背景 在进行产业链/产业评估工作时&#xff0c;我们需要对企业的专利进行评估&#xff0c;其中一个重要指标是统计企业每一年的专利数量。本文基于MySQL数据库&#xff0c;通过公司名称查询该公司每年的专利数&#xff0c;实现了高效的专利数据统计。 流程 项目流程概述如下&…...

热成像手机VS传统热成像仪:AORO A23为何更胜一筹?

热成像技术作为一种非接触式测温方法&#xff0c;广泛应用于石油化工巡检、电力巡检、应急救援、医疗、安防等“危、急、特”场景。提及热成像设备&#xff0c;人们往往会首先想到价格高昂、操作复杂且便携性有限的热成像仪。但是&#xff0c;随着技术的不断进步&#xff0c;市…...

Spring IoC——依赖注入

1. 依赖注入的介绍 DI&#xff0c;也就是依赖注入&#xff0c;在容器中建立的 bean &#xff08;对象&#xff09;与 bean 之间是有依赖关系的&#xff0c;如果直接把对象存在 IoC 容器中&#xff0c;那么就都是一个独立的对象&#xff0c;通过建立他们的依赖关系&#xff0c;…...

Linux 中,flock 对文件加锁

在Linux中&#xff0c;flock是一个用于对文件加锁的实用程序&#xff0c;它可以帮助协调多个进程对同一个文件的访问&#xff0c;避免出现数据不一致或冲突等问题。以下是对flock的详细介绍&#xff1a; 基本原理 flock通过在文件上设置锁来控制多个进程对该文件的并发访问。…...

CentOS下载ISO镜像的方法

步骤 1&#xff1a;访问CentOS官方网站 首先&#xff0c;打开浏览器&#xff0c;输入CentOS的官方网站地址&#xff1a;Download 在网站上找到ISO镜像的下载链接&#xff0c;通常位于“Downloads”或类似的页面上。 选择所需的CentOS版本和架构&#xff08;如x86_64&#xf…...

Node.js 入门指南:从零开始构建全栈应用

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;node.js篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来node.js篇专栏内容:node.js-入门指南&#xff1a;从零开始构建全栈应用 前言 大家好&#xff0c;我是青山。作…...

MYSQL 真实高并发下的死锁

https://pan.baidu.com/s/1nM3VQdbkNZhnK-wWboEYxA?pwdvwu6 下面是风控更新语句 ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2023-08-04 01:00:10 140188779017984 *** (1) TRANSACTION: TRANSACTION 895271870, ACTIVE 0 sec starting …...

Zookeeper 简介 | 特点 | 数据存储

1、简介 zk就是一个分布式文件系统&#xff0c;不过存储数据的量极小。 1. zookeeper是一个为分布式应用程序提供的一个分布式开源协调服务框架。是Google的Chubby的一个开源实现&#xff0c;是Hadoop和Hbase的重要组件。主要用于解决分布式集群中应用系统的一致性问题。 2. 提…...

设计模式之结构型模式---装饰器模式

目录 1.概述2.类图3.应用场景及优缺点3.1 应用场景3.2 优缺点3.2.1 优点3.2.2 缺点 4.实现4.1 案例类图4.2 代码实现4.2.1 定义抽象构建角色4.2.2 定义具体构建角色4.2.3 定义抽象装饰器角色4.2.4 定义具体装饰角色4.2.5 装饰器模式的使用 1.概述 装饰器模式是指在不改变现有对…...

Android Pair

Pair在Android中是一种轻量级的工具类&#xff0c;并不是严格意义上的数据结构。 数据结构是一组有组织的方式来存储和管理数据的方式&#xff0c;如数组、链表、栈、队列、树、图等&#xff0c;它们有自己的特性和操作规则。而Pair更像是一个简单的封装&#xff0c;用于在需要…...

华为荣耀曲面屏手机下面空白部分设置颜色的方法

荣耀部分机型下面有一块空白区域&#xff0c;如下图红框部分 设置这部分的颜色需要在themes.xml里面设置navigationBarColor属性 <item name"android:navigationBarColor">android:color/white</item>...

《C#语法一篇通》,有20万字,需8MB字节,宜48小时阅读,没准会继续完善

本文摘录了C#语法的主要内容&#xff0c;接近20万字。 所有鸡汤的味道都等于马尿&#xff01; 如果你相信任何所谓的鸡汤文章&#xff0c;智商堪忧。 计算机语言没有”好不好“之说&#xff0c;骗子才会告诉你哪个语言好&#xff0c;学好任何一本基础语言&#xff08;C&#…...

嵌入式硬件工程师的职业发展规划

嵌入式硬件工程师可以按照以下阶段进行职业发展规划&#xff1a; 1. **初级阶段&#xff08;1-3 年&#xff09; ** - **技术学习与积累**&#xff1a; **电路基础强化**&#xff1a; 深入学习模拟电路和数字电路知识&#xff0c;能够熟练分析和设计基本的电路&#xff0c;…...

『NAS』在绿联部署One API,统一管理你的所有大模型服务

点赞 关注 收藏 学会了 &#x1f4a1;整理了一个 NAS 专属玩法专栏&#xff0c;感兴趣的工友可以戳这里关注 &#x1f449; 《NAS邪修》 One API 是一个开源的接口管理与分发系统&#xff0c;它能将各种大模型的非标接口&#xff08;如 DeepSeek、Kimi、LongCat 等&#xff…...

突破语言壁垒:Unity游戏翻译破局工具如何重构跨文化体验

突破语言壁垒&#xff1a;Unity游戏翻译破局工具如何重构跨文化体验 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 当你满怀期待地启动一款国际热门Unity游戏&#xff0c;却被满屏陌生文字阻挡了探索脚步…...

内容营销对 SEO 有什么影响

<h3 id"seo">内容营销对 SEO 有什么影响</h3> <h4 id"">引言</h4> <p>在当今数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;和内容营销被广泛认为是网站流量和业务增长的关键驱动因素。许多企业在网站建设…...

teler IDS v3前瞻:eBPF技术与teler-waf集成带来的革命性变革

teler IDS v3前瞻&#xff1a;eBPF技术与teler-waf集成带来的革命性变革 【免费下载链接】teler Real-time HTTP Intrusion Detection 项目地址: https://gitcode.com/gh_mirrors/te/teler teler IDS作为一款实时HTTP入侵检测系统&#xff0c;在网络安全领域已经建立了坚…...

百度地图API实战:5分钟搞定JS坐标系转换(wgs84转bd09ll避坑指南)

百度地图坐标系转换实战&#xff1a;从原理到避坑的全方位指南 第一次在项目里集成百度地图时&#xff0c;我盯着屏幕上偏移了500多米的标记点愣了半天——明明从GPS设备获取的经纬度坐标完全正确&#xff0c;为什么在地图上显示的位置却差之千里&#xff1f;这个困扰无数开发者…...

09. CSS生成艺术创作指南:用代码绘制视觉诗篇

09. CSS生成艺术创作指南&#xff1a;用代码绘制视觉诗篇 引言 CSS 不仅仅是样式语言&#xff0c;它也是一种创作艺术的工具。通过 CSS&#xff0c;我们可以创建出令人惊叹的生成艺术作品&#xff0c;这些作品不仅美观&#xff0c;而且具有动态性和交互性。作为一名把代码当散文…...

RK3588上OpenCV+GStreamer播放RTSP卡成PPT?一个环境变量让帧率从7飙升到25+

RK3588视频开发实战&#xff1a;OpenCVGStreamer硬解码性能翻倍秘籍 在嵌入式视觉应用开发中&#xff0c;RK3588凭借其强大的多媒体处理能力成为众多开发者的首选平台。但当你在Python环境中使用OpenCV配合GStreamer进行RTSP视频流处理时&#xff0c;是否遇到过这样的尴尬&…...

YOLOv8特征可视化实战:如何用3种合并模式优化模型调试(附完整代码)

YOLOv8特征可视化实战&#xff1a;3种合并模式优化模型调试的工程实践 在计算机视觉领域&#xff0c;理解神经网络内部工作机制一直是提升模型性能的关键。YOLOv8作为当前最先进的实时目标检测框架之一&#xff0c;其内部特征层的可视化分析能够为模型调试提供直观依据。然而&a…...

MCP服务器开发踩坑实录,深度解析asyncio+FastAPI+MCPv0.5兼容性难题及热修复方案

第一章&#xff1a;MCP服务器开发踩坑实录&#xff0c;深度解析asyncioFastAPIMCPv0.5兼容性难题及热修复方案在基于MCP&#xff08;Model Context Protocol&#xff09;v0.5规范构建异步AI服务代理时&#xff0c;我们发现FastAPI 0.115 与标准asyncio事件循环存在隐式冲突&…...

SigmaStar SSD21X系列芯片:智能家居与工业控制的多场景显示解决方案

1. SigmaStar SSD21X系列芯片&#xff1a;智能家居与工业控制的显示利器 第一次接触SigmaStar SSD21X系列芯片是在一个智能门锁项目上。当时客户要求低成本实现高清彩色触控屏&#xff0c;还要支持人脸识别和远程控制。测试了几款方案后&#xff0c;SSD210的表现让我印象深刻—…...