[MS SQL]CREATE TABLE 문법 용어정리

Geun Bo Kim·2023년 4월 15일
0

My SQL

목록 보기
6/6
post-thumbnail

[MY SQL] 새로운 테이블을 만드는 CREATE TABLE

CREATE TABLE 문법에서 사용되는 용어 정리

CREATE TABLE: 새로운 테이블을 생성하는 명령어
IF NOT EXISTS: 이미 해당 이름의 테이블이 존재하는 경우에는 새로운 테이블을 생성하지 않고 기존 테이블을 사용하도록 하는 옵션
column_name data_type: 테이블의 열(column)을 정의하는 부분. column_name은 열의 이름을 나타내며, data_type은 해당 열에 저장될 데이터 타입을 지정합니다.
PRIMARY KEY (column_name): 해당 열(column)을 주요 키(primary key)로 설정합니다. PRIMARY KEY 구문 다음에 괄호로 열의 이름을 지정하여 주요 키를 설정할 수 있습니다.
NOT NULL: 해당 열(column)에 NULL 값을 허용하지 않도록 설정합니다.
UNIQUE: 해당 열(column)의 값이 고유(unique)하도록 설정합니다.
REFERENCES table_name (column_name): 해당 열(column)이 참조하는 다른 테이블(table)의 열(column)을 지정합니다.
FOREIGN KEY (column_name): 해당 열(column)을 외래 키(foreign key)로 설정합니다. FOREIGN KEY 구문 다음에 괄호로 열의 이름을 지정하여 외래 키를 설정할 수 있습니다.
ON DELETE CASCADE: 해당 열(column)이 참조하는 행(row)이 삭제될 경우, 해당 열을 참조하는 모든 행(row)도 함께 삭제하도록 설정합니다.

[예시]

CREATE TABLE IF NOT EXISTS STUDENT
(
	student_code varchar(100) primary key comment '수강생코드', 
	name varchar(100) not null comment '이름',
	birth varchar(8) null comment '생년월일',
	gender varchar(1) not null comment '성별',
	phone varchar(11) null comment '전화번호',
	major_code varchar(100) not null comment '주특기코드',
	foreign key(major_code) references major(major_code)
)
COMMENT '수강생정보' charset=utf8;

위 SQL 문장은 STUDENT 테이블을 생성하는 문장으로 각 열의 의미는 다음과 같다.
1.student_code: 수강생의 고유한 코드를 나타내는 열(column). varchar(100) 데이터 타입으로 설정되어 있으며, primary key로 설정되어 해당 열의 값이 고유하게 유지된다.
2.name: 수강생의 이름을 나타내는 열(column). varchar(100) 데이터 타입으로 설정되어 있으며, not null 제약 조건이 설정되어 있어 해당 열의 값이 NULL 일 수 없다.
3.birth: 수강생의 생년월일을 나타내는 열(column). varchar(8) 데이터 타입으로 설정되어 있으며, null 제약 조건이 설정되어 있어 해당 열의 값이 NULL 일 수 있다.
4.gender: 수강생의 성별을 나타내는 열(column). varchar(1) 데이터 타입으로 설정되어 있으며, not null 제약 조건이 설정되어 있어 해당 열의 값이 NULL 일 수 없다.
5.phone: 수강생의 전화번호를 나타내는 열(column). varchar(11) 데이터 타입으로 설정되어 있으며, null 제약 조건이 설정되어 있어 해당 열의 값이 NULL 일 수 있다.
6.major_code: 수강생의 주특기코드를 나타내는 열(column). varchar(100) 데이터 타입으로 설정되어 있으며, not null 제약 조건이 설정되어 있어 해당 열의 값이 NULL 일 수 없습니다. 이 열은 MAJOR 테이블의 major_code 열을 참조하는 foreign key로 설정되어 있다.
7.COMMENT 구문: 해당 테이블의 주석(comment)을 설정하는 부분이며, charset=utf8은 해당 테이블이 utf8 문자 집합을 사용하도록 설정하는 부분

[궁금증]

여기서 의문이 들었다 IF NOT EXIST말고 그냥 EXIST는 어떤걸까..?

EXISTSIF NOT EXISTS는 SQL 문법에서 전혀 다른 용어라고 한다.

EXISTS는 SQL의 조건절(clause) 중 하나로, 하위 쿼리(subquery)의 결과가 존재하는지 여부를 확인하는 데 사용된다.
예를 들어, SELECT 문에서 WHERE EXISTS 구문을 사용하여 하위 쿼리의 결과가 존재하는 경우에만 해당 행(row)을 반환하도록 필터링할 수 있다.

반면 IF NOT EXISTS는 CREATE TABLE 문법에서 사용되는 용어로
새로운 테이블을 생성할 때 이미 해당 이름의 테이블이 존재하는 경우에는 새로운 테이블을 생성하지 않고,
기존 테이블을 사용하도록 한다.

[end...]

Create Table에 관해서 오늘 정리를 해보며, 의문증과 동시에 조건절에 대해서도 간략하게 살펴보게 되었다.
추후에 조건절에대한 정리를 해야겠다고 생각이 든다..

profile
미래는 개발이다

0개의 댓글