MySQL--day10--数据处理之增删改
(以下内容全部来自上述课程)
增删改
0. 储备工作
#0.储备工作
USE atguigudb;
CREATE TABLE IF NOT EXISTS emp1(
id INT,
`name` VARCHAR(15),
hire_date DATE,
salary DOUBLE(10,2)
);
1. 插入数据
1.1 一条一条添加
# (1)没有指明添加字段
INSERT INTO emp1
VALUES (1, 'Pub', '2000-12-21', 3400); # 注意:一定要按照声明的字段的先后顺序添加# (2) 指明添加的字段(推荐)
# 说明:没有进行赋值的hire_date的值就是null
INSERT INTO emp1(id, salary, name)VALUES (3, 4500, 'shk');#(3)同时插入多条记录(推荐)
INSERT INTO emp1(id,name,salary)
VALUES (1001,'Jim',5000),(1002,'Tom',5500),
1.2 将查询结果插入表中
INSERT INTO emp1(id, name, salary, hire_date)SELECT employee_id, last_name, salary, hire_date # 查询的字段一定要与添加到的表的字段一一对应FROM employeesWHERE department_id IN (70,60);# 说明:emp1表中要添加数据的字段的长度不能低于employees表中查询的字段的长度。# 如果低于,就有添加不成功的风险。
2. 更新数据
# UPDATE...SET...WHERE...
# 不用where可以实现批量修改
UPDATE emp1
SET hire_date = CURDATE()
WHERE id = 5;# 更新失败:没有55号部门
UPDATE employees
SET department_id = 55
WHERE department_id = 110;
3. 删除数据
# DELETE FROM...WHERE...
DELETE FROM emp1
WHERE id = 1;# 删除失败,没有60号部门
DELETE FROM departments
WHERE department_id = 60;
4. MySQL8新特性:计算列
计算列:某一列的值是通过别的列计算得来的
一个加数列修改,它的结果列也会跟着修改。
CREATE TABLE tb1(id INT,a INT,b INT,c INT GENERATED ALWAYS AS (a + b) VIRTUAL # c:计算列);