[SQLD 오답정리] SQL 기본 및 활용 - SQL 기본(1)
<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