SQL(如果是:学习各种表单IF-THEN语句
SQL代表结构化查询语言。它是一种强大的数据库计算机语言,该语言于1974年介绍。SQL专门用于与关系数据库一起使用。所有关系数据库系统,如Oracle,MySQL,MS SQL Server等,使用此标准数据库语言。SQL用于在关系数据库管理系统中创建,存储,检索,更改和删除数据。PL / SQL是SQL的程序扩展语言,提供了许多数据类型和有用的编程结构。由于PL / SQL,用户可以使用数据库对象创建功能和过程。其他重要功能包括异常处理和对面向对象编程的支持。学习PL / SQL的先决条件包括了解SQL和编程的基础知识。
在这里,我们将介绍PL/SQL IF THEN条件构造。如果您是SQL新手,您可以这样做首先学习这门关于SQL的入门课程.
条件结构 - 如果那么
如果......然后构造是PL / SQL的一部分。它属于条件陈述的类别。这意味着可以基于所定义的或基于逻辑的决策来采取多种操作。这种条件构建体有三种变体。它们如下
- 如果……
- 如果…那么…
- 如果…那么…ELSIF…ENDIF
IF语句的第一个变体:Simple IF THEN
这是一个单一的条件声明。这种条件结构通常用于从命令提示符操作表中的数据。
如果此语句的基本语法如下
IF (condition) THEN语句结束IF;
请注意,条件和其他语句是在SQL中的所有帽中写入的。通过IF语句,我们首先检查一个条件。如果它评估为true,则执行与然后与然后执行关联的语句。否则,程序控制转到了该程序的下一个语句。看看以下示例。
例1:程序检查一个数字的值
DECLARE num INTEGER(2):= 10;BEGIN IF (num = 10) THEN DBMS_OUTPUT。PUT_LINE('条件为真');如果;结束;/
该计划有2个部分。
- DECLARE SECTION——在这个SECTION中声明变量。
- BEGIN和END块——可执行语句被放置在BEGIN和END关键字中。这是一个强制性的部分。
注意,在命令提示符中执行程序需要末尾的/。通过本课程学习如何编写自己的SQL程序.
示例2:如果在此语句中使用存在条件以删除表中的记录
这里我们使用一个名为customer的现有表。其中一个字段叫做ID。
IF EXISTS(SELECT 1 FROM customer WHERE ID = 100) THEN DELETE FROM customer WHERE ID = 100 End IF;结束/
这里使用的EXISTS条件是SQL的一部分。它接受子查询作为参数。只有当子查询返回至少一行时,这个条件才为真。在本例中,IF…THEN语句评估customer表中是否存在一条记录。如果条件为真,则程序继续从表中删除相关记录。你可以学习更多关于使用SQL数据库的课程。
示例3:如果使用不存在的情况,则使用if语句
让我们看一个示例,使用带有NOT EXISTS条件的IF THEN语句来避免插入重复的记录给予表格
如果不存在(SELECT 1 FROM customer WHERE ID = 100) THEN INSERT INTO customer (ID) VALUES (100) END IF结束;/
这里,只有当参数子查询没有从指定的表返回任何记录时,NOT EXISTS SQL条件才为真。如果条件为真,则向客户表中插入一条记录。
IF语句的第二种变体:如果是否则否则
语法如下(条件)那么遵循;否则声明;如果;
这里,首先评估IF条件。如果它是真的,则执行关联的语句。如果为false,则控制将传递给else子句,并且执行与else关联的语句。看看给定的计划。
实施例4:确定特定员工工资的奖金组成部分
这里,我们使用的是一个名为employee的现有表,它有employee_id和salary字段。
宣布销售编号(8,2):= 15000;配额号(8,2):= 10000;奖金数量(2);EMP_ID号码(6):= 250;如果销售>(配额+ 200)开始奖金:=(销售 - 配额)/ 4;否则奖金:= 100;如果;更新员工设置薪资= employee_id = emp_id的薪资+奖金;结束;/
在此程序中,如果为true评估IF条件,计算员工的奖金。但是,如果条件为false,则程序控件转到else子句,其中将固定值分配给奖励变量。接下来,执行SQL UPDATE命令,通过将奖励值添加到现有的工资值,更新包含给定employee_id的记录的薪资字段。
如果声明的第三种变体:如果...那......然后... elsif ...结局
有时您可能想在不同的选项中进行选择。为此,您可以使用IF THEN ELSIF语句。语法如下所示
如果(条件-1)那么语句-1;Elsif(条件-2)那么声明-2;elsif(条件-3)然后声明-3;否则声明;万一;
注意这里的关键字是ELSIF,而不是ELSEIF或ELSEIF。可以有任意数量的ELSIF子句。但是,末尾的ELSE子句是可选的。在这里,每个条件都按顺序逐一计算。如果特定的条件为真,则执行其关联的语句。在此之后,控制转到END IF后面的程序语句。在所有条件都为假的情况下,将执行与ELSE子句关联的语句。
根据不同的绩效标准来确定员工奖金
DECLARE sales NUMBER(8,2):= 50000;奖金数量(2);emp_id NUMBER(6):= 120;BEGIN IF sales > 60000 THEN奖金:= 2000;ELSIF sales > 35000 THEN奖金:= 1000;ELSE奖金:= 500;如果;UPDATE employees SET salary = salary + bonus WHERE employee_id = emp_id结束;/
既然我们已经给你介绍了这么多例子,那就自己试着弄清楚这个例子吧。请在评论中留下你的解释!
学习任何新的编程语言总是有趣。如果您按下时间,您可以将我们的崩溃课程带到学习SQL在短短6天.绝对值得!