SQL 활용연습문제
1. SELECT 명령어
문제) emp 사원테이블을 생성하시오
create table emp( ); |
문제) 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); |
문제1) 테이블의 필드 목록을 확인하시오
select * from emp; |
문제2) 사원이름순(오름차순) 정렬하시오
select ename from emp group by ename order by ename; |
문제3) 사원이름순(내림차순) 정렬하시오
select ename from emp group by ename order by ename desc; |
문제4) 급여 내림차순으로 사원이름(ename), 급여(sal), 부서코드(deptno)를 조회하시오
select ename,sal,deptno from emp order by sal desc; |
문제5) 부서코드 오름차순, 급여 내림차순으로 사원이름(ename), 급여(sal), 부서코드(deptno)를 조회하시오
select ename, sal, deptno from emp order by deptno, sal desc; |
-> 먼저 부서코드의 차순을 맞춰준 후에 급여의 내림차순을 맞춰준다.
문제6) 이름(ename)/입사일자(hiredate)/부서코드(deptno)를 부서코드 오름차순, 입사일자(hiredate) 오름차순으로 조회하시오
select ename, hiredate, deptno from emp order by deptno, hiredate; |
문제7) 직급(job) 칼럼의 중복데이터를 하나씩만 조회하시오
select distinct(job) from emp; |
문제8) emp테이블의 job 오름차순, sal 내림차순으로 정렬해서 ename 이름, job 직급, sal 급여 칼럼명으로 별칭을 바꿔서 조회하시오
select ename as 이름, job as 직급, sal as 급여 from emp order by job, sal desc; |
문제9) 급여가 100보다 많고 400보다 작은 직원 조회하기(급여 내림차순)
select ename, sal from emp where sal between 100 and 400 order by sal; |
문제10) 급여가 100이하 또는 400 이상의 직원 검색하기(급여 내림차순)
select ename, sal from emp where sal<=100 or sal>=400 order by sal; |
문제11) 직급(job)이 과장 또는 부장인 직원들을 이름순으로 조회하시오
select ename, job from emp where job='과장' or job='부장' order by job, ename; |
문제12) 부서코드(deptno)가 30인 직원을 조회하시오
select ename, deptno from emp where deptno=30; |
문제13) 중복된 부서코드를 한개씩만 조회하시오
select distinct(deptno) from emp; |
문제14) 부서코드가 10 또는 20 또는 30인 직원을 조회하시오 (or, in연산자 각각 활용해서 조회)
select ename, deptno from emp where deptno=10 or deptno=20 or deptno=30;
|
문제15) 급여가 300~500인 직원을 급여순으로 조회하시오 (and, between연산자 각각 활용해서 조회)
select ename, sal from emp where sal between 300 and 500 order by sal; |
문제16) 이름이 무궁화 조회하시오
select ename from emp where ename='무궁화'; |
문제17) 김씨성을 조회하시오
select ename from emp where enam like '김%'; |
문제18) 이름에 '화' 포함된 줄을 조회하시오
select ename from emp where ename like '%화%'; |
문제19) 연봉을 아래와 같이 구한후 이름, 급여, 커미션, 연봉을 조회하시오 연봉구하는 식 : 급여(sal)*12개월+보너스(comm)
alter table emp add yb number (9,2);
|
문제20) 커미션이 null이면 0으로 바꾼후 연봉을 다시 계산해서 이름, 급여, 커미션, 연봉을 조회하시오
update emp set comm=nvl(comm,0);
|
문제21) 각 사람의 급여를 검색해서 '누구누구의 급여는 얼마입니다'로 조회하시오 (|| 결합연산자)
select ename || '의 급여는 ' || sal || '입니다' from emp; |
문제22) 다음의 SQL문을 분석하시오
select empno, sal from emp where not(sal>200 and sal<300) order by sal; |
-> 급여가 200이하 300이상 사원의 사번을 급여순으로 조회하시오
문제23) 다음의 SQL문을 분석하시오
select empno, sal from emp where not sal>200 and sal<300 order by sal; |
-> 급여가 200이하 사원의 사번을 급여순으로 조회하시오.
문제24) emp테이블에서 입사일(hiredate)이 2005년 1월 1일 이전인 사원에 대해 사원의 이름(ename), 입사일, 부서번호(deptno)를 입사일순으로 조회하시오
select ename, hiredate, deptno from emp where hiredate < '2005-01-01'; |
문제25) emp테이블에서 부서번호가 20번이나 30번인 부서에 속한 사원들에 대하여 이름, 직업코드(job), 부서번호를 이름순으로 조회하시오 (or, in연산자 각각 활용해서 모두 조회)
select ename, job, deptno from emp where deptno=20 or deptno=30;
|
'공부 > SQL 활용' 카테고리의 다른 글
7월25일 - SQL 활용 5 : JOIN (0) | 2019.07.25 |
---|---|
7월24일 - SQL활용 4 : View & Index (0) | 2019.07.24 |
7월22일 - SQL활용 3 : 함수 (0) | 2019.07.22 |
7월19일 - SQL 활용 2 (0) | 2019.07.19 |
7월18일 - SQL활용 1 (0) | 2019.07.18 |