[오라클] CREATE TABLE
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)
);
Author And Source
이 문제에 관하여([오라클] CREATE TABLE), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@danhan/오라클-CREATE-TABLE저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)