본문 바로가기
Database/SQLD

SQLD 문제풀이 1

by KkingKkang 2023. 5. 8.

DML (데이터 조작어 : Data Manipulation Language) 
- select, insert, update, delete

DDL (데이터 정의어 : Data Definition Language)
- create, alter, drop, rename

DCL(데이터 제어어 : Data Control Language)
- grant, revoke

TCL(트랜잭션 제어어 : Transaction Control Language)
-commit, rollback

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

1) INSERT -DML
2) RENAME -DDL
3) COMMIT -TCL
4) REVOKE -DCL

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

1) CREATE - DDL
2) GRANT -DCL
3) ALTER -DDL
4) DROP -DDL

3. 다음 내용에 해당하는 SQL 명령어의 종류를 작성하시오.

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

▶︎ TCL

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

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

▶︎ 어떻게 접근해야 하는지 명세하는 언어는 절차적 언어이다. ( java, pl-sql, t-sql )

2) DML은 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터베이스를 실질적으로 접근하는데 사용되며 select, insert, delete, update등이 있따.

3) DDL은 스키마, 도메인, 테이블, 뷰, 인덱스를 정의하거나 변경 또는 제거할 때 사용되며 create, alter, drop, rename 등이 있다.

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

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

1) DML - SELECT
2) TCL - COMMIT
3) DCL - DROP  ▶︎ DDL
4) DML - ALTER ▶︎ DDL

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

IE 표기법 

PROD_ID VARCHAR2(10) NOT NULL ( ▶︎ pk 
PROD_NM VARCHAR2(100) NOT NULL
REG_DT DATE NOT NULL
REGR_NO NUMBER(10) NULL

BARKER 표기법

PRODUCT()
#PROD_ID VARCHAR2(10)
*PROD_NM VARCHAR2(100)
*REG_DT DATE
◦REGR_NO NUMBER(10)

-- 1

CREATE TABLE PRODUCT
	( PROD_ID VARCHAR2(10) NOT NULL
    , PROD_NM VARCHARE2(100) NOT NULL
    , REG_DT DATE NOT NULL
    , REGR_NO NUMBER(10) NULL);
ALTER TABLE PRODUCT ADD PRIMARY KEY PRODUCT_PK ON (PROD_ID);
-- ADD 뒤에 PK 명이 빠짐! ON도 필요 없음
-- ALTER TABLE 테이블명 ADD PK명 PRIMARY KEY (컬럼 명);
-- ALTER TABLE PRODUCT ADD PRODUCT_PK PRIMARY KEY (PROD_ID);

-- 2
CREATE TABLE PRODUCT
	( PROD_ID VARCHAR2(10)
    , PROD_NM VARCHARE2(100)
    , REG_DT DATE
    , REGR_NO NUMBER(10));
ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID);
-- NOT NULL 조건이 빠짐 

-- 3
CREATE TABLE PRODUCT
	( PROD_ID VARCHAR2(10) NOT NULL
    , PROD_NM VARCHARE2(100) NOT NULL
    , REG_DT DATE NOT NULL
    , REGR_NO NUMBER(10) NULL
    , ADD CONTRAINT PRIMARY KEY (PROD_ID));
-- ADD가 필요 없음!!! pk명도 빠짐
-- CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID)

--4
CREATE TABLE PRODUCT
	( PROD_ID VARCHAR2(10) NOT NULL
    , PROD_NM VARCHARE2(100) NOT NULL
    , REG_DT DATE NOT NULL
    , REGR_NO NUMBER(10) NULL
    , CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID));

 

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

(가)
분류 ID VARCHAR(10) NOT NULL
분류명 VARCHAR(10) NOT NULL
등록일자 VARCHAR(10) NULL

(나)
분류 ID VARCHAR(10) NOT NULL
분류명 VARCHAR(30) NOT NULL
등록일자 DATE NOT NULL

1) ALTER TABLE 기관분류 ALTER COLUMN (분류명 VARCHAR(30), 등록일자 DATE NOT NULL);

2) ALTER TABLE 기관분류 ALTER COLUMN ( 분류명 VARCHAR(30) NOT NULL, 등록일자 DATE NOT NULL);

-- SQL Server 은 여러 컬럼을 동시에 변경할 수 없다!

3) ALTER TABLE 기관분류 ALTER COLUMN 분류명 VARCHAR(30);
ALTER TABLE 기관분류 ALTER COLUMN 등록일자 DATE NOT NULL;

-- not null 설정을 다시 명시 해줘야 한다

4) ALTER TABLE 기관분류 ALTER COLUMN 분류명 VARCHAR(30) NOT NULL;
ALTER TABLE 기관분류 ALTER COLUMN 등록일자 DATE NOT NULL;

 

ALTER 문 

1. 오라클

ALTER TABLE 테이블명 MODIFY 컬럼이름 데이터유형 NOTNULL/NULL

2. SQL Server

ALTER TABLE 테이블명 ALTER 컬럼이름 데이터유형 NOTNULL/NULL

 

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

1) 모르는 값을 의미한다.
2) 값의 부재를 의미한다.
3) 공백 문자 혹은 숫자 0을 의미한다.
4) null 과의 모든 비교(is null 제외)는 알 수 없음(unknown)을 반환한다.

 

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

T

C D
1 1
2 1

S

B C
1 1
2 1

R

A B
1 1
2 2

 

CREATE TABLE T
	(C INTEGER PRIMARY KEY,
    D INTEGER);
    
CREATE TABLE S
	(B INTEGER PRIMARY KEY,
    C INTEGER REFERENCES T(C) ON DELETE CASCADE);
-- CASCADE가 걸려 있으므로 T가 삭제되면 b,c 도 삭제
    
CREATE TABLE R
	(A INTEGER PRIMARY KEY,
    B INTEGER REFERENCES S(B) ON DELETE SET NULL);
-- s의 b가 삭제 되면 r의 b는 null

 

결과 

R

A B
1 null
2 null

 

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

1) UNIQUE : 테이블 내에서 중복되는 값이 없으며 NULL입력이 불가능하다.  ▶︎ null가능
2) PK : 주키로 테이블당 1개만 생성이 가능하다. ▶︎ null 불가
3) FK : 외래키로 테이블당 여러 개 생성이 가능하다.
4) NOT NULL : 명시적으로 NULL입력을 방지한다.

 

반응형

'Database > SQLD' 카테고리의 다른 글

SQLD 문제 풀이 6  (0) 2023.05.15
SQLD 문제 풀이 5  (1) 2023.05.13
SQLD 문제 풀이 4  (0) 2023.05.11
SQLD 문제 풀이 3  (0) 2023.05.10
SQLD 문제풀이 2  (0) 2023.05.10

댓글