SQLD

[SQLD] 2과목-1 오답노트

요다다 2023. 3. 6. 03:01

DML : SELECT, INSERT, DELETE => 변경,삭제 등등등

DCL : REVOKE, GRANT ==> 권한제어

DDL : ALTER, DROP, RENAME, CREATE ==> 데이터 변형

TCL : COMMIT, ROLLBACK ==> 트랜잭션 제어어

 

(틀) 4. 틀린 것 고르기

DML은 비절차적 데이터조작어이고, 사용자가 무슨(WHAT) 데이터를 원하는지 명세한다

절차적 데이터 조작어(오라클, SQL 서버)어떻게(HOW) 데이터를 접근해야 하는지 명세한다.

절차적은 어떻게!!! 접근해야하는지

 

(틀) 6. 올바른 DDL 문장 찾기

PK설정문구 : ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID)인데,

1번엔 ALTER TABLE PRODUCT ADD <<CONSTRAINT>> PRODUCT_PK PRIMARY KEY (PROD_ID) CONSTRAINT가 생략되어 있음 조심하기!!!!!!!!

ALTER TABLE ~~ ADD CONSTARAIN ~~ PK 이런 식으로 만들자

혹은

CONSTRAIN ~ PRIMARY KEY ~ OK?

주의하기!

ADD CONSTRAIN 안돼요

ALTER TABLE ~ ADD ~ 안돼요

ALTER이 없을거면  CONSTRAIN으로 시작하기, ALTER이 있으면 ADD CONSTAINT가 있어야 함

 

(틀) 9. 올바른 결과 찾기

Cascade 옵션은 모두 삭제

SET NULL 옵션은 해당 필드만 NULL로 변경

 

14. 외래키 개념

NULL값 가능, 여러 개 가능

참조 무결성 제약 가능 (참조 무결성 제약이란? 참조할 수 없는 값을 가질 수 없다.)

 

15. 칼럼 삭제 명령어

ALTER TABLE ~ DROP COLUMN 

 

(틀) 18. 테이블 이름 변경 명렁어

RENAME 기존명 TO 바꿀이름;

 

(틀) 19. 개념찾기

자식 테이블의 FK 생성시 부모 테이블에 PK가 없는 경우, 자식 테이블의 데이터 입력을 허용하지 않는 동작은 ? restrict

 

삭제(delete) 옵션

- cascade : master 삭제 시 자식 모두 삭제

- set null : master 삭제 시 자식 해당 필드만 null

- set default : master 삭제 시 해당 필드만 디폴트 값

- restrict : 자식 테이블에 pk값이 없으면 master 삭제 허용

- no action : 참조무결성을 위반하면 아무 액션도 취하지 않는다

 

삽입(insert) 옵션

- automatic : master에 pk가 없으면, master에 pk를 생성 후 자식을 입력

- set null : master에 pk가 없으면, 자식 fk를 null로 처리

- set default : master에 pk가 없으면, 자식 fk를 디폴트값으로 입력

- dependent : pk가 존재할 때만 자식 입력을 허용함

- no action : 참조무결성을 위반하면 아무 액션도 취하지 않는다.

 

(틀) 23. 올바른 결과 찾기

로그 완전 삭제는 drop, truncate

구조 남는 건 delete임

DROP는 테이블 구조까지 전체를 삭제하고, 공간과 객체를 모두 삭제한다. 삭제 후 되돌릴 수 없다.
TRUNCATE는 테이블은 남겨놓고 데이터만 삭제한다.(용량이 줄어든다) 삭제후 되돌릴 수 없다.
DELETE는 데이터는 지울 수 있지만 테이블 용량은 줄어들지 않는다. 원하는 데이터만 지울 수 있고 삭제를 되돌릴 수 있다.

 

(틀) 26. 틀린거 고르기

delete(dml)는 사용자 커밋, drop과 truncate(ddl)은 자동 커밋!!!!!!!!! 자동 커밋돼서 복구를 못하는 것

 

(틀) 28. 격리 수준 개념

dirty read란 ? 이미 다른 트랜잭션에서 수정되었지만, 커밋되지 않은 데이터를 읽어옴

커밋된 데이터를 읽어오는 것이 아니라 커밋되지 않은 데이터를 읽어오는 거임 헷갈리지 말자

 

Dirty Read: 다른 트랜잭션에 의해 수정되었지만 아직 커밋되지 않은 데이터를 읽는 것
Non-repeatable Read: 한 트랜잭션 내에서 같은 쿼리를 2번 수행했는데 그 사이에 다른 트랜잭션이
값을 수정 또는 삭제하는 바람에 두 쿼리 결과가 다르게 나타나는 현상
Phantom Read: 한 트랜잭션 내에서 같은 쿼리를 2번 수행했는데 첫 쿼리에서 없던 유령 레코드가 두번째 쿼리에서
나타나는 현상
isolation(고립성): 트랜잭션 실행 중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다
고립성은 격리성이 낮은 경우 발생하는 문제점이 아니라 트랜잭션의 특성 중 하나이다.

 

(틀) 29. 틀린거 고르기

오라클은 DDL(CREATE, DROP ...) 동작할 때, 자동 커밋된다

SQL 서버는 자동 XXXXX

그러므로 오라클에선 ROLLBACK해도 바뀌는 것이 없고, SQL은 초기 상태로 돌아간다

 

31번부터 다시 하기!