테이블이나 인덱스, 뷰 등 테이터베이스 객체를 생성하는 구문
CREATE TABLE 테이블명(컬렴명 자료형(크기), 컬럼명 자료형(크기), ...);
CREATE TABLE "MEMBER" ( MEMBER_ID VARCHAR2(20), MEMBER_PWD VARCHAR2(20), MEMBER_NAME VARCHAR2(30), MEMBER_SSN CHAR(14), -- '991213-1234567' ENROLL_DATE DATE DEFAULT SYSDATE );
테이블의 컬럼에 주석을 다는 구문
COMMENT ON COLUMN 테이블명.컬럼명 IS 주석내용
COMMENT ON COLUMN "MEMBER".MEMBER_ID IS '회원 아이디'; COMMENT ON COLUMN "MEMBER".MEMBER_PWD IS '회원 비밀번호'; COMMENT ON COLUMN "MEMBER".MEMBER_NAME IS '회원 이름'; COMMENT ON COLUMN "MEMBER".MEMBER_SSN IS '회원 주민등록번호'; COMMENT ON COLUMN "MEMBER".ENROLL_DATE IS '회원 가입일';
테이블 작성 시 각 컬럼에 기록될 데이터에 대해 제약조건을 설정할 수 있는데
이는 데이터 무결성 보장을 주 목적으로 함
입력 데이터에 문제가 없는지에 대한 검사와 데이터의 수정/삭제 여부 검사 등을 위해 사용
데이터에 NULL을 허용하지 않음
CREATE TABLE USER_USED_NN( USER_NO NUMBER NOT NULL, USER_ID VARCHAR2(20), USER_PWD VARCHAR2(20), USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50) );
중복된 값을 허용하지 않음
CREATE TABLE USER_USED_UK( USER_NO NUMBER NOT NULL, USER_ID VARCHAR2(20) CONSTRAINT USER_ID_U UNIQUE, USER_ID VARCHAR2(20), USER_PWD VARCHAR2(20), USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50), );
CREATE TABLE USER_USED_UK( USER_NO NUMBER NOT NULL, USER_ID VARCHAR2(20), USER_PWD VARCHAR2(20), USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50), CONSTRAINT USER_ID_U UNIQUE(USER_ID) );
NULL과 중복 값을 허용하지 않음(컬럼의 고유 식별자로 사용하기 위해)
CREATE TABLE USER_USED_PK( USER_NO NUMBER CONSTRAINT USER_NO_PK PRIMARY KEY, USER_ID VARCHAR2(20), USER_PWD VARCHAR2(20), USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50) );
참조되는 테이블의 컬럼의 값이 존재하면 허용
CREATE TABLE USER_USED_FK( USER_NO NUMBER PRIMARY KEY, USER_ID VARCHAR2(20) UNIQUE, USER_PWD VARCHAR2(20) NOT NULL, USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50), GRADE_CODE NUMBER CONSTRAINT GRADE_CODE_FK REFERENCES USER_GRADE );
저장 가능한 테이터 값의 범위나 조건을 지정하여 설정한 값만 허용
CREATE TABLE USER_USED_CHECK( USER_NO NUMBER PRIMARY KEY, USER_ID VARCHAR2(20) UNIQUE, USER_PWD VARCHAR2(20) NOT NULL, USER_NAME VARCHAR2(30), GENDER VARCHAR2(10) CONSTRAINT GENDER_CHECK CHECK( GENDER IN('남', '여')), PHONE VARCHAR2(30), EMAIL VARCHAR2(50) );