虽然,忽略 ELSE 子句不会导致语法报错。
指定 ELSE 子句可以提高复杂 SQL 的可维护性,以避免在多层嵌套中出现由 NULL 导致的语义错误
3.子查询概述
子查询是嵌套在 SELECT,INSERT,UPDATE 或者 DELETE 内部的查询,另外一个子查询内部的查询也是子
查询
SELECT 语句中 FROM 子句下的子查询也称为内嵌视图
4.标量子查询
标量子查询的含义:标量子查询是指返回结果只有一行且只有一列的子查询。
标量子查询的使用范围:
DECODE 和 CASE 的条件和表达式部分。
SELECT 语句中除了 GROUP BY 之外的所有子句
UPDATE 语句中的 SET 子句和 WHERE 子句
5.相关子查询
相关子查询的含义:
当子查询引用父语句所引用表的一列时,崖山数据库会执行相关子查询。
相关子查询会在父语句每处理一行而计算一次。
相关子查询的执行过程:
由外部查询提取,获得一个候选行。
使用候选行的具体值执行内部查询。
使用内部查询的结果确定候选行是否符合要求。
重复执行操作,完成所有候选行的提取比较。
6.正则表达式函数
正则表达式函数概述:
正则表达式是对字符串操作的一种逻辑公式,在数据库中,除了使用 like 做一些比较简单的匹配外,还可以
使用正则表达式函数来完成更加复杂的匹配需求。
崖山数据库中, 正则表达式函数有 REGEXP_LINKE ,REGEXP_COUNT ,REGEXP_INSTR ,
REGEXP_REPLACE ,REGEXP_SUBSTR 。
正则表达式函数的作用主要是,判断特定的字符串是否符合某种模式。
常见正则匹配
1 , ^ 匹配字符串的开始, $ 匹配字符串的结尾, . 匹配任意单个字符
2 , * : 匹配前面的模式零次或多次。
3 , + : 匹配前面的模式一次或多次。
4 , [ ] : 匹配括号内的任意一个字符。例如, [ a b c ] 匹配字符 " a " 、" b " 或 " c " 。
5 , [ ^ ] : 匹配除了括号内的字符以外的任意一个字符。例如, [ ^ a b c ] 匹配除了字符 " a "
、" b " 或 " c " 以外的任意字符。
'i': 大小写不敏感。
'c':大小写敏感,默认为此值。
'n':允许句点(.)匹配任何字符,包括换行符。如果省略此参数,则句点与换行符不匹配。
'm':将字符串视为多行,将^和$分别解释为字符串中任意行的开始和结束,而不仅仅是整个字符串的开始或
结束。如果省略此参数,则将字符串视为一行。
'x':忽略空白和#注释。默认情况下,空白字符与其自身匹配。
7.DEFAULT 的使用
使用方法
插入某列时指定 default,如果该列有默认值,则使用默认值,如果没有默认值则为 null。注意:该列如果
有非空约束,插入 null 将报错.
评论