[1] where절(조건절)
--emp테이블에서 10번 부서에 근무하는 사원의 이름과 급여와 부서번호를 출력
select ename 사원명,sal 급여,deptno 부서번호 from emp where deptno=10;
--emp테이블에서 급여가 3000이상인 사람의 이름과 급여를 출력
select ename 사원명,sal 급여 from emp where sal>=3000;
--emp에서 이름이 KING인 사람의 이름과 사원번호, 급여를 조회(대소문자구분)
select ename,empno,sal from emp where ename='KING';
--student 테이블에서 몸무게가 60~80인 사람의 이름과 체중을 출력
방법 1) select name,weight from student where weight between 60 and 80;
방법 2) select name,weight from student where weight>=60 and weight<=80;
--emp에서 job이 MANAGER이거나 SALESMAN인 사람의 이름과 job을 출력
방법 1) select ename,job from emp where job='MANAGER' or job='SALESMAN';
방법 2) select ename,job from emp where job IN('MANAGER','SALESMAN');
--emp에서 comm이 NULL인 경우 모든 컬럼 출력(텍스트가 아니므로 NULL으로 써도됨)
select * from emp where comm is null;
--emp에서 comm이 NULL이 아닌 경우 모든 컬럼 출력
select * from emp where comm is not null;
--student테이블에서 성이 김씨인 사람 조회(Like '~%' : ~로 시작하는. like 소문자도 됨)
select name from student where name Like '김%';
--emp에서 이름이 J로 시작하는 사람의 부서번호,사원명,급여를 출력
select empno,ename,sal from emp where ename like 'J%';
--emp에서 이름이 N으로 끝나는 사람의 부서번호,사원명,급여를 출력(like '%~' : ~로 끝나는)
select empno,ename,sal from emp where ename like '%N';
--emp에서 이름의 두번째 글자가 A인 사람의 부서번호,사원명 출력(언더바 이용)
select empno,ename from emp where ename like '_A%';
--emp에서 이름의 세번째 글자가 A인 사람의 부서번호,사원명 출력
select empno,ename from emp where ename like '__A%';
--emp에서 이름의 두번째 또는 세번째 글자가 A인 사람의 부서번호,사원명 출력
select empno,ename from emp where ename like '_A%' or ename like '__A%';
--student에서 1학년학생의 이름과 키와 몸무게를 출력(단, 키가 작은사람부터 출력)
select name,height,weight from student where grade=1 order by height asc;
--student테이블의 2학년 학생중에서 키가 180보다 크거나 몸무게가 70보다 큰학생
select name,grade,height,weight from student where grade=2 and (height>180 or weight>70);
--emp에서 입사일이 82년 이전이고 MANAGER인 사람의 사원번호,이름,입사일 조회(날짜는 문자리터럴(' ')로 해야함)
select empno,ename,hiredate from emp where hiredate<='1982/01/01' and job='MANAGER';
[2] NVL
--NVL함수는 null값을 다른값으로 바꿀때 쓰임! 소문자(nvl)로 써도 됨
--NVL함수는 모든 데이터타입에 적용가능
--전환되는 값의 데이터타입을 일치시켜야함
--emp에서 급여+특별수당,일반수당을 합해서 총 수당 합계 조회(NVL사용해서!)
--참고)mysql에 가면 IFNULL로 사용된다!
select ename,sal,sal+100,NVL(comm,0),sal+(sal+100)+NVL(comm,0) from emp;
[3] UNION, UNION ALL
--UNION: 두 결과에서 중복된값 제거 후 출력
select name from student where deptno1=101 UNION
select name from student where deptno2=201;
--UNION ALL: 중복값까지 모두 출력
select name from student where deptno1=101 UNION ALL
select name from student where deptno2=201;
--intersect: 두 집합의 교집합을 찾는 집합연산
select name from student where deptno1=101 intersect
select name from student where deptno2=201;
'Oracle' 카테고리의 다른 글
[Oracle] SQL그룹함수, TO_CHAR함수, 서브쿼리 (0) | 2022.08.07 |
---|---|
[Oracle] Group함수, Having절, Cube함수, Join, View (0) | 2022.08.07 |
[Oracle] Table의 create/insert/alter/update/delete 그리고 Sequence (0) | 2022.08.07 |
[Oracle] Select문(조회),연결연산자 및 산술연산자 (0) | 2022.08.07 |