了解关于SQL UPDATE JOIN语句的更多信息
对于每个获取和利用数据的应用程序来说,数据存储是非常重要的。在数字世界中,我们使用数据库来存储信息单元。为了与这些数据库通信,我们使用一种称为结构化查询语言(SQL)的语言。这也是关系数据库管理系统(RDMS)的标准语言。在SQL中,您使用如下语句更新,选择,插入,创造,或降低操作存储在数据库中的数据。使用SQL的rdms的例子有Oracle、MS SQL Server、Access、Ingres、Sybase等。
要在数据库中创建条目,我们将使用创造声明。如果要对创建的条目进行任何更改,则必须使用更新声明。这是常规的语法更新陈述:
更新table_name集ColumNO1=valueno1,columnno2.=valueno2,......其中columno=价值;
在上面的代码中,对于特定的table_name,我们将ColumNO1的值设置为Valueno1和ColumNO2至Valueno2,条件。条件是由在哪里语句,该语句表示在发现条件为真时进行更新。
我们使用加入语句来合并来自两个或多个表的行,前提是它们之间存在公共列或字段。最常用的Join是SQL INNER Join语句。如果发现指定的条件为真,该语句将合并这两行。控件的示例代码加入陈述:
选择column_name.从表格1内连接表2.上table1.column_name=table2.column_name;
SQL UPDATE加入
的更新声明和加入语句可以单独工作,也可以结合工作。当我们需要检查一个特定表的记录是否存在于另一个表中,同时根据前面检查的结果更新其中一个表时,我们可以使用SQL update JOIN语句。
虽然最常用的连接是内部连接或简单连接,但在本文中,我们将重点关注以下类型的SQL连接:
- 内连接
- 左边加入
在我们继续了解加入如何运作之前更新声明,让我们创建下表以执行个人陈述:
下面是创建表的示例代码,以帮助您理解SQL UPDATE JOIN语句。
创建数据库,如果不存在员工;- 创建表创建表Merit(perf int(12)not null,vercip float not null,主键(perf));创建表员工(EMP_ID int(12)not null auto_increment,emp_name varchare(255)not null,perf int(12)默认为null,工资浮动默认为null,主键(emp_id),约束fk_perf外键(perf)引用优点(perf)));- 将Merit表插入的数据插入Merit(perf,百分比)值(1,0),(2,0.01),(3,0.03),(4,0.05),(5,0.08);- 将员工表插入员工(emp_name,perf,薪水)值(Mike Greenspan,3,60000),(Grace Smith,4,77000),(Mike Greenspan,Sue Johnson,5,110000),(John Dell,3,76000),(南希杰克逊,2,40000),(茉莉花灌木',3,56000);
使用内联连接更新
优势百分比存储在优点表中,员工信息存储在员工表中。现在,如果您想根据员工绩效对薪资进行调整,您将使用更新内联局申请声明根据优点表中的百分比根据员工表调整员工的薪资。这两个表之间的公共领域是性能,这是性能。以下是您将用于完成此任务的示例查询:
更新员工的内部加入优点。穿孔=优点。性能集工资=工资+ salary * percent Output:
emp_name.
性能
工资
Mike Doe.
1
55000
玛丽格林斯潘
3.
61800
恩史密斯
4
80080
苏约翰逊
5
115500
约翰·戴尔
3.
78280
南希杰克逊
2
40800
茉莉花布什
3.
57680
emp_id. | ||||||
1 | 2 | 3. | 4 | 5 | 6 | 7 |
SQL更新左连接
在这种情况下,我们将两个新员工添加到员工表中,因为他们是新员工,所以我们没有他们的绩效数据在绩效表中。在这种情况下,如果我们使用SQL UPDATE INNER JOIN语句,结果将是错误的。因此,在这种情况下,我们使用SQL UPDATE LEFT JOIN语句。如果对应的记录在另一个表中不存在,则使用这种类型的UPDATE JOIN查询。下面是示例代码:
插入员工(EMP_NAME,PERF,薪水)值(Rudy John,Null,43000),(Max Rockwell,Null,52000);更新员工在员工上留下加入效果.Perf = Merits.perf Set Salary =薪资+薪水* 0.015;merit.percent是null
现在,在这种情况下,因为我们没有这些新条目的相应百分比,所以我们在查询本身中提供1.5%的修订版。Where语句确切地告诉应该在哪里发生更改,或者应该影响哪些条目。
输出:
emp_id. | emp_name. | 性能 | 工资 |
1 | Mike Doe. | 1 | 55000 |
2 | 玛丽格林斯潘 | 3. | 61800 |
3. | 恩史密斯 | 4 | 80080 |
4 | 苏约翰逊 | 5 | 115500 |
5 | 约翰·戴尔 | 3. | 78280 |
6 | 南希杰克逊 | 2 | 40800 |
7 | 茉莉花布什 | 3. | 57680 |
8 | 鲁迪·约翰 | 空值 | 43645 |
9 | 马克斯·罗克韦尔 | 空值 | 52780 |
您还可以使用正确的连接语句和具有更新语句的完整连接语句。当您需要从左侧表中返回右表中的所有行并从左侧表返回所有行并更新生成条目时,请使用正确的JOIN语句。如果找不到匹配项,则结果将在左侧表上为空。当我们提到左右时,它意味着在语法中,我们指定了连接的实际条件。完整的JOIN语句组合了左连接和右连接的结果,因此即使找不到条件匹配,查询也会根据更新条件返回所有行和更新。
尽管这条语句非常有用,并简化了许多复杂的数据库命令,但如果在目标表中找到多个匹配项,那么结果可能是随机的。因此,确保JOIN只对唯一的条目执行。