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

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


一、数据库操作

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

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

  1. 创建数据库

    sql 复制代码
    CREATE DATABASE school;

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

  2. 删除数据库

    sql 复制代码
    DROP DATABASE school;

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

  3. 查询数据库

    sql 复制代码
    SHOW DATABASES;

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

  4. 修改数据库

    sql 复制代码
    RENAME DATABASE school TO school_new;

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


二、表操作

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

场景2:学生信息表

  1. 创建表

    sql 复制代码
    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. 删除表

    sql 复制代码
    DROP TABLE students;

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

  3. 查询表

    sql 复制代码
    SHOW TABLES FROM school;

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

  4. 修改表

    sql 复制代码
    ALTER TABLE students ADD COLUMN email VARCHAR(100) NOT NULL;

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


三、表记录操作

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

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

  1. 插入记录(INSERT)

    sql 复制代码
    INSERT INTO students (name, age, grade) VALUES ('Alice', 20, 'A');

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

  2. 查询记录(SELECT)

    sql 复制代码
    SELECT * FROM students WHERE grade = 'A';

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

  3. 更新记录(UPDATE)

    sql 复制代码
    UPDATE students SET age = 21 WHERE name = 'Alice';

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

  4. 删除记录(DELETE)

    sql 复制代码
    DELETE FROM students WHERE id = 1;

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


四、进阶操作

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

场景4:成绩查询与排序

  1. 条件查询

    sql 复制代码
    SELECT * FROM students WHERE age > 18;

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

  2. 排序

    sql 复制代码
    SELECT * FROM students ORDER BY age DESC;

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

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

  1. 聚合函数

    sql 复制代码
    SELECT AVG(age) AS average_age FROM students;

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

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

  1. 连接查询

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

    sql 复制代码
    SELECT students.name, courses.name 
    FROM students 
    JOIN courses ON students.id = courses.student_id;

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


五、几个应用场景案例

场景7:员工管理系统

  1. 创建员工表

    sql 复制代码
    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. 查询特定部门的员工

    sql 复制代码
    SELECT * FROM employees WHERE department = 'IT';

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

场景8:库存管理系统

  1. 创建商品表

    sql 复制代码
    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. 更新商品库存

    sql 复制代码
    UPDATE products SET quantity = quantity - 1 WHERE id = 1;

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

场景9:订单管理系统

  1. 创建订单表

    sql 复制代码
    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. 查询特定日期的订单

    sql 复制代码
    SELECT * FROM orders WHERE order_date = '2023-04-01';

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

场景10:图书管理系统

  1. 创建图书表

    sql 复制代码
    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. 删除已借出的图书

    sql 复制代码
    DELETE FROM books WHERE available = FALSE;

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

场景11:博客管理系统

  1. 创建文章表

    sql 复制代码
    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. 更新文章内容

    sql 复制代码
    UPDATE articles SET content = 'Updated content' WHERE id = 1;

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

场景12:用户管理系统

  1. 创建用户表

    sql 复制代码
    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. 查询用户创建时间

    sql 复制代码
    SELECT username, created_at FROM users;

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

场景13:考试管理系统

  1. 创建考试表

    sql 复制代码
    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. 删除已完成的考试

    sql 复制代码
    DELETE FROM exams WHERE date < '2023-01-01';

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


六、总结

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

相关推荐
异世界贤狼转生码农1 小时前
MongoDB Windows 系统实战手册:从配置到数据处理入门
数据库·mongodb
QuZhengRong1 小时前
【数据库】Navicat 导入 Excel 数据乱码问题的解决方法
android·数据库·excel
码农阿豪2 小时前
Windows从零到一安装KingbaseES数据库及使用ksql工具连接全指南
数据库·windows
冷崖6 小时前
MySQL异步连接池的学习(五)
学习·mysql
时序数据说7 小时前
时序数据库市场前景分析
大数据·数据库·物联网·开源·时序数据库
听雪楼主.11 小时前
Oracle Undo Tablespace 使用率暴涨案例分析
数据库·oracle·架构
我科绝伦(Huanhuan Zhou)11 小时前
KINGBASE集群日常维护管理命令总结
数据库·database
妖灵翎幺11 小时前
Java应届生求职八股(2)---Mysql篇
数据库·mysql
HMBBLOVEPDX11 小时前
MySQL的事务日志:
数据库·mysql
weixin_4196583113 小时前
MySQL数据库备份与恢复
数据库·mysql