【数据库】10分钟学会MySQL的增删改查:数据库、表、表记录操作指南

devtools/2025/3/17 1:07:37/

MySQL作为一种广泛使用的开源关系型数据库管理系统,提供了强大的数据操作功能。增删改查(CRUD)是数据库操作的核心,涵盖创建(Create)、读取(Read)、更新(Update)和删除(Delete)四个基本操作。本文将带你快速学习MySQL的增删改查,通过丰富的案例和13个实际应用场景,让你轻松掌握数据库操作。


一、数据库操作

首先,我们需要创建一个数据库,这是存储表和表记录的容器。

场景1:学校管理系统数据库

  1. 创建数据库

    CREATE DATABASE school;
    

    创建一个名为school数据库,用于存储学校管理系统的所有数据。

  2. 删除数据库

    DROP DATABASE school;
    

    当学校管理系统更新或废弃时,可以删除名为school数据库

  3. 查询数据库

    SHOW DATABASES;
    

    查询当前MySQL服务器中所有数据库的列表,以便确认school数据库是否已创建。

  4. 修改数据库

    RENAME DATABASE school TO school_new;
    

    school数据库重命名为school_new,以便进行数据库迁移或重命名操作。


二、表操作

接下来,我们在数据库中创建表,表是存储具体数据的地方。

场景2:学生信息表

  1. 创建表

    CREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,age INT NOT NULL,grade VARCHAR(10) NOT NULL 
    );
    

    创建一个名为students的表,包含学生ID、姓名、年龄和年级四个字段。

  2. 删除表

    DROP TABLE students;
    

    如果学生信息表的结构需要调整或不再使用,可以删除名为students的表。

  3. 查询表

    SHOW TABLES FROM school;
    

    查询school数据库中所有表的列表,以便确认students表是否已创建。

  4. 修改表

    ALTER TABLE students ADD COLUMN email VARCHAR(100) NOT NULL;
    

    students表中添加一个新列email,用于存储学生的电子邮箱地址。


三、表记录操作

现在,我们开始对表中的记录进行增删改查操作。

场景3:学生信息增删改查

  1. 插入记录(INSERT)

    INSERT INTO students (name, age, grade) VALUES ('Alice', 20, 'A');
    

    向学生表中添加一个新学生的信息,例如Alice,年龄20岁,年级A。

  2. 查询记录(SELECT)

    SELECT * FROM students WHERE grade = 'A';
    

    查询所有成绩为A的学生信息,以便了解优秀学生的分布情况。

  3. 更新记录(UPDATE)

    UPDATE students SET age = 21 WHERE name = 'Alice';
    

    更新特定学生的年龄信息,例如Alice的年龄从20岁更新为21岁。

  4. 删除记录(DELETE)

    DELETE FROM students WHERE id = 1;
    

    删除ID为1的学生记录,例如删除转学或毕业的学生信息。


四、进阶操作

接下来,我们将学习一些更高级的操作,这些操作在处理复杂数据时非常有用。

场景4:成绩查询与排序

  1. 条件查询

    SELECT * FROM students WHERE age > 18;
    

    查询所有年龄大于18岁的学生,以便筛选出符合成人教育条件的学生。

  2. 排序

    SELECT * FROM students ORDER BY age DESC;
    

    按年龄降序排列所有学生,以便生成按年龄排序的学生名单。

场景5:学生平均年龄计算

  1. 聚合函数

    SELECT AVG(age) AS average_age FROM students;
    

    计算所有学生的平均年龄,以便了解学生群体的年龄分布。

场景6:学生选课信息查询

  1. 连接查询

    假设我们有一个courses表,存储学生选修的课程信息。

    SELECT students.name, courses.name 
    FROM students 
    JOIN courses ON students.id = courses.student_id;
    

    查询每个学生及其选修的课程,以便在教务系统中列出学生的选课情况。


五、几个应用场景案例

场景7:员工管理系统

  1. 创建员工表

    CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,department VARCHAR(50) NOT NULL,salary DECIMAL(10, 2) NOT NULL 
    );
    

    创建一个名为employees的表,包含员工ID、姓名、部门和薪水四个字段。

  2. 查询特定部门的员工

    SELECT * FROM employees WHERE department = 'IT';
    

    查询IT部门的员工信息,以便了解IT部门的人员配置。

场景8:库存管理系统

  1. 创建商品表

    CREATE TABLE products (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,quantity INT NOT NULL,price DECIMAL(10, 2) NOT NULL 
    );
    

    创建一个名为products的表,包含商品ID、名称、数量和价格四个字段。

  2. 更新商品库存

    UPDATE products SET quantity = quantity - 1 WHERE id = 1;
    

    更新商品库存信息,例如减少ID为1的商品数量。

场景9:订单管理系统

  1. 创建订单表

    CREATE TABLE orders (id INT AUTO_INCREMENT PRIMARY KEY,customer_id INT NOT NULL,order_date DATE NOT NULL,total_amount DECIMAL(10, 2) NOT NULL,FOREIGN KEY (customer_id) REFERENCES customers(id)
    );
    

    创建一个名为orders的表,包含订单ID、客户ID、订单日期和总金额四个字段,并与客户表关联。

  2. 查询特定日期的订单

    SELECT * FROM orders WHERE order_date = '2023-04-01';
    

    查询2023年4月1日的订单信息,以便了解当天的销售情况。

场景10:图书管理系统

  1. 创建图书表

    CREATE TABLE books (id INT AUTO_INCREMENT PRIMARY KEY,title VARCHAR(100) NOT NULL,author VARCHAR(50) NOT NULL,available BOOLEAN NOT NULL DEFAULT TRUE 
    );
    

    创建一个名为books的表,包含图书ID、标题、作者和是否可借三个字段。

  2. 删除已借出的图书

    DELETE FROM books WHERE available = FALSE;
    

    删除所有不可借的图书记录,以便清理库存。

场景11:博客管理系统

  1. 创建文章表

    CREATE TABLE articles (id INT AUTO_INCREMENT PRIMARY KEY,title VARCHAR(100) NOT NULL,content TEXT NOT NULL,publish_date DATE NOT NULL,author_id INT NOT NULL,FOREIGN KEY (author_id) REFERENCES authors(id)
    );
    

    创建一个名为articles的表,包含文章ID、标题、内容、发布日期和作者ID五个字段,并与作者表关联。

  2. 更新文章内容

    UPDATE articles SET content = 'Updated content' WHERE id = 1;
    

    更新ID为1的文章的内容,例如修改错别字或更新文章信息。

场景12:用户管理系统

  1. 创建用户表

    CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,email VARCHAR(100) NOT NULL UNIQUE,password VARCHAR(255) NOT NULL,created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 
    );
    

    创建一个名为users的表,包含用户ID、用户名、邮箱、密码和创建时间五个字段。

  2. 查询用户创建时间

    SELECT username, created_at FROM users;
    

    查询所有用户的用户名和创建时间,以便了解用户增长情况。

场景13:考试管理系统

  1. 创建考试表

    CREATE TABLE exams (id INT AUTO_INCREMENT PRIMARY KEY,subject VARCHAR(50) NOT NULL,date DATE NOT NULL,duration INT NOT NULL 
    );
    

    创建一个名为exams的表,包含考试ID、科目、日期和时长四个字段。

  2. 删除已完成的考试

    DELETE FROM exams WHERE date < '2023-01-01';
    

    删除所有日期早于2023年1月1日的考试记录,以便清理过期的考试信息。


六、总结

通过本文的学习,你现在应该能够熟练地进行MySQL的增删改查操作了,在日常工作学习中再多加积累和完善即可!


http://www.ppmy.cn/devtools/167692.html

相关文章

解决ubuntu(jetpack)系统下系统盘存储不够的

以下是可以安全清理的内容及操作步骤&#xff0c;按优先级和风险从低到高排序&#xff1a; 1. 清理日志文件&#xff08;低风险&#xff09; /var/log/syslog (7.1G) # 清空syslog文件&#xff08;不删除文件本身&#xff09; sudo truncate -s 0 /var/log/syslog# 或限制sys…

《基于机器学习(xgboost)的人体卡路里消耗预测系统》开题报告

目录 1 选题的背景和意义 1.1 选题的背景 1.2 国内外研究现状及发展趋势 2 研究的基本内容 2.1 基本框架 2.1.1数据输入模块 2.1.2数据预处理模块 2.1.3特征工程模块 2.1.4模型训练与评估模块 2.1.5预测与输出模块 2.1.6用户界面(UI) 2.1.7系统维护与更新模块 2.…

OpnenHarmony 开源鸿蒙北向开发——1.开发环境搭建(DevEco Studio 5.03)

我这边是基于window下对OpenHarmony开源鸿蒙进行北向开发。 一、安装DevEco Studio 1、下载 下载中心 | 华为开发者联盟-HarmonyOS开发者官网&#xff0c;共建鸿蒙生态 2、安装 下载完成之后进行解压 双击进行安装 按照我的步骤进行 选择安装目录&#xff0c;全部配置完成后…

Dockerfile Add和Copy的区别。

在 Dockerfile 中&#xff0c;ADD 和 COPY 都用于将文件或目录从构建上下文&#xff08;通常是 Dockerfile 所在的目录&#xff09;复制到 Docker 镜像中&#xff0c;但它们有一些关键区别&#xff1a; 1. COPY 指令 COPY 主要用于复制本地文件或目录到容器的指定路径。 &…

Python函数的递归调用

基本介绍 1、简单的说: 递归就是函数自己调用自己,每次调用时传入不同的值 2、递归有助于编程者解决复杂问题&#xff0c;同时可以让代码变得简洁 递归能解决什么问题&#xff1f; 1、各种数学问题如&#xff1a;皇后问题、汉诺塔、阶乘问题、迷宫问题等等 2、各种算法中也…

ETL与ELT核心技术解析:如何选择最优数据集成方案

在数字化转型浪潮中&#xff0c;数据集成作为企业数据战略的核心环节&#xff0c;ETL与ELT两种技术路径的抉择直接影响着数据处理效率。本文将通过谷云科技在数据集成领域的实践经验&#xff0c;深入解析两种模式的本质差异与应用场景。 技术原理全景解读 1. ETL数据集成流程…

STM32 内置的通讯协议

数据是以帧为单位发的 USART和UART的区别就是有没有同步功能 同步是两端设备有时钟连接&#xff0c;异步是没时钟连接&#xff0c;靠约定号的频率&#xff08;波特率&#xff09;接收发送数据 RTS和CTS是用来给外界发送已“可接收”或“可发送”信号的&#xff0c;一般用不到…

DeepSeek-R1本地化部署(Mac)

一、下载 Ollama 本地化部署需要用到 Ollama&#xff0c;它能支持很多大模型。官方网站&#xff1a;https://ollama.com/ 点击 Download 即可&#xff0c;支持macOS,Linux 和 Windows&#xff1b;我下载的是 mac 版本&#xff0c;要求macOS 11 Big Sur or later&#xff0c;Ol…