자격증/SQLD 자격증 정리

[SQLD 오답정리] SQL 기본 및 활용 - SQL 기본(1)

sjoo 2021. 7. 14. 18:06

<1~30번 관련 오답 정리>

 

1. SQL 문장 종류

명령어 종류 명령어 설명
데이터 조작어(DML : Data Manipulation Language) SELECT - 데이터 조회,검색하기 위한 명령어
- RETRIEVE라고도 한다.
INSERT
UPDATE
DELETE
- 데이터 변형을 가하는 명령어
데이터 정의어(DDL : Data Definition Laguage) CREATE
ALTER
DROP
RENAME
- 테이블과 같은 데이터 구조 정의하는데 사용되는 명령어
- 데이터 구조 생성, 변형, 삭제, 이름 변경하는 등 데이터 구조와 관련된 명령어
데이터 제어어(DCL : Data Control Language) GRANT
REVOKE
- 데이터베이스에 접근 권한 및 회수하는 명령어
트랜잭션 제어어(TCL : Transaction Control Language) COMMIT
ROLLBAK
- 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어

 

 

2. 비절차적 데이터 조작어(DML)는 사용자가 무슨(what) 데이터를 원하는 지만을 명세

   절차적 데이터 조작어(PL/SQL,T-SQL)는 어떻게(how)데이터를 접근해야 하는지 명세

 

 

3. 테이블 컬럼에 대한 정의 변경

Oracle SQL Server
ALTER TABLE 테이블명 MODIFY(컬럼명 데이터유형 [Default 식] [NOT NULL]..); ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 데이터유형 [Default 식] [NOT NULL]..;

- SQLServer에서는 여러개의 컬럼을 동시에 수정하는 구문은 지원하지 않는다.

- SQLServer에서는 괄호를 사용하지 않는다.

 

 

4. 외래키 제약조건 옵션

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

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

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

[DELETE FROM T; 실행결과]

- T테이블은 두건 모두 삭제 된다.

- S테이블에 CASCADE 옵션으로 두건 모두 삭제된다.

- R테이블에는 SET NULL옵션으로  B 컬럼이 NULL로 변경된다.

 

5. 제약조건 특징

1. 고유키(Unique Key)는 테이블 내에서 중복되는 값이 없고,  NULL 입력 가능

2. 기본키(Primary Key)는 반드시 테이블 당 하나의 제약만 설정 가능

3. 외래키(Foreign Key)는 테이블당 여러 개 생성 가능

4. NOT NULL은 명시적으로 NULL 입력 방지

5. CHECK는 데이터베이스에서 데이터의 무결성 유지를 위하여 테이블 특정 컬럼 설정하는 것으로 입력되는 값을 체크하여 설정된 값 이외의 값이 들어오면 오류 메시지와 함께 명령이 수행되지 못하게함

=> 저장된 데이터베이스에 잘못된 데이터가 없다는 것으로 예를들어 성별을 저장하는 컬럼으로 GENDER 를 정의하고, 이 컬럼에는 남자는 M, 여자는 F 둘 중의 하나만 저장할 수 있도록 제약조건을 지정

 

 

5. 집계 함수 COUNT

1. COUNT(*) :  NULL값을 포함한 행의 수를 출력

2. COUNT(컬럼) : 컬럼값이 NULL값인 것을 제외한 행의 수 출력

 

 

6. 테이블 이름 변경(AA->BB)

-> RENAME AA TO BB;

 

 

7. 외래키 INSERT 옵션 종류

- Automatic : master 테이블에 PK가 없는 경우 master PK를 생성 후 child 입력

- Set Null : master 테이블에 PK가 없는 경우 child 외부키를 null로 처리

- Set Default : master 테이블에 PK가 없는 경우 child 외부키를 지정된 기본값으로 입력

- No Action : 참조무결성을 위반하는 입력 액션을 취하지 않음

- Dependent : master 테이블에 PK가 존재할 때만 child 입력 허용

 

 

8. DROP, TRUNCATE, DELETE 구분

DROP TRUNCATE DELETE
DDL DDL DML
ROLLBACK 불가능 ROLLBACK 불가능 ROLLBACK 가능
테이블이 사용했던 storage를 모두 release 테이블이 사용했던 storage 중 최초 테이블 생성시 할당된 storage 만 남기고 release delete해도 사용했던 storage는 release되지 않음
테이블 정의 자체를 완전히 삭제 테이블을 최초 생성된 초기상태로 만듬 데이터만 삭제
Auto Commit Auto Commit 사용자 Commit

 

 

9. 데이터베이스 틀랜잭션 4가지 특성

- 원자성(atomicity) : 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야한다.

- 일관성(consistency) : 트랜잭션이 실행 되기 전의 데이터베이스 내용이 잘못 되어 있지 않다면 트랙잭션이 실행된 이후에도 잘못이 있으면 안된다.

- 고립성(isolation) : 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다.

- 지속성(durability) : 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다.

 

10. Oracle에서는 DDL 문장 수행 후 자동으로 COMMIT을 수행한다.

      SQLServer에서는 DDL 문장 수행 후 자동으로 COMMIT을 수행하지 않는다.

 

 

 

SQL 자격검정 실전문제

SQL 자격검정 실전문제는 국가공인 SQL 전문가 및 국가공인 SQL 개발자 자격시험 대비 수험서로 SQL 전문가 가이드에서 다루고 있는 데이터 모델링의 이해, SQL기본 및 활용, SQL 고급 활용 및 튜닝 등

book.naver.com