DB 용어 정리

김정욱·2023년 1월 26일

공부📚

목록 보기
4/4
post-thumbnail

DML

✔️ INSERT

INSERT INTO 테이블명(컬럼명1, 컬럼명2, ...)
VALUES(1,2, ...);
✔️ 생성 컬럼 지정


INSERT INTO 테이블명
VALUES(1,2,...);
✔️ 모든 컬럼에 값 입력

✔️ UPDATE

UPDATE 테이블명 SET 컬럼명 =[WHERE 조건];
✔️ 조건이 없으면 해당 컬럼 전체 값 수정


UPDATE 테이블명 SET 컬럼명1 =1, 컬럼명2 =2
[WHERE 조건];
✔️ 여러 컬럼 수정시 컴마(,)로 구분

✔️ DELETE

DELETE FROM 테이블명
WHERE 조건;
✔️ 조건이 없으면 모든 행 삭제
TRUNCATE TABLE 테이블명;
✔️ 테이블의 전체 행 삭제
✔️ DML(x), DDL
✔️ DELETE 보다 수행속도 빠름
✔️ ROLLBACK을 통한 복구 불가

DDL

✔️ CREATE

CREATE TABLE 테이블명(
	컬럼명 자료형(크기) [DEFAULT]
    컬럼명 자료형(크기)
    ...
);


CREATE TABLE 테이블명 AS SELECT * FROM 복사할 테이블;
✔️ 기존 테이블 복사하며 테이블 생성 


CREATE TABLE 테이블명1 AS
SELECT 컬럼명1 , 컬럼명2, 컬럼명3
FROM 테이블명2;
✔️ SUBQUERY를 이용한 CREATE

✔️ COMMENT

COMMENT ON COLUMN 테이블명.컬럼명 IS '주석내용';

✔️ USER_TABLES

SELECT * FROM USER_TABLES;
✔️ 사용자가 작성한 테이블을 확인 하는 뷰
✔️ 데이터 딕셔너리에 저장

✔️ USER_CONSTRAINTS

SELECT * FROM USER_CONSTRAINTS;
✔️ 사용자가 작성한 제약조건을 확인하는 딕셔너리 뷰

✔️ CONSTRAINTS

CREATE TABLE USER_CONSTRAINTS(
	USER_NO NUMBER PRIMARY KEY,
    USER_ID VARCHAR2(30) UNIQUE,
    USER_PWD VARCHAR2(30) NOT NULL,
    GENDER VARCHAR2(10) CHECK (컬럼명 비교연산자 비교값),
    USER_GRADE NUMBER REFERENCES 참조할테이블명
);
CREATE TABLE USER_CONSTRAINTS(
	USER_NO NUMBER,
    USER_ID VARCHAR2(30),
    USER_PWD VARCHAR2(30) NOT NULL,
    GENDER VARCHAR2(10),
    USER_GRADE NUMBER,
    [CONSTRAINT USER_PK] PRIMARY KEY(USER_NO)
    [CONSTRAINT USER_UQ] UNIQUE(USER_ID)
    [CONSTRAINT GENDER_CH] CHECK(GENDER 비교연산자 비교값)
    [CONSTRAINT USER_FK] FOREIGN KEY(USER_GRADE) 
    REFERENCES 참조테이블명
);
PRIMARY KEY
✔️ 한테이블당 한개만 설정 가능
✔️ 중복 및 NULL 허용하지 않음
✔️ 테이블에 대한 식별자 역할
✔️ 컬럼레벨 : [CONSTRAINT 제약조건명] PRIMARY KEY
✔️ 테이블레벨 : [CONSTRAINT 제약조건명] PRIMARY KEY(컬럼명)
UNIQUE
✔️ 입력값에 대해서 중복을 제한
✔️ NULL은 중복 삽입 가능
✔️ 컬럼레벨 : [CONSTRAINT 제약조건명] UNIQUE
✔️ 테이블레벨 : [CONSTRAINT 제약조건명] UNIQUE(컬럼명)


UNIQUE 복합키
✔️ 두개 이상의 컬럼을 묶어서 하나의 UNIQUE 제약 조건을 설정
✔️ 복합키는 지정된 모든 컬럼의 값이 같을 때 위배된다
✔️ 테이블레벨 : [CONSTRAINT 제약조건명] UNIQUE(컬럼명1, 컬럼명2)
NOT NULL
✔️ 삽입 수정시 NULL 허용 하지 않음
✔️ 컬럼레벨 : [CONSTRAINT 제약조건명] NOT NULL
FOREIGN KEY
✔️ 참조된 다른 테이블의 컬럼이 제공하는 값만 사용 가능
✔️ 테이블 간의 관계가 형성
✔️ 제공되는 값 + NULL을 사용할 수 있음
✔️ 컬럼레벨 : [CONSTRAINT 제약조건명] 
REFERENCES 참조할테이블명 [(참조할컬럼)] [삭제룰]
✔️ 테이블레벨 : [CONSTRAINT 제약조건명] FOREIGN KEY(컬럼명) 
REFERENCES 참조할테이블명 [(참조할컬럼)] [삭제룰]


[삭제룰]
✔️ ON DELETE RESTPICTED
삭제 제한. 기본값
✔️ ON DELETE SET NULL
부모키 삭제시 자식키를 NULL로 변환
✔️ ON DELETE CASCADE
부모키 삭제시 자식키도 함께 삭제
CHECK 
✔️ 주의할 점 : 비교값은 리터럴만 사용가능(변하는 값(x), 함수(x))
✔️ [CONSTRAINT 제약조건명] CHECK (컬럼명 비교연산자 비교값)

✔️ ALTER

[제약 조건(추가/삭제)]

ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] 제약조건(지정할컬럼명) 
[REFERENCES 테이블명[(컬럼명)] ← FK인 경우
✔️ 제약조건 추가


ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
✔️ 제약조건 삭제
[컬럼(추가/수정/삭제)]

ALTER TABLE 테이블명 ADD(컬럼명 데이터타입 [DEFAULT]);
✔️ 컬럼 추가


ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입;
ALTER TABLE 테이블명 MODIFY 컬럼명 DEFAULT;
ALTER TABLE 테이블명 MODIFY 컬럼명 NOT NULL / NULL;
✔️ 컬럼의 데이터타입, DEFAULT, NULL/NOT NULL 수정


ALTER TABLE 테이블명 DROP(삭제할 컬럼명)
✔️ 컬럼 삭제. 최소 1개의 컬럼은 테이블에 존재해야 함
[이름변경(컬럼명, 제약조건명, 테이블명)]

ALTER TABLE 테이블명 RENAME COLUMN 컬럼명 TO 바꿀이름;
ALTER TABLE 테이블명 RENAME CONSTRAINT 제약조건명 TO 바꿀이름;
ALTER TABLE 테이블명 RENAME TO 바꿀이름;
✔️ 컬럼명, 제약조건명, 테이블명 변경

✔️ DROP

DROP TABLE 테이블명 [CASCADE CONSTRAINTS];
✔️ 테이블 삭제


[관계된 테이블 삭제 방법]
(1) 자식 → 부모 순으로 테이블 삭제
(2) ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명; 
	을 이용하여 제약조건 삭제 후, 부모 테이블 삭제
(3) DROP TABLE 테이블명 CASCADE CONSTRAINTS

TCL

✔️ COMMIT

COMMIT
✔️ 메모리 버퍼에 임시 저장된 데이터 변경사항을 DB에 반영
ROLLBACK
✔️ 메모리 버퍼에 임시 저장된 데이터 변경사항을 DB에 반영하지 않고 삭제
SAVEPOINT 포인트명1;
SAVEPOINT 포인트명2;
..
ROLLBACK 포인트명1;
✔️ ROLLBACK 수행 시 저장 지점까지만 일부 ROLLBACK
profile
절박한 마음을 갖고 하루를 보내자!!

0개의 댓글