[오라클] CREATE TABLE

김다연·2022년 1월 5일
1

오라클

목록 보기
1/1

STUDENTS 테이블 구성

학생 출석부를 만들기 위해 먼저 학생 개인 정보를 담은 STUDENTS 테이블을 구성했다. 개인 정보는 기존 출석부 정보에 학생 고유 아이디를 추가했다.

학생 개인 정보

  • student_id 학생 고유 아이디
  • student_name 학생 이름
  • birthday 생년월일
  • address 주소
  • sex 성별
  • home_number 집 전화번호
  • phone_number 핸드폰 전화번호
  • email 이메일
  • student_state 신급(유아 세례, 입교)

데이터 타입

  • char 고정 길이를 갖는 아스키코드 문자 데이터형 (바이트 단위)

  • nchar 고정 길이를 갖는 유니코드 문자 데이터형 (글자 단위)

  • date yyyy-mm-dd hh:mm:ss

    *유니코드(한글, 특수 기호 등)를 저장하지 않고 아스키코드(숫자, 영어)만 저장한다면 NChar보다 Char을 사용하는 것이 좋다. Char는 NChar보다 사용하는 저장 공간의 크기가 더 작다.

기본 키

기본 키 primary key

  • 테이블 내에 다른 행과 구분하기 위해 사용
  • 고유키 unique key + not null 조건 동시에 만족
  • 사용시 장점
    • SELECT 문 사용시 검색 속도 향상 (중요!)
    • 해당 고유키가 지정된 행의 유일성 확인
    • 잘못된 데이터가 입력 혹은 수정 시에 에러 표시
  • 특징
    • 테이블당 하나만 정의 가능
    • null 허용하지 않음
    • 단일 컬럼 또는 다중의 컬럼들로 구성
    • 관례상 primary key 는 테이블의 첫 번째 컬럼으로 배치

참고 : https://linuxism.ustd.ip.or.kr/503

STUDENTS 기본 키 선정

STUDENTS 테이블에서 ROW를 구분하기 위해 student_id (학생 고유 아이디)를 primary key 로 선정했다. student_id 는 ROW 마다 유일하며, null 값을 허용하지 않는다.

STUDENTS 테이블 생성

SQL 테이블 생성 문법

  • 컬럼명 뒤에 데이터 타입을 반드시 명시
CREATE TABLE 테이블이름 (
	컬럼명 데이터타입 제약조건,
	컬럼명 데이터타입 제약조건,
);

PRIMARY KEY 선언 문법

  • 컬럼명 옆에 명시적으로 선언
  • 컬럼명 다음 제약 조건과 함께 선언
    CONSTRAINT [제약조건 명] PRIMARY KEY([컬럼명1],[컬럼명2],...) - 가장 많이 사용하는 방법
  • 테이블 선언 맨 마지막에 제약 조건과 함께 선언
    [해당 컬럼][타입] CONSTRAINT [제약조건 명] PRIMARY KEY
  • 테이블 선언 후 alter table을 통해 선언
    ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] PRIMARY KEY(컬럼명)
CREATE TABLE EXAMPLE(
      pkCol1 CHAR(8) PRIMARY KEY, 
      pkCol2 NUMBER CONSTRAINT consTest_pk3 PRIMARY KEY,
			pkCol3 CHAR(8),
      CONSTRAINT pk_code PRIMARY KEY(pkCol3)
 );

// 출처: https://mine-it-record.tistory.com/44 [나만의 기록들]

실제 코드

CREATE TABLE STUDENTS(
    student_id NCHAR(8) NOT NULL,
    student_name NCHAR(10) NOT NULL,
    birthday DATE NOT NULL,
    address NCHAR(100) NOT NULL,
    sex CHAR(1) NOT NULL,
    home_number NCHAR(13),
    phone_number NCHAR(13),
    email NCHAR(50),
    student_state CHAR(1) NOT NULL,
    CONSTRAINT students_pk PRIMARY KEY (student_id)
);

1개의 댓글

comment-user-thumbnail
2022년 2월 14일

매일매일 열심히 공부하시는 모습이 보기 좋아요~ 응원합니다!

답글 달기