사용자(USER) 생성
CREATE USER 유저이름 IDENTIFIED BY 비밀번호;
테이블 생성
CREATE TABLE 테이블명(
컬럼명 자료형(데이터 크기),
컬럼명 자료형
...
);
테이블 복사
CREATE TABLE 테이블명
AS (SELECT 컬럼명
FROM 테이블명)
COMMENT ON COLUMN 테이블명.컬럼명 IS '주석 내용';
원하는 값을 유지하기 위해 설정하는 제약
CONSTRAINT
제약 조건에 이름 부여하기
컬럼레벨방식컬럼명 자료형 [CONSTRAINT 제약조건명] 제약조건
테이블레벨방식
[CONSTRAINT 제약조건명] 제약조건
컬럼레벨방식
컬럼명 자료형 NOT NULL
ALTER
ALTER TABLE 테이블명 MODIFY 컬럼명 NOT NULL;
컬럼레벨방식
컬럼명 자료형 UNIQUE
테이블레벨방식
, UNIQUE(컬럼명)
ALTER
ALTER TABLE 테이블명 ADD UNIQUE(컬럼명);
컬럼레벨방식
컬럼명 자료형 CHECK(조건식)
gender char(3) check(gender in ('남','여'))
테이블레벨방식
CHECK(조건식)
ALTER
ALTER TABLE 테이블명 ADD CHECK(조건식);
NOT NULL
, UNIQUE
제약이 설정되어 있음 (NULL 비허용, 중복 비허용)컬럼레벨방식
컬럼명 자료형 PRIMARY KEY
테이블레벨방식
PRIMARY KEY(컬럼명[, 컬럼명])
ALTER
ALTER TABLE 테이블명 ADD PRIMARY KEY(컬럼명);
연결할컬럼명
을 생략할 경우 참조하는 테이블의 기본 키가 연결컬럼레벨방식
컬럼명 자료형 REFERENCES 참조할테이블명 [(연결할컬럼명)]
테이블레벨방식
FOREIGN KEY(컬럼명) REFERENCES 참조할테이블명[(연결할컬럼명)]
부모테이블에서 데이터 삭제 시 자식 테이블에서 사용중인 데이터가 있을 경우 어떻게 처리할 지에 대한 옵션
RETERENCES 참조테이블명[(연결컬럼명)] ON DELETE SET NULL
ALTER
ALTER TABLE 테이블명 ADD FOREIGN KEY(컬럼명) REFERENCES 참조테이블명[(연결컬럼명)]
기본값 설정하기
컬럼명 자료형 DEFAULT 기본값
ALTER TABLE 테이블명 [변경할 내용];
ALTER TABLE 테이블명 ADD 컬럼명 자료형 -- [기본값 제약조건]
ALTER TABLE 테이블명 MODIFY 컬럼명 [변경내용]
+ 변경내용 : 자료형, 기본값
ALTER TABLE 테이블명 DROP COLUMN 컬럼명
ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] 제약조건(컬럼명)
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명
ALTER TABLE 테이블명 MODIFY 컬럼명 [CONSTRAINT 제약조건명] NOT NULL || NULL
ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 바꿀컬럼명
ALTER TABLE 테이블명 RENAME CONSTRAINT 기존제약조건명 TO 바꿀제약조건명
ALTER TABLE 테이블명 RENAME TO 바꿀테이블명
DROP TABLE 테이블명;
💢 다른 테이블에서 데이터를 사용하고 있는 경우 삭제가 되지 않음
- 다른 테이블에서 사용중인 데이터를 삭제한 후 테이블을 삭제
- 부모 테이블만 삭제하고 자식테이블의 제약조건까지 삭제
DROP TABLE 테이블명 CASCADE CONSTRAINT --> ROLLBACK 불가