• 티스토리 홈
  • 프로필사진
    조별하
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
조별하
  • 프로필사진
    조별하
    • 분류 전체보기 (124)
      • 1. 공부 (0)
        • 기술 면접 (0)
      • 2. 웹개발 (7)
        • Java (1)
        • IT 정보 (5)
        • Error 모음 (1)
      • 3. 개인관심 (1)
        • 전자 (1)
      • GITHUB (5)
      • IT 기술 면접 (3)
      • COMPUTER (2)
      • TASK (1)
      • LANGUAGES (20)
        • Python (3)
        • Django (6)
        • Java (7)
        • Node (1)
        • Jsp (2)
        • R (1)
      • 데이터과학 (2)
        • 머신러닝 및 딥러닝 (2)
      • DATABASE (5)
        • Oracle (2)
      • ISSUE (10)
        • Django (4)
        • Drf (2)
        • Javascript (1)
        • Git (1)
      • JAVA 교육 (65)
        • Java (3)
        • Jquery (2)
        • Sql (16)
        • Jdbc (1)
        • Db (2)
        • Jsp (9)
        • myWeb (15)
        • Servlet (4)
        • Spring (12)
        • Crawling (0)
        • Hosting (1)
      • 정보처리산업기사 (1)
      • EDUCATION (2)
        • IoT 서비스 (2)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 2019/07/22 SQL 활용 연습문제
        2019년 07월 22일
        • 조별하
        • 작성자
        • 2019.07.22.:08

        [전 수업] 시나리오 정의서에 의한 테이블을 작성해보고 시퀀스를 사용해 일련번호를 넣어보았다

        [본 수업] SQL 활용 연습문제들을 풀어보자

         


        SQL 활용 연습문제.pdf
        0.06MB

         문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
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바