PL/SQL第三章 基础查询语句

时间:2022-06-03 07:32:27
 --查询所有列 select * from tab_name|view_name;
SELECT * FROM emp;
SELECT * FROM (SELECT * FROM emp);
--查询特定列
SELECT * FROM emp WHERE emp.ename='SMITH';
-- 注意PL/SQL Developer不支持会话控制语句
--以特殊格式显示日期列:数据类型是date或timestamp,默认显示格式:DD-Mon-RR
ALTER SESSION SET nls_date_language='SIMPLIFIED CHINESE';
ALTER SESSION SET nls_date_language='AMERICAN';
ALTER SESSION SET nls_date_format='YYYY"年"MM"月"DD"日"';
SELECT * FROM emp;
SELECT ename,hiredate FROM emp;
-- 使用to_char函数定制日期显示格式
SELECT ename,to_char(hiredate,'yyyy"年"-MM_DD') FROM emp; --取消重复列,使用关键字distinct,使用分组方式
SELECT deptno,job FROM emp;
SELECT DISTINCT deptno,job FROM emp;
SELECT deptno,job FROM emp GROUP BY deptno,job;
-- 显示重复的行数据
SELECT deptno,job FROM emp GROUP BY deptno,job HAVING COUNT(*)>1; --使用算数表达式,取别名不能使用引号 SELECT ename,sal,sal*12 ‘年薪’ FROM emp;会报错 要么使用双引号,要么不用,就是不能使用单引号
SELECT ename,sal,sal*12 "年薪" FROM emp;
SELECT ename,sal,sal*12 AS "nianxin" FROM emp;
--使用别名
--处理null:null表示未知值,不是空格,也不是0,注意:当表达式中包含null,其显示的结果也为null
-- 使用nvl或nvl2处理null 此处的nvl相当于sqlserver中的isnull函数
SELECT ename,sal,comm,sal+comm FROM emp;
SELECT ename,sal,comm,sal+NVL(comm,0) FROM emp;
SELECT ename,sal,comm,NVL2(comm,comm+sal,sal) FROM emp;--nvl2相当于三元表达式 --连接字符串,使用||操作符或者concat函数
SELECT CONCAT(CONCAT(ename,'''s salary is '),sal) FROM emp; --查看表
select table_name from all_tables;
select table_name from user_tables;