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

发布于:2025-03-14 ⋅ 阅读:(14) ⋅ 点赞:(0)

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的增删改查操作了,在日常工作学习中再多加积累和完善即可!