当前位置: 代码网 > it编程>数据库>MsSqlserver > SQL数据处理之增删改实现方式

SQL数据处理之增删改实现方式

2026年05月09日 MsSqlserver 我要评论
插入数据[insert,values]方式1:一条一条的添加数据# ① 没有指明添加的字段#正确的insert into emp1values (1,'tom','2000-12-21',3400);

插入数据[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;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com