SQLD 학습을 진행하며 기억할 내용을 간략히 기록합니다.
용어로 Entity(엔티티)를 엔터티라고 발음하지만 엔티티로 정리합니다.

관리구문

Constraint (제약)

테이블을 생성할 때 PK같은 값을 지정하기 위해 제약을 넣는다.

NOTNULL
UNIQUE
PRIMARY KEY
FORIEGN KEY
CHECK

TALBE을 생성하는 CREATE 구문에서는 생략이 가능하다.

- 테이블 생성 시 컬럼에 명시
CREATE TABLE PRODUCT(
	SEQ INT NOT NULL CONSTRAINT PK_SEQ PRIMARY KEY
)

CREATE에서 구문을 작성할 때는 CONSTRAINT로 작성하지만
ALTER에서 작성할 때는 ADD CONSTRAINT로 ADD를 붙여줘야 한다.

트랜잭션

Atomicity: 원자성
Consistency: 일관성
Isolation: 고립성 (락 같은 경우)
Durability: 영속성, 지속성

테이블 생성 시 주의 사항

테이블명은 객체를 의미할 수 있는 적절한 이름을 사용하고 가능한 단수형을 권고한다.
컬럼 뒤에 데이터 유형은 지정되어야 한다.
한 테이블 내에서는 콜럼명을 중복되게 할 수 없다.
벤더에서 사전에 정의한 예약어를 사용할 수 없다.

ALTER, MODIFY

ALTER: 테이블의 구조를 변경
ALTER는 DDL(Data Definition Language)에 속하는 명령어로, 테이블이나 컬럼의 이름을 바꾸거나, 제약조건을 변경하거나, 컬럼을 추가 또는 삭제한다

MODIFY: 콜럼 수정

INSERT

INSERT INTO A (ID, NUM, YN, ...)
위에서 INSERT 구문에 여러개를 넣을 때는 콜럼의 순서에 맞춰야하며 테이블에 NOT NULL을 가진 콜럼을 빼먹진 않았는지 확인해야한다.

DATE 타입에는 숫자값을 입력하면 오류가 발생한다.
-> '20190301'은 가능하나 20190301은 불가능하다.

기본키(Primary Key): 중복된 키를 가질 수 없음(UNIQUE), 후보키 중 하나를 선택하면 기본키가 됨
외래키(Foreign Key): 다른 테이블의 PK를 참조하는 키
후보키(Candidate Key): 후보 키는 각 데이터를 유일하게 식별할 수 있는 “최소한의” 속성 집합, 기본키가 이미 있고 UNIQUE한 키가 있다면 후보키가 됨
대리키(Surrogate Key)

DELETE, TRUNCATE, DROP

DROP 명령어는 테이블 정의 자체를 삭제하고, TRUNCATE 명령어는 테이블을 초기상태로 만든다.
TRUNCATE 명령어는 UNDO를 위한 데이터를 생성하지 않기 떄문에 동일 데이터량 삭제 시 DELETE보다 빠르다.
DROP과 TRUNCATE는 Auto Commit되고, DELETE는 사용자 Commit으로 수행된다.

DROP, TRUNCATE: DDL, 롤백 불가능, Auto Commit
DELETE: DML, 커밋 전 롤백가능, 사용자 Commit

profile
지극히 평범한 공대생

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN