69人参与 • 2026-05-09 • MsSqlserver
方式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);
说明:
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;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论