MySQL(35)如何进行INSERT、UPDATE和DELETE操作?

143 阅读3分钟

在SQL中,INSERTUPDATEDELETE 是最基本的数据操作语言(DML)命令,用于插入、更新和删除表中的数据。以下详细介绍每种操作的使用方法,并结合代码示例。

示例数据库和表结构

假设我们有一个名为 company 的数据库,其中有一个 employees 表,用于存储员工信息。

-- 创建数据库
CREATE DATABASE company;

-- 选择数据库
USE company;

-- 创建表 employees
CREATE TABLE employees (
    emp_id INT AUTO_INCREMENT PRIMARY KEY,
    emp_name VARCHAR(100) NOT NULL,
    emp_position VARCHAR(100),
    emp_salary DECIMAL(10, 2),
    hire_date DATE
);

1. INSERT 操作

INSERT 语句用于向表中插入数据。可以插入单条记录或多条记录。

插入单条记录

INSERT INTO employees (emp_name, emp_position, emp_salary, hire_date)
VALUES ('John Doe', 'Manager', 75000.00, '2023-10-01');

插入多条记录

INSERT INTO employees (emp_name, emp_position, emp_salary, hire_date)
VALUES 
('Jane Smith', 'Developer', 60000.00, '2023-09-01'),
('Alice Johnson', 'Analyst', 50000.00, '2023-08-01'),
('Bob Brown', 'Developer', 70000.00, '2023-07-01');

2. UPDATE 操作

UPDATE 语句用于更新表中的现有记录。使用 WHERE 子句来指定要更新的记录,如果未使用 WHERE 子句,则会更新表中的所有记录。

更新特定记录

UPDATE employees
SET emp_salary = 80000.00
WHERE emp_name = 'John Doe';

更新多条记录

UPDATE employees
SET emp_salary = emp_salary + 5000.00
WHERE emp_position = 'Developer';

3. DELETE 操作

DELETE 语句用于删除表中的现有记录。使用 WHERE 子句来指定要删除的记录,如果未使用 WHERE 子句,则会删除表中的所有记录。

删除特定记录

DELETE FROM employees
WHERE emp_name = 'Alice Johnson';

删除所有记录

DELETE FROM employees;

4. 综合示例

假设我们有以下数据在 employees 表中:

INSERT INTO employees (emp_name, emp_position, emp_salary, hire_date)
VALUES 
('John Doe', 'Manager', 75000.00, '2023-10-01'),
('Jane Smith', 'Developer', 60000.00, '2023-09-01'),
('Alice Johnson', 'Analyst', 50000.00, '2023-08-01'),
('Bob Brown', 'Developer', 70000.00, '2023-07-01');

然后我们进行以下操作:

插入新记录

INSERT INTO employees (emp_name, emp_position, emp_salary, hire_date)
VALUES ('Charlie Brown', 'Tester', 55000.00, '2023-11-01');

结果:

emp_id | emp_name      | emp_position | emp_salary | hire_date
-------|---------------|--------------|------------|-----------
1      | John Doe      | Manager      | 75000.00   | 2023-10-01
2      | Jane Smith    | Developer    | 60000.00   | 2023-09-01
3      | Alice Johnson | Analyst      | 50000.00   | 2023-08-01
4      | Bob Brown     | Developer    | 70000.00   | 2023-07-01
5      | Charlie Brown | Tester       | 55000.00   | 2023-11-01

更新记录

UPDATE employees
SET emp_salary = 80000.00
WHERE emp_name = 'John Doe';

结果:

emp_id | emp_name      | emp_position | emp_salary | hire_date
-------|---------------|--------------|------------|-----------
1      | John Doe      | Manager      | 80000.00   | 2023-10-01
2      | Jane Smith    | Developer    | 60000.00   | 2023-09-01
3      | Alice Johnson | Analyst      | 50000.00   | 2023-08-01
4      | Bob Brown     | Developer    | 70000.00   | 2023-07-01
5      | Charlie Brown | Tester       | 55000.00   | 2023-11-01

删除记录

DELETE FROM employees
WHERE emp_name = 'Alice Johnson';

结果:

emp_id | emp_name      | emp_position | emp_salary | hire_date
-------|---------------|--------------|------------|-----------
1      | John Doe      | Manager      | 80000.00   | 2023-10-01
2      | Jane Smith    | Developer    | 60000.00   | 2023-09-01
4      | Bob Brown     | Developer    | 70000.00   | 2023-07-01
5      | Charlie Brown | Tester       | 55000.00   | 2023-11-01

小结

INSERTUPDATEDELETE 是SQL中最基本的DML操作,用于插入、更新和删除表中的数据。通过这些操作,您可以对数据库中的数据进行灵活的增删改操作,以满足各种业务需求。上述示例展示了如何在不同情况下使用这些操作,以实现对数据的管理和维护。