插入数据[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;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论