MySQL作为一种广泛使用的开源关系型数据库管理系统,提供了强大的数据操作功能。增删改查(CRUD)是数据库操作的核心,涵盖创建(Create)、读取(Read)、更新(Update)和删除(Delete)四个基本操作。本文将带你快速学习MySQL的增删改查,通过丰富的案例和13个实际应用场景,让你轻松掌握数据库操作。
一、数据库操作
首先,我们需要创建一个数据库,这是存储表和表记录的容器。
场景1:学校管理系统数据库
创建数据库
CREATE DATABASE school;
创建一个名为
school
的数据库,用于存储学校管理系统的所有数据。删除数据库
DROP DATABASE school;
当学校管理系统更新或废弃时,可以删除名为
school
的数据库。查询数据库
SHOW DATABASES;
查询当前MySQL服务器中所有数据库的列表,以便确认
school
数据库是否已创建。修改数据库
RENAME DATABASE school TO school_new;
将
school
数据库重命名为school_new
,以便进行数据库迁移或重命名操作。
二、表操作
接下来,我们在数据库中创建表,表是存储具体数据的地方。
场景2:学生信息表
创建表
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、姓名、年龄和年级四个字段。删除表
DROP TABLE students;
如果学生信息表的结构需要调整或不再使用,可以删除名为
students
的表。查询表
SHOW TABLES FROM school;
查询
school
数据库中所有表的列表,以便确认students
表是否已创建。修改表
ALTER TABLE students ADD COLUMN email VARCHAR(100) NOT NULL;
向
students
表中添加一个新列email
,用于存储学生的电子邮箱地址。
三、表记录操作
现在,我们开始对表中的记录进行增删改查操作。
场景3:学生信息增删改查
插入记录(INSERT)
INSERT INTO students (name, age, grade) VALUES ('Alice', 20, 'A');
向学生表中添加一个新学生的信息,例如Alice,年龄20岁,年级A。
查询记录(SELECT)
SELECT * FROM students WHERE grade = 'A';
查询所有成绩为A的学生信息,以便了解优秀学生的分布情况。
更新记录(UPDATE)
UPDATE students SET age = 21 WHERE name = 'Alice';
更新特定学生的年龄信息,例如Alice的年龄从20岁更新为21岁。
删除记录(DELETE)
DELETE FROM students WHERE id = 1;
删除ID为1的学生记录,例如删除转学或毕业的学生信息。
四、进阶操作
接下来,我们将学习一些更高级的操作,这些操作在处理复杂数据时非常有用。
场景4:成绩查询与排序
条件查询
SELECT * FROM students WHERE age > 18;
查询所有年龄大于18岁的学生,以便筛选出符合成人教育条件的学生。
排序
SELECT * FROM students ORDER BY age DESC;
按年龄降序排列所有学生,以便生成按年龄排序的学生名单。
场景5:学生平均年龄计算
聚合函数
SELECT AVG(age) AS average_age FROM students;
计算所有学生的平均年龄,以便了解学生群体的年龄分布。
场景6:学生选课信息查询
连接查询
假设我们有一个
courses
表,存储学生选修的课程信息。SELECT students.name, courses.name FROM students JOIN courses ON students.id = courses.student_id;
查询每个学生及其选修的课程,以便在教务系统中列出学生的选课情况。
五、几个应用场景案例
场景7:员工管理系统
创建员工表
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、姓名、部门和薪水四个字段。查询特定部门的员工
SELECT * FROM employees WHERE department = 'IT';
查询IT部门的员工信息,以便了解IT部门的人员配置。
场景8:库存管理系统
创建商品表
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、名称、数量和价格四个字段。更新商品库存
UPDATE products SET quantity = quantity - 1 WHERE id = 1;
更新商品库存信息,例如减少ID为1的商品数量。
场景9:订单管理系统
创建订单表
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、订单日期和总金额四个字段,并与客户表关联。查询特定日期的订单
SELECT * FROM orders WHERE order_date = '2023-04-01';
查询2023年4月1日的订单信息,以便了解当天的销售情况。
场景10:图书管理系统
创建图书表
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、标题、作者和是否可借三个字段。删除已借出的图书
DELETE FROM books WHERE available = FALSE;
删除所有不可借的图书记录,以便清理库存。
场景11:博客管理系统
创建文章表
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五个字段,并与作者表关联。更新文章内容
UPDATE articles SET content = 'Updated content' WHERE id = 1;
更新ID为1的文章的内容,例如修改错别字或更新文章信息。
场景12:用户管理系统
创建用户表
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、用户名、邮箱、密码和创建时间五个字段。查询用户创建时间
SELECT username, created_at FROM users;
查询所有用户的用户名和创建时间,以便了解用户增长情况。
场景13:考试管理系统
创建考试表
CREATE TABLE exams ( id INT AUTO_INCREMENT PRIMARY KEY, subject VARCHAR(50) NOT NULL, date DATE NOT NULL, duration INT NOT NULL );
创建一个名为
exams
的表,包含考试ID、科目、日期和时长四个字段。删除已完成的考试
DELETE FROM exams WHERE date < '2023-01-01';
删除所有日期早于2023年1月1日的考试记录,以便清理过期的考试信息。
六、总结
通过本文的学习,你现在应该能够熟练地进行MySQL的增删改查操作了,在日常工作学习中再多加积累和完善即可!