Oracle基本クエリフィルタソート例解析


基本クエリ:

--
select * from emp;
--
set linesize 120;
--
col empno for 9999;
-- ,a
col ename for a8
-- pageSize 30
set pagesize 30;
--sql , : ,
select empno,ename,sal,sal*12,comm,sal*12+comm from emp;
-- comm 0
select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0) from emp;
-- , : ,
select empno as " ",ename " ",sal ,comm,sal*12+nvl(comm,0) from emp;
-- disctinct,
select distinct deptno from emp;
-- disctinct , deptno job ,
select distinct deptno,job from emp;
--
select ename ||' '||sal from emp;
注意:SQL言語の大きさは書き込みに敏感ではない。SQLは1行または複数行のキーワードに書いてもいいです。略語できません。また、支店の各サブ句は支店で書くのが一般的です。インデントを使って、語句の可読性を高めます。フィルタリングおよび並べ替え

--
select * from v$nls_parameters;
--
alter session set NLS_DATE_FORMAT='yyyy-mm-dd';
-- ,
select * from emp where hiredate='1981-11-17';
--
select * from emp where hiredate=to_date('1981-11-17','yyyy-mm-dd');
-- , 1000, 2000 ,between and
select * from emp where sal>=1000 and sal<=2000;
select * from emp where sal between 1000 and 2000;
--in: , 10 20
select * from emp where deptno=10 or deptno=20;
select * from emp where deptno in (10,20);
-- : S
select * from emp where ename like 'S%';
-- ,
select * from emp where ename like '____';
-- ,_ ,escape
select * from emp where ename like '%\_%' escape '\';
--
select * from emp where comm is not null;
-- ,
select * from emp order by sal;
--a : ,
a  desc
-- ,
select empno,ename,sal,sal*12 from emp order by sal*12;
--order by
select empno,ename,sal,sal*12 from emp order by ;
--order by
select empno,ename,sal,sal*12 from emp order by 4;
--order by , ;
select * from emp order by deptno,sal;
--order by , desc
select * from emp order by deptno desc,sal desc
--
select * from emp order by comm desc nulls last;
-- /
set feedback off/set feedback on
の規則:select文の列名順に並べられます。別名列名順に並べ替えられます。select文の列名の順序値に従って並べ替えられます。複数の列に並べ替えられる場合、最初の列に並べ替えられます。同じ場合、第二列に並べ替えられます。これをもって類推する