- 2019/07/22 SQL 활용 연습문제2019년 07월 22일
- 조별하
- 작성자
- 2019.07.22.:08
[전 수업] 시나리오 정의서에 의한 테이블을 작성해보고 시퀀스를 사용해 일련번호를 넣어보았다
[본 수업] SQL 활용 연습문제들을 풀어보자
문1) emp사원테이블을 생성하시오
create table emp(
empno number(4) --사번
,ename varchar2(10)--이름
,job varchar2(9) --직급
,mgr number(4) --매니저정보
,hiredate date --입사일
,sal number(7,2)--급여
,comm number(7,2)--커미션(보너스)
,deptno number(2) --부서코드
);문2) emp 사원테이블에 행을 추가하시오
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7369, '개나리', '사원', 7902, '2000-12-17', 200, 20);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7499, '진달래', '주임', 7698, '2001-12-15', 360, 20);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7521, '라일락', '주임', 7698, '2001-02-17', 355, 30);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7654, '손흥민', '과장', 7839, '2002-01-11', 400, 30);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7698, '박지성', '주임', 7698, '2000-07-12', 325, 20);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7782, '김연아', '사원', 7698, '2001-12-17', 225, 10);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7778, '무궁화', '사원', 7839, '2005-11-14', 200, 10);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7839, '홍길동', '부장', 7566, '2006-06-17', 450, 20);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7844, '송강호', '과장', 7566, '2018-09-17', 400, 30);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7876, '정우성', '대표', 7839, '2004-09-09', 500, 30);
insert into emp(empno, ename, job, mgr, hiredate, sal, deptno)
values(7900, '김혜수', '사원', 7902, '2001-12-03', 200, 20);문3) 테이블의 필드 목록을 확인하시오
select * from emp;
문4~5) 사원이름순(오름차순) 정렬하시오
※오름차순
select empno,ename
from emp
order by ename;※내림차순
select empno,ename
from emp
order by ename desc;문6) 급여 내림차순으로 사원이름(enme),급여(sal), 부서코드(deptno)를 조회하시오
select ename,sal,deptno
from emp
order by sal desc;문7) 부서코드 오름차순, 급여 내림차순으로
사원이름(ename), 급여(sal), 부서코드(deptno)를 조회하시오select ename,sal,deptno
from emp
order by deptno asc, sal desc;문8) 이름(ename)/입사일자(hiredate)/부서코드(deptno)를
부서코드 오름차순, 입사일자(hiredate) 오름차순으로 조회하시오select ename,hiredate,deptno
from emp
order by deptno, hiredate;문9) 직급(job) 칼럼의 중복데이터를 하나씩만 조회하시오
select DISTINCT (job)
from emp;문10) emp테이블의 job 오름차순, sal 내림차순으로 정렬해서
ename 이름, job 직급, sal 급여 칼럼명으로 별칭을 바꿔서 조회하시오select ename 이름, job 직급, sal 급여
from emp
order by job asc,급여 desc;※위에서 임시로 사용한 급여라는 이름으로 정렬이 가능하다
문11) 급여가 100보다 많고 400보다 작은 직원 조회하기(급여 내림차순)
select ename,sal
from emp
where sal>100 AND sal<400
order by sal desc;문12) 급여가 100이하 또는 400 이상의 직원 검색하기(급여 내림차순)
select ename,sal
from emp
where sal<=100 OR sal>=400
order by sal desc;문13) 직급(job)이 과장 또는 부장인 직원들을 이름순으로 조회하시오
select ename,job
from emp
where job in('과장','부장')
order by ename;문14) 부서코드(deptno)가 30인 직원을 조회하시오
select ename,deptno
from emp
where deptno=30;문15) 중복된 부서코드를 한개씩만 조회하시오
select DISTINCT deptno
from emp;문16) 부서코드가 10 또는 20 또는 30인 직원을 조회하시오
(or, in연산자 각각 활용해서 조회)select ename,deptno
from emp
where deptno in('10','20','30');문17) 급여가 300~500인 직원을 급여순으로 조회하시오
(and, between연산자 각각 활용해서 조회)select *
from emp
where sal between 300 and 500
order by sal asc;문18) 이름이 무궁화 조회하시오
select ename
from emp
where ename='무궁화';문19) 김씨성을 조회하시오
select ename
from emp
where ename like('김__');문20) 이름에 '화' 포함된 줄을 조회하시오
select *
from emp
where ename like('%화%');문21) 연봉을 아래와 같이 구한후 이름, 급여, 커미션, 연봉을 조회하시오
연봉구하는 식 : 급여(sal)*12개월+보너스(comm)
dual 로 임시테이블을 볼 수 있다select ename,sal,comm,(sal*12)+comm as 연봉
from emp;문22) 커미션(comm)이 null이면 0으로 바꾼후 연봉을 다시 계산해서
이름, 급여, 커미션(comm), 연봉을 조회하시오select ename,sal,nvl(comm,0)as 보너스,(sal*12)+nvl(comm,0) as 연봉
from emp;문23) 각 사람의 급여를 검색해서 '누구누구의 급여는 얼마입니다'로 조회하시오
(|| 결합연산자)select ename || '의' ||' 급여는 '|| sal || '입니다'
from emp;문24) 다음의 SQL문을 분석하시오
select empno, sal
from emp
where not(sal>200 and sal<300)
order by sal;emp 테이블에서 급여가 200이하 300이상인 사번을 급여가 오름차순으로 해서 구하시오
문25) emp테이블에서 입사일(hiredate)이 2005년 1월 1일 이전인 사원에 대해
사원의 이름(ename), 입사일, 부서번호(deptno)를 입사일순으로 조회하시오select ename,hiredate,deptno
from emp
where hiredate<'2005-01-01'
order by hiredate;문26) emp테이블에서 부서번호가 20번이나 30번인 부서에 속한
사원들에 대하여 이름, 직업코드(job), 부서번호를 이름순으로 조회하시오
(or, in연산자 각각 활용해서 모두 조회)select ename,job,deptno
from emp
where deptno='20'OR deptno='30'
order by ename;※연산자 우선순위
() 괄호:연산자 우선순위보다 우선함
1순위: 비교연산자,SQL연산자,산술연산자
2순위: not
3순위: and
4순위: or
5순위: 결합연산자'JAVA 교육 > Sql' 카테고리의 다른 글
2019/07/23 Group by 명령어 & 서브쿼리 (0) 2019.07.24 2019/07/22 오라클 함수 (0) 2019.07.24 2019/07/19 시나리오 정의서에 의한 테이블 작성 & 시퀀스 (0) 2019.07.22 2019/07/19-DB (제약조건) (0) 2019.07.19 2019/07/19-SQL (sqldeveloper를 이용한 DB) (1) 2019.07.19 다음글이전글이전 글이 없습니다.댓글