- #第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;