2.1 PL/SQL块
匿名块(anonynous)通常是动态生成,只能被执行一次。
带名块(named)是带有标签的匿名块,也是动态生成,只能被执行一次。
子程序(subprogram)是存储在数据库内部的过程、包、函数,可以被多次执行。
触发器(trigger)是存储在数据库内部的带名块,可以被多次执行。当触发事件出现时,trigger被显式地执行。触发事件(triggering
event)是DML语句(INSERT、UPDATE、DELETE)。
块结构
<<label_named>>
DECLARE
/* Declarative section is here */
BEGIN
/* Exectutable sectio is here */
EXCEPTION
/* Exception section is here */
END
2.2.1 identifier
identifier标识符的最大长度是30个字符。标识符由字母开头,后面(可选)跟随任何字符序列,包括字母、数字、货币符号($)、下划线
字符(_)、#号字符(#)。
2.2.4 注释
comment:单行注释由两个连词符开始(--),多行注释( /* comment */ ),由/*开头,由*/结尾。
2.4.1 布尔族
布尔族中唯一的数据类型就是BOOLEAN。BOOLEAN数值仅可以存储TRUE、FALSE、NULL。
2.4.2 复合类型
PL/SQL中可以使用的composite type 复合类型有 记录、表、数组
2.4.5 %TYPE类型
v_VariableName table_name.column_name%TYPE --return 某表中某列的类型
如果%TYPE应用于一个被限制为NOT NULL的标量或者列,那么它返回的类型 就没有这个限制。
2.5.2 LIKE运算符
LIKE运算符用来对字符串进行模式匹配。下划线(_)用于精确地匹配一个字符。百分号字符(%)用于匹配零个或者多个字符。例如:
'Scott' LIKE 'Sc%t'
'Scott' LIKE 'Sc_tt'
'Scott' LIKE 'S%'
'Scott' LIKE '%'
BETWEEN操作符在一个表达式中将<=和>=组合在一起。例如:
100 BETWEEN 110 AND 120 将返回FALSE,100 BETWEEN 90 AND 110 将返回TRUE。
IN操作符用于判断第一个操作数是否包含在由第二个操作数标识的集合中。例如
'Scott' IN ('Mike','Pamela','Fred') 将返回FALSE
如果集合中包含若干个NULL,那么它们将被忽略,因为与NULL进行比较将永远返回NULL。
NULL意味着”没有或者未知的数值“,仅当其操作数是NULL的时候,IS NULL操作才返回TRUE。不能使用关系运算符对NULL进行测
试,因为使用NULL操作数的所有关系表达式都返回NULL。
relational关系或comparison比较操作符对数字、字符、数据操作进行运算并返回一个布尔值。有=、!=、<、>、<=、>=