#第11章_数据处理之增删改
#1.添加数据
USE atguigudb
CREATE TABLE IF NOT EXISTS emp1(
id INT,
`name` VARCHAR(15),
hire_date DATE,
saalry DOUBLE(10,2)
);
DESC emp1;
SELECT * FROM emp1;
#自己的错误,需要修改过字段名来
ALTER TABLE emp1
CHANGE saalry salary DOUBLE(10,2);
#方式1:一条一条的添加。
#①没有指明添加字段:
INSERT INTO emp1
VALUES(1,'Tom','2000-12-21',3400);#一定要按照声明的字段的先后顺序添加
#②指明添加字段(推荐)
INSERT INTO emp1(id,hire_date,salary,`name`)
VALUES (2,'1999-09-09',3400,'Jerry');
#没指明的就是NULL
INSERT INTO emp1(id,hire_date,`name`)
VALUE(2,'1999-09-09','Jerry');
#③同时插入多条(推荐)
INSERT INTO emp1(id,NAME,salary)
VALUES
(4,'Jim',5679),
(5,'俊杰',245);
#方式2:将查询结果直接插入到表中。
SELECT * FROM emp1;
INSERT INTO emp1(id,NAME,salary,hire_date)
#查询语句:
SELECT employee_id,last_name,salary,hire_date #查询的字段一定与添加的表一一对应
FROM employees
WHERE department_id IN (70,60);
DESC emp1;
DESC employees;
#说明:emp1表中要添加数据的字段的数据长度不能低于employees的对应字段的长度。
#2. 更新数据 或者叫修改数据
#UPDATE...SET...WHERE
#可以批量的实现数据的修改
DESC emp1;
SELECT * FROM emp1;
UPDATE emp1
SET hire_date = CURDATE()
WHERE id = 5;
#同时修改一条数据的多个字段
UPDATE emp1
SET hire_date = CURDATE(),salary = 6000
WHERE id = 4;
UPDATE emp1
SET salary = salary * 1.2
WHERE NAME LIKE '%a%';
#修改数据时是可以存在不成功的情况的(可能是由于约束的影响)
UPDATE employees
SET depart
#删除数据 DELETE FROM ...WHERE...
DELETE FROM emp1
WHERE id = 1;
#小结:DML操作在默认情况下,执行完以后都会自动提交数据。
#如果希望执行完以后不自动提交数据,则需要使用SET autocommit = FALSE;
#MySQL8的新特性:计算列
USE atguigudb;
CREATE TABLE test1(
a INT,
b INT,
c INT GENERATED ALWAYS AS(a + b) VIRTUAL #字段c即为计算列
);
INSERT INTO test1(a,b)
VALUES(10,20);
UPDATE test1
SET a = 100;
SELECT * FROM test1;
第11章_数据处理之增删改
最新推荐文章于 2024-07-25 15:33:59 发布