Oracle之基础语法

Oracle之基础语法

一 Select语句及过滤

(1)语法:

SELECT *|[DISTINCT] 字段列表 FROM 表名 [WHERE 筛选条件][ORDER BY ASC/DESC];

(2)注意
大小写不敏感
② SQL可以写一行或多行
③ 关键字不能缩写也不能分行
④ 各个子句一般要分行写
使用缩进提高语句的可读性
(3)使用数字运算符
数字和日期可以使用算数运算符
(4)操作符优先级
① 乘除的优先级高于加减
② 同一优先级运算符从左向右执行
③ 括号内的运算符先执行
空值的数学表达式都为空值
(5)列的别名
是一个重命名的一个列,便于计算,紧跟列名,也可以在列名和别名之间加 ‘AS’ ,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写

SELECT last_name AS name FROM employees;
或者
SELECT last_name "name" FROM employees;

(6)连接符
“||” 来将列与列、列与字符连接在一起
例如将名字和工种id相连:

SELECT last_name||job_id AS "Employees" FROM employees;

在这里插入图片描述
(7)比较运算
① 基本比较运行符
“== 、> ,>=,<,<=,<>不等于, :=赋值符号”
② 其他比较运算符
BETWEEN…AND,IN(),LIKE,IS NULL
③ 转义符
回避特殊符号使用转义符,只要在特殊符号前加 ‘\’,然后再加上 ESCAPE ''即可。
(8)逻辑运算
① AND 逻辑与,全为真为真
② OR 逻辑或,有一个真就为真
③ NOT 逻辑非,取反
(9)优先级

算数运算符>连接符>比较符>IN(),LIKE,IS NULL>BETWEEN....AND>NOT>AND>OR

(10)字符串
字符串可以是SELECT 列表中的一个字符、数字、日期,其中日期和字符只能在单引号中出现。
(11)去除重复行
在SELECT 子句中使用关键字“DISTINCT”删除重复行记录
(12)显示表结构
使用DESCRIBE命令表示表结构

DESC[RIBE] 表名;

二 函数

1 单行函数
用于操作数据对象,接受参数返回一个结果,只对一行进行变换,每行返回一个结果,可以转换数据类型,可以进行嵌套,参数可以是一列或一个值。
(1)字符函数
① 大小写控制函数
LOWER,UPPER,INITCAP
在这里插入图片描述
② 字符控制函数
CONCAT,SUBSTR,LENGTH,INSTR,LPAD,RPAD,TRIM,REPLACE
在这里插入图片描述
③ 数字函数
ROUND,TRUNC,MOD
在这里插入图片描述
④ 日期函数
在日期上加上或减去一个数字结果仍为日期,两个日期相减返回日期之间相差的天数
可以用数字除以24来向日期中加上或减去天数
在这里插入图片描述
在这里插入图片描述

三 类型转换

1 隐式数据类型转换
Oracle自动完成下列的转换
在这里插入图片描述
2 显式转换
(1)TO_CHAR函数对日期的转换
必须包含在单引号内且大小写敏感,可以包含任意的有效日期格式,日期间用逗号隔开,使用双引号向日期中添加字符

TO_CHAR(date,'转换格式');
案例:
SELECT TO_CAHR(sysdate,'yyyy-mm-dd hh:mi:ss') FROM dual;

(2)TO_DATA函数对字符的转换

TO_DATA(char,[,'转换格式']);
案例:
TO_DATA(20121029日’,'yyyy “年” mm "月" dd "日"') FROM dual;

(3)TO_CHAR函数对数字的转换
下面是TO_CHAR函数中经常使用的几种格式
在这里插入图片描述

TO_CHAR(number,'转换格式');
案例:
SELECT TO_CHAR(salary,'$99,999,00') SALARY FROM employee WHERE last_name = 'Ernst';

(4)TO_NUMBER函数对字符的转换

TO_NUMBER(char,'转换格式');
案例:
TO_NUMBER('¥1,234,567,890.00','L999,999,999,999.99') FROM dual;

四 通用函数

1 NVL函数
将空值转换成一个已知的值
可以使用日期、字符和数字等数据类型
NVL(expr1,expr2)
NVL(expr1,expr2,expr3)类似于三目条件运算符
在这里插入图片描述
2 NULLIF函数
NULLIF(expr1,expr2);相等返回null,否则返回expr1列下的数据值
在这里插入图片描述
3 COALESCE函数
COALESCE与NVL相比可以同时处理交替的多个值,如果第一个表达式为空,则返回下一个表达式,对其他的参数进行COALESCE。

五 条件逻辑控制

1 CASE表达式
语法:

CASE expr WHEN 条件1 THEN 语句一
[WHEN 条件2 THEN 语句一 
......
ELSE 语句]
END
结果作为一个字段

案例:
在这里插入图片描述
2 DECODE函数
语法:

DECODE(字段|表达式,search1,result1,
			     [search1,result1,..],
			     [,default])

案例:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hcyxsh/article/details/114897634