一、SQL SELECT 语法简介
PL/SQL 的系列文章是学习丁世峰前辈的<<Oracle PL/SQL 从入门到精通>>这本书,各位同学可购买本书自己查看。
SELECT { [alias.]column | expression | [alias.]* [,...] }
FROM [schema.]table [alias] ;
最简单的一个查询sql:
SELECT * FROM DUAL;
DUAL是Oracle的一个虚拟表,里面只有一条空的数据,我们可以根据需求来使用,比如计算或者验证语法:
SELECT 1+1 T FROM DUAL;
SELECT TO_DATE('2020-11-18','YYYY-MM-DD') T FROM DUAL;
SELECT TO_DATE('2020-11-18','DD') T FROM DUAL;
上列语句中的T为别名,将自己查到的字段起一个自己需要的名称。如果别名中有空格,特殊字符或者大小写敏感字符,要使用双引号。
查询语句中可以加上运算符,如+ - * / :
SELECT (1+1)-10*2/5 T FROM DUAL;
SQL语句中的括号可以改变运算顺序。
使用DISTINCT关键字可以获取字段唯一值,但是DISTINCT会使索引失效,在程序中尽量不要使用。我在日常查询时使用此关键字去重。
SELECT DISTINCT JOB FROM EMP;
使用 || 符号可以连接一个或多个值,使之成为单个字段
SELECT ename || '的薪资是:' || sal 员工薪水 FROM emp ;
可以使用 WHERE 子句进行条件查询,过滤掉不需要的语句。对于数字类型,可以直接输入条件值,对于日期和字符串,需要使用单引号括住条件值。单引号中的字符串是区分大小写的。
SELECT * FROM emp WHERE sal >= 1000;
SELECT * FROM emp WHERE name = '张三' AND job = 'Clerk' ;
BETWEEN-AND操作符:要比较的值是否在两个值之间。使用时注意左右两端是闭区间, 即>= <= ,按照业务考虑是否使用。
IN操作符:要比较的值是否在任意的值列表中