여러분은 가만히 계세요 제가 모두 고장낼게요

IT 지식, PC 모바일 문제 해결 그리고 종종 애니 게임 일상생활 근황을 종종 올리고 있어요!

냐.한국 자세히보기

자료실2

sql 기초 문제 예제&답

Kamilake 2018. 11. 6. 03:55

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'