1.  SQL 단일행 함수에서 SUBSTR() 함수와 INSTR() 함수에 대해 설명하고, 아래 쿼리문에 대한 결과를 작성하시오.


    SELECT SUBSTR('abcde' , -3, 2) “-3,2”

    FROM dual;


    substr() : 문자열 잘라주는 함수

    instr('a*b#','b') -> 3: 찾는 문자의 위치를 알려주는 함수

    결과값: cd

    책 70쪽


    2. CASE문에 대해 설명하고 아래 유형에 대한 동작원리를 설명하시오.


    CASE a WHEN B THEN C

                WHEN E THEN F


    조건에 따라 결과를 출력하는 함수

    a 가 B이면 C를 출력하고

    a가 E면 F를 출력


    3. 정규식에서 기호 ^(캐럿)과 [^]의 차이에 대해 설명하시오.

    ^ : 뒤에 오는 문자가 첫글자로 오는 문자열 출력

    [^] : 해당 문자가 아닌 문자 출력

    책 124쪽


    4. RANK()와 DENSE_RANK() 함수의 기능과 차이점에 대해 설명하시오.

     두 함수의 기능은 순위를 정하는 함수

    RANK 함수는 동일한 순위를 다른 건수로 취급 ex) 1 2 2 4 5

    DENSE_RANK는 동일한 순위를 하나의 건수로 취급    ex) 1 2 2 3 4


    5. SELECT s.studno "no", s.deptno1 "dno", d.dname "dname"

       from student s, department d

       where s.deptno1=d.deptno; 

    의 결과값을 표현하시오.


            no        dno dname

    ---------- ---------- ----------------------------------------------------------------------------------------------------

          9411        101 Computer Engineering

          9412        102 Multimedia Engineering

          9413        103 Software Engineering

          9414        201 Electronic Engineering

          9415        202 Mechanical Engineering

          9511        101 Computer Engineering

          9512        102 Multimedia Engineering

          9513        202 Mechanical Engineering

          9514        301 Library and Information science

          9515        201 Electronic Engineering

          9611        101 Computer Engineering

          9612        102 Multimedia Engineering

          9613        201 Electronic Engineering

          9614        201 Electronic Engineering

          9615        301 Library and Information science

          9711        101 Computer Engineering

          9712        201 Electronic Engineering

          9713        201 Electronic Engineering

          9714        102 Multimedia Engineering

          9715        103 Software Engineering


    20 rows selected.


    6. DELETE, TRUNCATE, DROP 명령어의 차이점에 대해 설명하시오.

    delete: 테이블 안에 들어있는 열(row) 한줄 삭제

    truncate: 테이블 컬럼은 놔두고 모든 열(rows) 삭제

    drop: 테이블 삭제

    delete -> 선택한 열을 삭제합니다. 컬럼은 삭제할 수 없습니다. * D:드라이브 속 파일 삭제

    truncate -> 모든 열을 삭제합니다. 역시 컬럼은 삭제할 수 없습니다. * D:드라이브 파티션 포맷

    drop -> 여러가지 열과 컬럼이 있던 해당 테이블 자체를 삭제합니다. * D:드라이브 파티션 제거

    279페이지 그림 참조



    7. CTAS (Create Table as select )명령어를 사용하여 profno, name, deptno를 갖는 professor4 테이블을 만드시오. (professor 테이블 이용)


    create table professor4

    as

        select profno, name, deptno

        from professor;


    책 273쪽


    8. 제약조건 5가지를 나열하고 의미에 대해 설명하시오.]

    not null: 컬럼에 null값이 존재하지 않아야함

    unique: 컬럼에 중복되는 값이 없어야함

    primary key: 컬럼에 중복되는 값이 없고, null값이 존재하지 않아야함

    foriegn key: 다른 테이블의 컬럼을 참조해서 검사

    check: 조건에 설정된 값만 입력 허용



    9. 이미 생성되어있는 student 테이블에 있는 tel컬럼에 UNIQUE 제약조건과 NOT NULL 제약조건을 추가하세요.

    alter table student

    add constraint student_tel_uk unique(tel);

    alter table student

    modify(tel constraint student_tel_nn not null);


    10. B-TREE 인덱스 종류 3가지를 적고 간단하게 설명하시오. 


    Unique Index -> 인덱스 안에 있는 컬럼 키값에 중복되는 데이터가 없어 성능이 좋다.

    Non-Unique Index -> 중복되는 데이터가 들어가야 하는 경우 사용(키로 지정한 필드에 중복된 값이 들어가도 된다.)

    FBI Index(Function Based Index) -> 함수 기반의 인덱스이다. 인덱스에 쓰이지 않은걸로 where절을 작성하면 검색 쿼리가 돌아가기 때문에 느려진다.



    11. 인덱스를 활용하여 정렬된 출력값을 표현하는 SQL문을 작성하시오. (테이블은 student, name 컬럼에 index 생성했음)


    select name from student where name > '0'



    '자료실' 카테고리의 다른 글

    G Macro (G메크로) 오토마우스 키보드 조절 프로그램  (0) 2018.11.06
    sql 기초 문제 예제&답  (0) 2018.11.06
    Posted by Kamilake

티스토리 툴바