大家好,感谢邀请,今天来为大家分享一下SQLSERVER:插入、更新、删除操作的问题,以及和的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
姓名
位置
薪水
1
约翰
开发商
55000
2
简
设计师
62000
3
罗伯特
经理
48000
表结构
CREATE TABLE Members (EmployeeID INT PRIMARY KEY, Name NVARCHAR(100), Position NVARCHAR(100), Salary DECIMAL(10, 2));测试数据
INSERT INTO 员工(员工ID、姓名、职位、薪资)VALUES(1, ‘John’, ‘开发人员’, 55000),(2, ‘Jane’, ‘设计师’, 62000),(3, ‘Robert’, ‘经理’, 48000);
INSERT操作
INSERT 语句用于向表中添加新记录。其基本语法如下:
INSERT INTO table_name (列1, 列2, 列3,)VALUES (值1, 值2, 值3,);
添加新记录
假设我们要向Employees 表中添加一个新员工,名为Alice,职位为Analyst。工资是5万。
INSERT INTO 员工(员工ID、姓名、职位、薪水)VALUES (4, ‘Alice’, ‘Analyst’, 50000);执行后,Employees表的内容将变为:
员工编号
姓名
位置
薪水
1
约翰
开发商
55000
2
简
设计师
62000
3
罗伯特
经理
48000
4
爱丽丝
分析师
50000
Insert 备份数据
您需要先创建EmployeeBackup表
INSERT INTO EmployeeBackup (EmployeeID, Name, Position, Salary)SELECT EmployeeID, Name, Position, SalaryFROM Members;
UPDATE操作
UPDATE 语句用于修改表中的现有记录。其基本语法如下:
UPDATE table_nameSET 列1=值1,列2=值2,WHERE 条件;
更新记录
假设我们需要给所有工资低于55,000的员工加薪5,000。我们可以使用UPDATE 语句来实现这一点。
UPDATE MembersSET Salary=Salary + 5000WHERE Salary 55000;执行后,Employees表的内容将更新为:
员工编号
姓名
位置
薪水
1
约翰
开发商
55000
2
简
设计师
62000
3
罗伯特
经理
53000
4
爱丽丝
分析师
55000
跨表更新
测试数据
— 创建Employees表CREATE TABLEEmployees ( EmployeeID INT PRIMARY KEY, Name NVARCHAR(100), DepartmentID INT, Salary DECIMAL(10, 2)); — 创建Departments表CREATE TABLE Departments ( DepartmentID INT PRIMARY KEY, DepartmentName NVARCHAR(100 ), SalaryIncreasePercentage DECIMAL(5, 2));–将测试数据插入到Employees表中INSERT INTOEmployees (EmployeeID, Name, DepartmentID, Salary ) VALUES(1, ‘约翰·多伊’, 101, 50000.00),(2, ‘简·史密斯’, 102, 60000.00),(3, ‘爱丽丝·琼斯’, 101, 55000.00),(4, ‘布鲁斯·韦恩’, 103 , 70000.00);– 将测试数据插入到Departments 表中INSERT INTO Departments (DepartmentID, DepartmentName, SalaryIncreasePercentage) VALUES(101, ‘IT’, 5),(102, ‘HR’, 3),(103, ‘Finance’ , 4);现在,我们有两个表,其中包含员工和部门信息,以及我们想要应用的工资增长百分比。接下来,我们将执行跨表更新来增加IT 部门员工的工资。
— 更新IT 部门员工的工资UPDATEEmployeesSET Salary=Salary + (Salary * d.SalaryIncreasePercentage/100)FROMEmployees eINNER JOIN Departments d ON e.DepartmentID=d.DepartmentIDWHERE d.DepartmentName=’IT’;– 查询后更新员工表以查看更改SELECT * FROM 员工;在这个跨表更新操作中,我们首先指定要更新的表Employees,然后设置新的Salary值。该值是通过将原始工资与Departments 表中相应工资进行比较得到的。 SalaryIncreasePercentage 的计算方法是乘以并除以100。我们使用INNER JOIN 基于公共DepartmentID 字段来连接Members 表(使用别名e)和Departments 表(使用别名d)。 WHERE 子句确保仅更新DepartmentName 为IT 的部门员工的工资。
最后,我们执行SELECT 查询来检查员工表中的数据,以确保更新按预期进行。
DELETE操作
DELETE 语句用于从表中删除记录。其基本语法如下:
DELETE FROM table_nameWHERE 条件;
删除记录
假设罗伯特已经辞职,我们需要从员工表中删除他的记录。
DELETE FROMEmployeesWHEREName=’Robert’;执行后,Employees表的内容将变成:
员工编号
姓名
位置
薪水
1
约翰
开发商
55000
2
简
设计师
62000
4
爱丽丝
分析师
55000
Truncate 操作
— 创建示例表CREATE TABLE SampleData (ID INT PRIMARY KEY, Data NVARCHAR(100)); — 插入测试数据INSERT INTO SampleData (ID, Data) VALUES(1, ‘数据1’),(2 , ‘数据2’),(3, ‘数据3’);–使用TRUNCATE TABLE 清表TRUNCATE TABLE SampleData;–查询表中的数据,确认已被清除SELECT * FROM SampleData;执行TRUNCATE TABLE SampleData;之后,SampleData 表中的所有行都将被删除,并且该表将重置为空表状态。
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/120609.html
用户评论
爱到伤肺i
这篇博文讲解得很到位!插入、更新和删除数据是数据库中最基本的 CRUD 操作,掌握了这些技巧,做开发就变得更轻松了!
有9位网友表示赞同!
素婉纤尘
我觉得可以加入一些实际应用案例,比如结合具体的业务场景来说明如何使用 INSERT、UPDATE 和 DELETE 操作,会更生动形象。
有18位网友表示赞同!
凉笙墨染
我一直不太明白事务的概念,这篇博文中提到过,能详细解释一下吗?如果没理解,操作可能会出现问题吧。
有15位网友表示赞同!
孤街浪途
这篇文章写的简单易懂,即使是SQL SERVER新手也能看懂。对入门小伙伴来说非常有用!
有16位网友表示赞同!
┲﹊怅惘。
我之前用的 MySQL,现在要换成 SQL SERVER,感觉有些操作不太一样。还好这篇博文把 INSERT、UPDATE 和 DELETE 的区别说得清清楚楚。
有17位网友表示赞同!
有阳光还感觉冷
讲道理数据库操作这块挺重要的,特别是针对更新数据的方案,有时候没做好谨慎修改会造成数据丢失风险,这篇博文提醒了这一点。
有14位网友表示赞同!
我家的爱豆是怪比i
我觉得用代码示例来详细说明每个操作的语法,以及一些注意事项,比如插入失败的处理,更能提升这篇博文的实用性。
有15位网友表示赞同!
旧爱剩女
我感觉作者可能没有提到 SQL SERVER 的索引优化,这对于 INSERT、UPDATE 和 DELETE 操作效率非常重要呀!
有18位网友表示赞同!
坠入深海i
这段时间的项目里用了很多这些操作,这篇文章就挺时候的,让我回顾一下这些基本的概念。
有17位网友表示赞同!
你的眸中有星辰
这个标题写的有点简单啊,应该更直白清晰一些,比如 “深入浅出 SQL SERVER:INSERT、UPDATE 和 DELETE 操作指南”。
有20位网友表示赞同!
七级床震
虽然博文解释了三种操作,但能不能再详细一点数据库事务的操作呢?尤其是在批量更新数据的时候要注意的事项。
有13位网友表示赞同!
幸好是你
对于大型数据库来说,优化这些操作的效率是关键,这篇 博文应该多分享一些性能调优技巧。
有10位网友表示赞同!
嗯咯
作者讲 INSERT 操作的时候,可以再多加一些关于约束的讲解吗?比如唯一约束和外键约束对插入数据的限制。
有15位网友表示赞同!
三年约
我感觉这篇文章只是局限于 SQL 的语法,没有谈及其他数据库设计或管理方面的知识,希望下次博主能更全面点。
有13位网友表示赞同!
百合的盛世恋
这篇博文挺好用的,正好我在学习 SQL SERVER,帮我对基础操作有了一定的了解。建议作者在未来更新更多高级技巧!
有19位网友表示赞同!
眉黛如画
我一直觉得 INSERT 这样的操作代码写起来看着太简单了,实际应用中复杂性很大,比如需要插入很多数据的时候该如何去优化…
有7位网友表示赞同!
龙吟凤
博文说的INSERT ,UPDATE, DELETE 都说得不错。但我更关心的是如何测试这些操作的正确性和可靠性?
有5位网友表示赞同!