관리 메뉴

RUBY

SQL 기본 및 활용 본문

자격증/SQL 개발자

SQL 기본 및 활용

ruby-jieun 2023. 3. 9. 00:23

 

 

 


SQL 기본 및 활용
1일 20문제 풀기


 

 

 

 

01. 다음 중 데이터 제어어(DCL)에 해당하는 명령어는?

  ① INSERT

  ② RENAME

  ③ COMMIT

  ④ REVOKE

 

 

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

 

답 : 

풀이 : 

 

 

 

 

02. 다음 중 아래 내용의 범주에 해당하는 SQL 명령어로 옳지 않은 것은?

테이블의 구조를 생성, 변경, 삭제하는 등 데이터 구조를 정의하는데 사용되는 명령어이다.

  ① CREATE

  ② GRANT

  ③ ALTER

  ④ DROP

 

 

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

 

답 : 

풀이 : 

 

 

 

 

03. 아래 내용에 해당하는 SQL 명령어의 종류를 작성하시오.

논리적인 작업의 단위를 묶어 DML에 의해 조작된 결과를 작업단위(Transaction)별로 제어하는 명령어인 Commit, Rollback, Savepoint 등이 여기에 해당하며, 일부에서는 DCL(Data Control Language)로 분류하기도 한다.

 

 

 

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

 

답 : 

풀이 : 

 

 

 

 

04. 데이터베이스를 정의하고 접근하기 위해서는 데이터베이스 관리 시스템과의 통신수단이 필요한데 이를 데이터 언어(Data language)라고 하며, 그 기능과 사용 목적에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 구분된다. 다음 중 데이터 언어와 SQL 명령어에 대한 설명으로 가장 부적절한 것은?

  ① 비절차적 데이터 조작어(DML)는 사용자가 무슨 데이터를 원하며, 어떻게 그것을 접근해야 되는지를 명세하는 언어이다.

  ② DML은 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터베이스를 실질적으로 접근하는데 사용되며 SELECT, INSERT, DELETE, UPDATE 등이 있다. 

  ③ DDL은 스키마, 도메인, 테이블, 뷰, 인덱스를 정의하거나 변경 또는 제거할 때 사용되며 CREATE, ALTER, DROP, RENAME 등이 있다.

  ④ 호스트 프로그램 속에 삽입되어 사용되는 DML 명령어들을 데이터 부속어(Data Sub Language)라고 한다.

 

 

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

 

답 : 

풀이 : 

 

 

 

 

05. 다음 중 데이터베이스 시스템 언어의 종류와 해당되는 명령어를 바르게 연결한 것을 2개 고르시오

  ① DML - SELECT

  ② TCL - COMMIT

  ③ DCL - DROP

  ④ DML - ALTER

 

 

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

 

답 : 

풀이 : 

 

 

 

 

 

06. 다음 중 아래의 데이터 모델과 같은 테이블 및 PK제약조건을 생성하는 DDL문장으로 올바른 것은? (DBMS는 Oracle 기준)

 

PRODUCT

PROD_ID : VARCHAR(10) NOT NULL
PROD_NM : VARCHAR2(100) NOT NULL
REG_DT : DATE NOT NULL
REGR_NO : NUMBER(10) NULL

  ① 

  ② 

  ③ 

  ④ CREATE TABLE PRODUCT

      ( PROD_ID VARCHAR2(10) NOT NULL

       ,PROD_NM VARCHAR2(100) NOT NULL

       ,REG_DT DATE NOT NULL

       ,REGR_NO NUMBER(10)

       ,CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID) );

 

 

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

 

답 : ④

풀이 : 
/*1번 케이스 SQL Server 기준*/
CREATE TABLE PRODUCT
(
    PROD_ID VARCHAR2(10) NOT NULL,
    PROD_NM VARCHAR2(20) NOT NULL,
    REG_DT DATE NOT NULL,
    REGR_NO NUMBER(10) NULL
);

ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID);

/*2번 케이스  Oracle 기준 */
CREATE TABLE PRODUCT
(
    PROD_ID VARCHAR2(10) NOT NULL,
    PROD_NM VARCHAR2(20) NOT NULL,
    REG_DT DATE NOT NULL,
    REGR_NO NUMBER(10) NULL,  /* NULL은 생략해도 되나 NOT NULL은 안됩니다. */
    CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID)
);

 

 

 

 

 

 

07. 아래와 같이 데이터가 들어있지 않은 왼쪽의 기관분류 테이블 (가)를 오른쪽 기관분류 테이블 (나)처럼 변경하고자 할 때 다음 중 올바른 SQL 문장은?(단, DBMS는 SQLServer로 가정한다.

 

 

 

  ① 

  ② 

  ③ 

  ④ ALTER TABLE 기관분류 ALTER COLUMN 분류명 VARCHAR(30) NOT NULL;

      ALTER TABLE 기관분류 ALTER COLUMN 등록일자 DATE NOT NULL;

 

 

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

 

답 : ④

풀이 : 

 

 

 

 

 

08. 다음 중 NULL의 설명으로 가장 부적절한 것은?

  ① 모르는 값을 의미한다.

  ② 값의 부재를 의미한다.

  ③ 공백문자(Empty String) 혹은 숫자 0을 의미한다.

  ④ NULL과의 모든 비교(IS NULL 제외)는 알 수 없음(Unknown)을 반환한다.

 

 

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

 

답 : 

풀이 : 

 

 

 

 

 

09. 아래 테이블 T,S,R이 각각 다음과 같이 선언되었다. 다음 중 DELETE FROM T;를 수행한 후에 테이블 R에 남아있는 데이터로 가장 적절한 것은?

CREATE TABLE T
(C INTEGER PRIMATY KEY,
 D INTEGER);

CREATE TABLE S
(B INTEGER PRIMATY KEY,
 C INTEGER REFERENCES T(C) ON DELETE CASCADE);

CREATE TABLE R
(A INTEGER PRIMATY KEY,
 B INTEGER REFERENCES S(B) ON DELETE SET NULL);

현재 테이블 T, S, R의 상태는 다음과 같다.

T :
C D
1 1
2 1
S :
B C
1 1
2 1

R :
A B
1 1
2 2

  ① 

  ② (1, NULL)과 (2, NULL)

  ③ 

  ④ 

 

 

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

 

답 : 

풀이 : 

 

 

 

 

 

10. 다음 중 테이블 생성시 칼럼별 생성할 수 있는 제약조건(Constraints)에 대한 설명으로 가장 부적절한 것은?

  ① UNIQUE : 테이블 내에서 중복되는 값이 없으며 NULL 입력이 불가능하다.

  ② PK : 주키로 테이블당 1개만 생성이 가능하다

  ③ FK : 외래키로 테이블당 여러 개 생성이 가능하다.

  ④ NOT NULL : 명시적으로 NULL입력을 방지한다.

 

 

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

 

답 : 

풀이 : 

 

 

 

 

11. 다음 중 물리적 테이블 명으로 가장 적절한 것은?

  ① EMP_10

  ② 100-EMP

  ③ EMP-100

  ④ 100_EMP

 

 

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

 

답 : 

풀이 : 

 

 

 

 

12. 아래와 같은 테이블 구조를 정의하려고 한다. 이때 아직 부서가 정의되지 않은 사원은 기본부서(코드: '0000'로 배치하고, 입사일자(JOIN_DATE) 기준으로 많은 조회가 발생하므로 입사일자에 Index를 생성하려고 한다. 다음 중 올바른 SQL 문장을 2개 고르시오

EMP
EMP_NO: VARCHAR2(10) NOT NULL
EMP_NM: VARCHAR2(30) NOT NULL
DEPT_CODE: VARCHAR2(4) NOT NULL
JOIN_DATE: DATE NOT NULL
REGIST_DATE: DATE NULL

 

  ① CREATE TABLE EMP

      (EMP_NO VARCHAR2(10) PRIMARY KEY,

       EMP_NM VAPCHAR2(30) NOT NULL,

       DEPT_CODE VARCHAR2(4) DEFAULT '0000' NOT NULL,

       JOIN_DATE DATE NOT NULL,

       REGIST_DATE DATE NULL);

       CREATE INDEX IDX_EMP_01 ON EMP (JOIN_DATE);

  ② 

  ③ CREATE TABLE EMP

      (EMP_NO VARCHAR2(10) NOT NULL,

       EMP_NM VAPCHAR2(30) NOT NULL,

       DEPT_CODE VARCHAR2(4) DEFAULT '0000' NOT NULL,

       JOIN_DATE DATE NOT NULL,

       REGIST_DATE DATE NULL);

       ALTER TABLE EMP ADD CONSTRAINT EMP_PK PRIVARY KEY(EMP_NO);

       CREATE INDEX IDX_EMP_01 ON EMP (JOIN_DATE);

  ④ 

 

 

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

 

답 : ① ③

풀이 : 

 

 

 

 

13. 다음 중 아래와 같은 문장으로 '학생' 테이블을 생성한 후, 유효한 튜플(Tuple)들을 삽입하였다. SQL1, SQL2 문장의 실행 결과로 가장 적절한 것은?

생성) create table 학생(학번 char(8) primary key, 장학금 integer);

SQL1 : select count(*) from 학생
SQL2 : select count(학번) from 학생

  ① 

  ② 

  ③ SQL1, SQL2 문장의 실행 결과는 항상 같다.

  ④ 

 

 

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

 

답 : 

풀이 : 

 

 

 

 

14. 다음 중 외래키에 대한 설명으로 가장 부적절한 것을 2개 고르시오

  ① 테이블 생성시 설정할 수 있다.

  ② 외래키 값은 널 값을 가질 수 없다.

  ③ 한 테이블에 하나만 존재해야 한다.

  ④ 외래키 값은 참조 무결성 제약을 받을 수 있다.

 

 

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

 

답 : ② ③

풀이 : 

 

 

 

 

 

15. 다음 중 데이터베이스 테이블의 제약조건(Constraint)에 대한 설명으로 가장 부적절한 것은?

  ① check 제약조건(Constraint)은 데이터베이스에서 데이터의 무결성을 유지하기 위하여 테이블의 특정 컬럼(Column)에 설정하는 제약이다.

  ② 기본키(Primary Key)는 반드시 테이블 당 하나의 제약만을 정의할 수 있다.

  ③ 고유키(Unique Key)로 지정된 모든 컬럼들은 Null 값을 가질 수 없다.

  ④ 외래키(Foreign key)는 테이블간의 관계를 정의하기 위해 기본키(Primary Key)를 다른 테이블의 외래키가 참조하도록 생성한다.

 

 

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

 

답 : ③

풀이 : 

 

 

 

 

 

 

16. 4개의 칼럼으로 이루어진 EMP 테이블에서 COMM 칼럼을 삭제하고자 할 때, 아래 SQL 문장의 ⓐ,ⓑ 안에 들어갈 내용을 기술하시오

MGR ENAME SAL COMM
7566 FORD 3000  
7566 SCOTT 3000  

 

ⓐ TABLE EMP

ⓑ DOMM;

 

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

 

답 : ⓐ : ALTER ⓑ : DROP

풀이 : 

 

 

 

 

17. 아래 7개의 SQL 문장이 성공적으로 수행되었다고 할 때, A,B,C 세 개의 SQL문장을 차례대로 실행하면 A와 C의 SELECT 문장 수행결과는 각각 무엇인가?

  ① 

  ② 

  ③ 

  ④ 

 

 

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

 

답 : 

풀이 : 

 

 

 

 

18. 

  ① 

  ② 

  ③ 

  ④ 

 

 

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

 

답 : 

풀이 : 

 

 

 

 

19. 

  ① 

  ② 

  ③ 

  ④ 

 

 

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

 

답 : 

풀이 : 

 

 

 

 

20. 

  ① 

  ② 

  ③ 

  ④ 

 

 

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

 

답 : 

풀이 : 

 

Comments