SQL数据处理之增删改实现方式
作者:丑八怪大丑
本文介绍了SQL中INSERT、UPDATE和DELETE语句的使用方法,包括如何批量添加、修改和删除数据,强调了在插入数据时需要注意字段长度,以及DML操作默认自动提交数据,最后提到可以通过设置autocommit为FALSE来控制提交行为
插入数据[INSERT,VALUES]
方式1:一条一条的添加数据
# ① 没有指明添加的字段 #正确的 INSERT INTO emp1 VALUES (1,'Tom','2000-12-21',3400); #注意:一定要按照声明的字段的先后顺序添加 #错误的 INSERT INTO emp1 VALUES (2,3400,'2000-12-21','Jerry'); # ② 指明要添加的字段 (推荐) INSERT INTO emp1(id,hire_date,salary,`name`) VALUES(2,'1999-09-09',4000,'Jerry'); # 说明:没有进行赋值的hire_date 的值为 null INSERT INTO emp1(id,salary,`name`) VALUES(3,4500,'shk'); # ③ 同时插入多条记录 (推荐) INSERT INTO emp1(id,NAME,salary) VALUES (4,'Jim',5000), (5,'张俊杰',5500);
方式2:将查询结果插入到表中
INSERT INTO emp1(id,NAME,salary,hire_date) #查询语句 SELECT employee_id,last_name,salary,hire_date # 查询的字段一定要与添加到的表的字段一一对应 FROM employees WHERE department_id IN (70,60);
说明:
- emp1表中要添加数据的字段的长度不能低于employees表中查询的字段的长度。
- 如果emp1表中要添加数据的字段的长度低于employees表中查询的字段的长度的话,就有添加不成功的风险。
更新数据
UPDATE .... SET .... WHERE ...
可以实现批量修改数据的。
UPDATE emp1 SET hire_date = CURDATE() WHERE id = 5;
#同时修改一条数据的多个字段 UPDATE emp1 SET hire_date = CURDATE(),salary = 6000 WHERE id = 4; #题目:将表中姓名中包含字符a的提薪20% UPDATE emp1 SET salary = salary * 1.2 WHERE NAME LIKE '%a%'; #修改数据时,是可能存在不成功的情况的。(可能是由于约束的影响造成的) UPDATE employees SET department_id = 10000 WHERE employee_id = 102;
删除数据
DELETE FROM .... WHERE....
DELETE FROM emp1 WHERE id = 1; #在删除数据时,也有可能因为约束的影响,导致删除失败 DELETE FROM departments WHERE department_id = 50;
小结:DML操作默认情况下,执行完以后都会自动提交数据。如果希望执行完以后不自动提交数据,则需要使用 SET autocommit = FALSE.
新特性:计算列
某一列的值是通过别的列计算得来的
CREATE TABLE test1( a INT, b INT, c INT GENERATED ALWAYS AS (a + b) VIRTUAL #字段c即为计算列 ); INSERT INTO test1(a,b) VALUES(10,20); SELECT * FROM test1; UPDATE test1 SET a = 100;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
