사원(emp)테이블을 select하는 예제

안녕하세요

이번 시간에는 사원(emp) 테이블을 select하는 예제 올려봅니다.

이번 예제도 쉽긴 하지만 저번 예제보다는 좀 더 활용도가 높습니다.

LIKE 연산자, ORDER BY절 등이 포함되 있으니 천천히 살펴보세요~!


==========================================================

[1]사원(emp)테이블에서 업무가 salesman이거나 president인 사원의 사번, 사원명, 업무, 급여를 보여주세요
--SALESMAN, PRESIDENT 같은 경우 원래 값이 대문자이므로 대문자로 조회해야함
select empno,ename,job,sal from emp where
job='SALESMAN' or job='PRESIDENT';



--값은 대소문자를 구분한다 upper()함수=>대문자로 바꿔줌 lower()

==========================================================

--[2]사원 테이블에서 급여가 1500이 아닌 사원의 이름,급여를 출력하세요
select ename,sal from emp where sal!=1500;
--sal<>1500



==========================================================

--[3]emp에서 급여가 2000,3000,5000인 사원의 이름, 업무, 급여 보여주세요
select ename,job,sal from emp where sal=2000 or sal=3000 or sal=5000;
--sal in(2000,3000,5000)



==========================================================

[4]emp에서 급여가 2000,3000,5000이 아닌 사원의 이름, 업무, 급여 보여주세요
select ename,job,sal from emp where sal not in(2000,3000,5000);
select ename,job,sal from emp where sal<>2000 and sal<>3000 and sal<>5000;



==========================================================

LIKE 연산자
검색 할 때 와일드 카드를 사용하여 많이 쓴다
WHERE 컬럼명 LIKE '조건';
WHERE 컬럼명 LIKE '조건%';
WHERE 컬럼명 LIKE '%조건';
WHERE 컬럼명 LIKE '%조건%';
%->와일드 카드 / 문자가 0개 이상의 문자
'_' =>1개의 문자와

SELECT * FROM STUDENT WHERE NAME LIKE '홍%';

[5]emp에서 이름 S자로 시작하는 사원의 이름,업무 보여주세요
select * from emp;
select ename,job from EMP where ENAME like 'S%';



==========================================================

[6]emp에서 이름 중 S자가 들어가는 사원의 모든 정보를 보여주세요
select * from emp where ename like '%S%';



==========================================================

[7]emp에서 이름이 D로 끝나는 사원의 이름, 급여를 보여주세요
select ename, sal from emp where ename like '%D';



==========================================================

[8]이름의 두번째에 O자가 들어가는 사람 정보를 보여주세요
select * from emp where ename like '_O%';



==========================================================

[9]이름의 끝에서 세번째에 T자가 들어가는 사람 정보를 보여주세요
select * from emp where ename like '%T__';



==========================================================

[10 emp에서 82년도에 입사한 사원의 이름,입사일을 보여주세요
select ename,hiredate from emp where hiredate like '82%';



==========================================================

날짜 포맷을 변경하자
ALTER SESSION SET NLS_DATE_FORMAT='YY/MM/DD';
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY';

[11] member에서 '강북구'에 사는 회원의 이름,주소,마일리지를 보여주세요
select name, ADDR, MILEAGE from member where addr like '%강북%';



==========================================================

[12] EMP에서 COMM이 0인 사원의 이름, JOB, 급여, COMM을 보여주세요
select ename, job, sal, comm from emp where comm=0;



==========================================================

[13] EMP에서 보너스(COMM)을 받지 않는 사원의 이름, 업무, 급여, COMM을 보여주세요
SELECT ENAME,JOB,SAL,COMM FROM EMP WHERE COMM is NULL;
SELECT ENAME,JOB,SAL,COMM FROM EMP WHERE COMM is not NULL;



null 비교는 = 로 비교하면 안된다, IS NULL 연산자로 비교한다

==========================================================

ORDER BY절
데이터를 정렬하고자 할 때 사용한다
오름차순 ASEC <= 디폴트
내림차순 DESC
ORDER BY절은 SELECT문의 제일 뒤에 위치한다.

WGHO순서 (WHERE, GROUP BY, HAVING, ORDER BY)

[14] EMP에서 입사일자 순으로 정렬하여 사번,이름,입사일을 보여주세요
select empno,ename,hiredate from emp order by hiredate desc;



==========================================================

[15] 이름을 알파벳 순으로 보여주세요
select ename from emp order by ename;
select empno,ename,hiredate, sal*12+nvl(comm,0) from emp order by 2 asc; --2번째 칼럼을 오름차순으로 보여주세요



==========================================================

[16] 연봉이 제일 많은 순서대로 가져와 보여주세요
select empno,ename,hiredate,sal*12+nvl(comm,0) from emp order by 4 desc;



==========================================================

[17] EMP에서 부서번호(DEPTNO)로 정렬한 후 부서번호가 같을 경우 급여가 많은 순으로 정렬하여 사번, 이름, 부서번호, 급여, 업무를 출력하세요
select empno, ename, deptno, sal, job from emp order by deptno, sal desc;



==========================================================

[18] 상품(PRODUCTS) 테이블에서 판매가격(OUTPUT_PRICE)이 저렴한 순서대로 상품을 정렬하여 모든 정보를 보여주세요
select * from products order by output_price;



==========================================================

댓글 없음:

댓글 쓰기