자격증/SQLD

1. SQL 문장들

이응 2024. 7. 9. 01:14

데이터 조작어 (DML : Data Manipulation Language)

SELECT : 데이터 베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것으로  RETRIEVE 라고도 한다.

INSERT, UPDATE, DELETE : 데이터 베이스의 테이블에 들어있는 데이터에 변형을 가하는 종류의 명령어들을 말한다.

예를 들어 데이터를 테이블에 새로운 행을 집어 넣거나, 원하지 않는 데이터를 삭제하거나 수정하는 것들의 명령어들을 DML이라고 부른다.

 

데이터 정의어 (DDL : Data Definition Language)

CREATE, ALTER, DROP, RENAME : 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 그러한 구조를 생성하거나 변경하거나 삭제하거나 이름을 바꾸는 데이터 구조와 관련된 명령어들을 DDL 이라고 부른다.

 

데이터 제어어 (DCL: Data Control Language)

GRANT, REVOKE : 데이터 베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어를 DCL이라고 부른다.

 

트랜잭션 제어어 (TCL : Transaction Control Language)

COMMIT, ROLLBACK : 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위 (트랜잭션) 별로 제어하는 명령어를 말한다.

트랜잭션이란 : DB의 상태를 변화시키기 위한 작업 단위

 

 

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

 

1) INSERT -DML(데이터 조작어)

2) RENAME -DDL(데이터 정의어)

3) COMMIT -TCL(트랜잭션 제어어)

4) REVOKE

 

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

 

1) CREATE -DDL(데이터 정의어)

2) GRANT -DCL(데이터 제어어)

3) ALTER -DDL(데이터 정의어)

4) DROP -DDL(데이터 정의어)

 

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

 

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

 

= TCL : Transaction Control Language

 

 

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

 

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

:  조작어는 결과만 보는 것이다 절차적언어의 예시로 java가 있음

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

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

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

: 파이썬 / java에 포함되어 사용하는 언어이기 때문에 데이터 부속어라고 부른다

 

 

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

 

1) DML - SELECT ( + INSERT, UPDATE, DELETE)

2) TCL - COMMIT (+ COMMIT, ROLLBACK)

3) DCL -DROP

4) DML -ALTER

 

 

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

 

IE 표기법 Barker 표기법
PROD_ID VARCHAR2(10) NOT NULL PRODUCT()
PROD_NM VARCHAR2(100) NOT NULL
REG_DT DATE NOT NULL
REGR_NO NUMBER(10) NULL
#PROD_ID VARCHAR2(10)
*PROD_NM VARCHAR2(100)
*REG_DT DATE
oREGR NO NUMBER(10)

 

 

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));

 

 

7. 아래와 같이 데이터가 들어있지 않은 왼쪽의 기관 분류 테이블(가)를 오른쪽 기관분류 테이블 (나) 처럼 변경하고자 할 때 다음 중 올바른 SQL 문장은? ( 단, DBM는 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 COLUMM (분류명 VARCHAR(30), 등록일자 DATE NOT NULL);

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

: SQL서버는 여러 컬럼을 동시에 변경 할 수 없고 ()괄호를 쓰지 않는다 때문에 1),2)은 틀렸다

3) ALTER TABLE 기관분류 ALTER COLUMM 분류명 VARCHAR(30);

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

: 분류명 VARCHAR(30)으로 변경된 건 맞으나 NOT NULL 설정을 하지 않았다

4) ALTER TABLE 기관분류 ALTER COLUMM 분류명 VARCHAR(30) NOT NULL;

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

 

 

* 오라클 SQL Server 차이

 

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

: ALTER TABLE COL_ADD_TBL MODIFY COL_NAME VARCHAR(20);

 

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

: ALTER TABLE COL_ADD_TBL ALTER COL_NAME BIGINT NULL

 

 

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

 

1) 모르는 값을 의미한다.

2) 값을 부재를 의미한다.

3) 공백 문자 혹은 숫자 0을 의미한다

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

 

NULL + NULL = NULL

NULL + 1 = NULL

NULL *3 = NULL

NULL 이 데이터 값에 포함되어 있으면 NULL 로 인해 결과값이 달라질 수 있다

 

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

 

CREATE TABLE T

 (C INTEGER PRIMARY KEY,

  D INTEGER);

 

CREATE TABLE S

 (B INTEGER PRIMARY KEY,

  C INTEGER REFERENCES T(C) ON DELETE CASCADE);

->참고하고 있는 T 테이블이 삭제가 되면 같이 삭제하라는 문구

 

CREATE TABLE R

 (A INTEGER PRIMARY KEY,

  B INTEGER REFERENCES S(B) ON DELETE SET NULL);

->참고하고 있는 S 테이블이 삭제가 되면 R의 테이블은 NULL 값으로 세팅하라는 문구

 

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

 

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

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

3) (2,2)

4) (1,1)

 

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

 

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

:  UNIQUE와 PK의 가장 큰 차이점은 UNIQUE는 NULL 입력이 가능한데 PK는 NULL 입력이 불가능하다

2) PK : 주키로 테이블당 1개망 생성이 가능하다.

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

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

 

 

 

 

 

'자격증 > SQLD' 카테고리의 다른 글

2과목 관계형 데이터 베이스  (0) 2024.08.18
1과목 데이터 모델링의 이해  (0) 2024.08.02
2. SQL 테이블 생성  (0) 2024.07.12
SQLD 자격 준비  (0) 2024.07.03