관리 메뉴

공부한것들을 정리하는 블로그 입니다.

1.WHERE조건절연습 본문

SK고용디딤돌/DB

1.WHERE조건절연습

호 두 2017. 7. 13. 00:55
반응형


-- system 계정으로 접속 후 skstudy라는 계정을 생성해준다
create user skstudy identified by skstudy default tablespace users temporary tablespace temp;
-- skstudy계정에 권한을 부여
grant connect,resource to skstudy;


-- system 계정으로 접속 후 skstudy라는 계정을 생성해준다
--문제1 ) EMP 테이블에서 JOB이 Manager,Clerk,Analyst가 아닌 사원의 사원번호, 성명, 담당업무, 급여, 부서번호를 출력하여라
select 사원번호, 성명, 담당업무, 급여, 부서번호 from emp where job not in ('Manager','Clerk','Analyst');

--문제 2) emp 테이블에서 이름, 급여, 보너스, 연봉을 출력하시오(heading을 연봉으로 출력하세요).
select 이름, 급여, 보너스, nvl(급여 *12 +보너스, 급여 *12) 연봉 from emp;
/* 
	NVL 함수는 NULL값을 다른 값으로 바꿀 때 쓰입니다. 
	모든 데이터 타입에 적용 가능합니다. 
	전환되는 값의 데이터 타입을 일치시켜야 합니다.
	괄호() 안의 좌측 값이 null일 경우, 우측 값으로 바꾸어서 출력합니다

	nvl(급여 *12 +보너스, sal*12)과 ((급여 *12) +nvl(보너스,0))은 동일
*/

--문제 3) EMP 테이블에서 이름과 연봉을 "KING : 1 Year salary = 60000" 형식으로 출력하시오( ||'  '|| : 사용방법).
select 이름 ||' : 1 Year salary = '|| ((급여 *12) +nvl(보너스,0)) "이름 및 연봉" from emp;
/*
	컬럼은 하나만 생성됨("이름 및 연봉")
*/

--문제 4) EMP테이블에서 가장 최근에 입사한 순으로 사원번호, 이름, 업무, 급여, 입사일자, 부서번호를 출력하라(ORDER BY : 정렬 출력 + DESC; 내림차순 정렬).
select 사원번호, 이름, 업무, 급여, 입사일자, 부서번호 from emp order by 가입일 desc;

--문제 5) EMP 테이블에서 SMITH 사원의 모든 정보를 조회하시오(조건식 : WHERE 절 사용방법).
select * from emp where 사원 = 'smith';

--문제 6) EMP 테이블에서 급여가 3000이상인 사원의 사원번호, 이름, 담당업무, 급여를 출력하라(조건식 : WHERE 절 사용방법).
select 사원번호, 이름, 담당업무, 급여 from emp where 급여 >= 3000;

--문제 7) EMP 테이블에서 1982년 1월 1일 이후에 입사한 사원의 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하라(조건식 : WHERE 절 사용방법).
select 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호 from emp 
where to_char(입사일,'yyyy-mm-dd') >= '1982-01-01';

--문제 8) EMP 테이블에서 급여가 1300에서 1500사이의 사원의 성명, 담당업무, 급여, 부서번호를 출력하라.
select 성명, 담당업무, 급여, 부서번호 from emp
where 급여 between 1300 and 1500;

--문제 9) EMP 테이블에서 사원번호가 7902, 7788, 7566 인 사원의 사원번호, 성명, 담당업무, 급여, 입사일자를 출력하여라.
select 사원번호, 성명, 담당업무, 급여, 입사일자 from emp
where 사원번호 in ('7902', '7788', '7566');
/* where 사원번호 in (7902, 7788, 7566); 로 써도 차이 없음 */

--문제 10) EMP 테이블에서 입사일자가 1982년도에 입사한 사원의 사번, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하여라.
select 사번, 성명, 담당업무, 급여, 입사일자, 부서번호 from emp
where to_char(입사일자,'yyyy') = '1982';
/* WHERE 입사일자 LIKE '%82%'; */
/* WHERE to_char(입사일자,'yyyy-mm-dd') between '1982-01-01' and '1982-12-31';  */

--문제 11)  EMP 테이블에서 보너스가 NULL인 사원의 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하여라.
select 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호 from emp
where 보녀스 is null;
/*
	is null
*/

--문제 12). EMP 테이블에서 급여가 1100이상이고 JOB이 Manager인 사원의 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하여라.
select 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호 from emp
where 급여 >= 1100
and job = 'manager';

--문제 13) EMP 테이블에서 급여가 1500이상이고, 부서번호가 10 또는30인 사원의 이름과 급여를 출력하는 SELECT 문장을 작성하여라. 단 HEADING을 Employee과 Monthly Salary로 출력하여라.
select 이름 as "Employee" 급여 as "Monthly Salary" from emp
where 급여 >= 1500
and (부서번호 = 10 or 부서번호 = 30)
/* and 부서번호 in (10, 30) */
/*
	as "a 띄어쓰기 b"
	띄어쓰기 있을때는 " " 사용해야함
*/


반응형

'SK고용디딤돌 > DB' 카테고리의 다른 글

2.functions연습-script  (0) 2017.07.13
2.functions연습  (0) 2017.07.13
1.WHERE조건절연습 - script  (0) 2017.07.13
Comments