深入了解 MySQL:从基础到高级特性
引言
在当今数字化时代,数据的存储和管理至关重要。MySQL 作为一款广泛使用的开源关系型数据库管理系统(RDBMS),凭借其高性能、可靠性和易用性,成为众多开发者和企业的首选。本文将详细介绍 MySQL 的基础概念、安装启动、基本操作命令以及高级特性,并给出丰富的命令示例,帮助你全面掌握 MySQL 的使用。
一、MySQL 基础概念
数据库
数据库就像是一个大容器,用于存储各种数据。在 MySQL 里,你可以创建多个不同的数据库,以此来组织和管理不同类型的数据,就像不同的文件夹存放不同类型的文件一样。
表
表是数据库中存储数据的基本结构,由行和列构成。每一列代表一个字段,规定了数据的类型和属性;每一行则代表一条记录,包含各个字段的具体值。可以把表想象成一个 Excel 表格,列就是表头,行就是具体的数据行。
字段
字段是表中的列,每个字段都有特定的数据类型,如整数、字符串、日期等,这些数据类型用于限制存储的数据格式,确保数据的一致性和准确性。
记录
记录是表中的行,它包含了表中各个字段的具体值,代表一个完整的数据实体。例如在一个员工信息表中,一条记录就可能包含某个员工的姓名、年龄、部门等具体信息。
二、MySQL 安装与启动
安装
MySQL 的安装过程会因操作系统的不同而有所差异。下面以 Ubuntu 系统为例,介绍具体的安装步骤:
sudo apt update
sudo apt install mysql-server
如果你使用的是 Windows 系统,可以从 MySQL 官方网站下载安装程序,然后按照安装向导的提示进行操作。
启动与停止
在 Ubuntu 系统中,你可以使用以下命令来启动、停止和重启 MySQL 服务,还能设置其开机自启:
# 启动 MySQL 服务
sudo systemctl start mysql
# 停止 MySQL 服务
sudo systemctl stop mysql
# 重启 MySQL 服务
sudo systemctl restart mysql
# 设置 MySQL 服务开机自启
sudo systemctl enable mysql
三、MySQL 基本操作命令
登录 MySQL
使用以下命令登录 MySQL 服务器,输入命令后会提示你输入 MySQL 用户的密码:
mysql -u root -p
其中,-u 用于指定用户名,这里的 root 是 MySQL 的超级用户;-p 表示需要输入密码。
数据库操作
创建数据库
CREATE DATABASE mydatabase;
此命令会创建一个名为 mydatabase 的数据库。
查看所有数据库
SHOW DATABASES;
执行该命令后,会列出 MySQL 服务器上的所有数据库。
使用数据库
USE mydatabase;
这个命令会将当前的操作上下文切换到 mydatabase 数据库,之后的操作都会针对该数据库进行。
删除数据库
DROP DATABASE mydatabase;
该命令会删除名为 mydatabase 的数据库,需要注意的是,删除后数据将无法恢复,请谨慎使用。
表操作
创建表
CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100) NOT NULL,age INT,department VARCHAR(50)
);
此命令创建了一个名为 employees 的表,包含 id、name、age 和 department 四个字段。id 字段是自增的主键,name 字段不能为空。
查看表结构
DESCRIBE employees;
执行该命令会显示 employees 表的详细结构,包括字段名、数据类型、是否允许为空等信息。
查看所有表
SHOW TABLES;
该命令会列出当前数据库中的所有表。
修改表结构
-- 添加字段
ALTER TABLE employees ADD COLUMN salary DECIMAL(10, 2);
-- 修改字段类型
ALTER TABLE employees MODIFY COLUMN age TINYINT;
-- 删除字段
ALTER TABLE employees DROP COLUMN department;
删除表
DROP TABLE employees;
该命令会删除 employees 表,删除后数据将无法恢复,请谨慎使用。
数据操作
插入数据
INSERT INTO employees (name, age, salary) VALUES ('John Doe', 30, 5000.00);
此命令向 employees 表中插入一条记录,包含 name、age 和 salary 三个字段的值。
查询数据
-- 查询所有记录
SELECT * FROM employees;
-- 查询指定字段
SELECT name, age FROM employees;
-- 条件查询
SELECT * FROM employees WHERE age > 25;
-- 排序查询
SELECT * FROM employees ORDER BY age DESC;
更新数据
UPDATE employees SET salary = 5500.00 WHERE name = 'John Doe';
此命令将 employees 表中 name 为 John Doe 的记录的 salary 字段更新为 5500.00。
删除数据
DELETE FROM employees WHERE age < 20;
该命令会删除 employees 表中 age 小于 20 的所有记录。
其他常用命令
创建用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
此命令创建了一个名为 newuser 的用户,该用户只能从本地(localhost)登录,密码为 password。
授予权限
GRANT ALL PRIVILEGES ON mydatabase.* TO 'newuser'@'localhost';
该命令将 mydatabase 数据库的所有权限授予 newuser 用户。
刷新权限
FLUSH PRIVILEGES;
在修改用户权限后,需要执行此命令使权限生效。
退出 MySQL
EXIT;
此命令用于退出 MySQL 命令行界面。
四、MySQL 高级特性
索引
索引是一种特殊的数据结构,用于提高数据库查询的速度。你可以在表的一个或多个字段上创建索引,MySQL 会根据索引快速定位符合条件的记录。
-- 创建索引
CREATE INDEX idx_name ON employees (name);
-- 删除索引
DROP INDEX idx_name ON employees;
事务
事务是一组不可分割的数据库操作序列,要么全部执行成功,要么全部失败回滚。在 MySQL 中,可以使用以下命令管理事务:
-- 开始事务
START TRANSACTION;
-- 执行一系列操作
INSERT INTO employees (name, age) VALUES ('Jane Smith', 25);
UPDATE employees SET age = 26 WHERE name = 'Jane Smith';
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;
存储过程
存储过程是一组预编译的 SQL 语句集合,可以在数据库中存储和重复使用。
-- 创建存储过程
DELIMITER //
CREATE PROCEDURE GetEmployeesByAge(IN min_age INT)
BEGINSELECT * FROM employees WHERE age >= min_age;
END //
DELIMITER ;-- 调用存储过程
CALL GetEmployeesByAge(25);
视图
视图是虚拟的表,它基于 SQL 查询语句的结果集。视图不实际存储数据,而是在查询时动态生成结果。
-- 创建视图
CREATE VIEW young_employees AS
SELECT * FROM employees WHERE age < 30;-- 查询视图
SELECT * FROM young_employees;
时光匆匆,一篇博客又到了结尾处啦。真心感谢每一位愿意花时间阅读我文字的朋友,希望你们每天都过得开开心心的,生活顺顺利利哦,咱们下次再通过文字‘相遇’呀。
相关文章:
深入了解 MySQL:从基础到高级特性
引言 在当今数字化时代,数据的存储和管理至关重要。MySQL 作为一款广泛使用的开源关系型数据库管理系统(RDBMS),凭借其高性能、可靠性和易用性,成为众多开发者和企业的首选。本文将详细介绍 MySQL 的基础概念、安装启…...
OSPF基础(1):工作过程、状态机、更新
OSPF基础 1、技术背景(与RIP密不可分,因为RIP中存在的问题) RIP中存在最大跳数为15的限制,不能适应大规模组网周期性发送全部路由信息,占用大量的带宽资源以路由收敛速度慢以跳数作为度量值存在路由环路可能性每隔30秒…...
工业相机如何获得更好的图像色彩
如何获得更好的图像色彩 大部分的工业自动化检测中对物体的色彩信息并不敏感,因此会使用黑白的相机,但是在显微镜成像、颜色分类识别等领域,相机的色彩还原就显得格外重要,在调节相机色彩方面的参数时,有以下几个方面需…...
使用requestAnimationFrame减少浏览器重绘
文章目录 介绍使用使用rAF前使用rAF后 介绍 在屏幕中,浏览器通常都以60FPS(1/60 s)每帧更新屏幕,但是当前端绑定了一些高频事件,如鼠标移动,屏幕滚动、触摸滑动等时,在一帧的周期内,…...
Mac 终端命令大全
—目录操作— ꔷ mkdir 创建一个目录 mkdir dirname ꔷ rmdir 删除一个目录 rmdir dirname ꔷ mvdir 移动或重命名一个目录 mvdir dir1 dir2 ꔷ cd 改变当前目录 cd dirname ꔷ pwd 显示当前目录的路径名 pwd ꔷ ls 显示当前目录的内容 ls -la ꔷ dircmp 比较两个目录的内容 di…...
如何使用deepseek开发一个翻译API
什么是deepseek Deepseek 是一个基于人工智能技术的自然语言处理平台,提供了多种语言处理能力,包括文本翻译、语义分析、情感分析等。它通过深度学习模型和大规模语料库训练,能够实现高质量的文本翻译和多语言理解。Deepseek 的核心优势在于…...
vue如何解决跨域
文章目录 vue如何解决跨域1. 什么是跨域2. 如何解决2.1 CROS(Cross-Origin Resource Sharing,跨域资源共享)2.2 Proxy2.2.1 使用webpack proxy2.2.2 服务端代理转发2.2.3 通过nginx实现代理 vue如何解决跨域 1. 什么是跨域 跨域本质是浏览器…...
红包雨项目前端部分
创建项目 pnpm i -g vue/cli vue create red_pakage pnpm i sass sass-locader -D pnpm i --save normalize.css pnpm i --save-dev postcss-px-to-viewportpnpm i vantlatest-v2 -S pnpm i babel-plugin-import -Dhttps://vant.pro/vant/v2/#/zh-CN/<van-button click&…...
新版AndroidStudio 修改 jdk版本
一、问题 之前,在安卓项目中配置JDK和Gradle的过程非常直观,只需要进入Android Studio的File菜单中的Project Structure即可进行设置,十分方便。 如下图可以在这修改JDK: 但是升级AndroidStudio之后,比如我升级到了Android Stu…...
【golang学习之旅】使用VScode安装配置Go开发环境
1. 下载并安装Go 1.1 下载地址1.2 选择版本并下载1.3 安装目录1.4 验证是否安装成功 2. 配置环境变量 2.1 配置步骤2.2 GO部分环境变量说明 3. 下载或更新 Vscode 3.1 下载地址3.2 安装步骤 4. 为Go开发配置VScode 1. 下载并安装Go 1.1 下载地址 https://studygolang.com/dl…...
langchain教程-2.prompt
前言 该系列教程的代码: https://github.com/shar-pen/Langchain-MiniTutorial 我主要参考 langchain 官方教程, 有选择性的记录了一下学习内容 这是教程清单 1.初试langchain2.prompt3.OutputParser/输出解析4.model/vllm模型部署和langchain调用5.DocumentLoader/多种文档…...
GGML、GGUF、GPTQ 都是啥?
GGML、GGUF和GPTQ是三种与大型语言模型(LLM)量化和优化相关的技术和格式。它们各自有不同的特点和应用场景,下面将详细解释: 1. GGML(GPT-Generated Model Language) 定义:GGML是一种专为机器学习设计的张量库,由Georgi Gerganov创建。它最初的目标是通过单一文件格式…...
C++ 原码、反码、补码和位操作符
目录 一、原码、反码、补码 二、位操作符 1、左移操作符是双⽬操作符 移位规则:左边抛弃、右边补 0 2、右移操作符是双⽬操作符 逻辑右移:左边⽤ 0 填充,右边丢弃算术右移:左边⽤原该值的符号位填充,右边丢弃 3、…...
idea中git版本回退
idea中git版本回退 将dev分支代码合并到master分支执行回退步骤 将dev分支代码合并到master分支 #合并成功之后 执行回退步骤 #在指定的版本上 右键 #这里选择【Hard】彻底回退 #本地的master分支回退成功 #将本地的master强制推送到远程,需要执行命令 git p…...
【PostgreSQL内核学习 —— (WindowAgg(三))】
WindowAgg set_subquery_pathlist 部分函数解读check_and_push_window_quals 函数find_window_run_conditions 函数执行案例总结 计划器模块(set_plan_refs函数)set_windowagg_runcondition_references 函数执行案例 fix_windowagg_condition_expr 函数f…...
redis教程
Redis 教程 Redis 是一个开源的内存数据结构存储系统,用作数据库、缓存和消息代理。以下是一些基础知识和常用操作。 一、简介 Redis 支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。它具有高性能、高可用性和数据持久化的特性。 二、安…...
Python aiortc API
本研究的主要目的是基于Python aiortc api实现抓取本地设备媒体流(摄像机、麦克风)并与Web端实现P2P通话。本文章仅仅描述实现思路,索要源码请私信我。 1 demo-server解耦 1.1 原始代码解析 1.1.1 http服务器端 import argparse import …...
Transaction rolled back because it has been marked as rollback-only问题解决
1、背景 在我们的日常开发中,经常会存在在一个Service层中调用另外一个Service层的方法。比如:我们有一个TaskService,里面有一个execTask方法,且这个方法存在事物,这个方法在执行完之后,需要调用LogServi…...
深入浅出 DeepSeek V2 高效的MoE语言模型
今天,我们来聊聊 DeepSeek V2 高效的 MoE 语言模型,带大家一起深入理解这篇论文的精髓,同时,告诉大家如何将这些概念应用到实际中。 🌟 什么是 MoE?——Mixture of Experts(专家混合模型&#x…...
读书笔记--分布式架构的异步化和缓存技术原理及应用场景
本篇是在上一篇的基础上,主要对分布式应用架构下的异步化机制和缓存技术进行学习,主要记录和思考如下,供大家学习参考。大家知道原来传统的单一WAR应用中,由于所有数据都在同一个数据库中,因此事务问题一般借助数据库事…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
