포스트

LG CNS 부트캠프 학습일지 23일차

학습 내용

  • DDL (Data Definition Language)
  • CREATE, ALTER 구문 사용법
  • View 만들기
  • SEQUENCE 구문 사용법

CREATE, ALTER 구문 사용법

이전까지는 SELECT 구문을 사용해서 기존 데이터베이스로부터 원하는 정보를 얻는 방법을 배웠다. 오늘은 DDL을 사용해서 테이블을 새로 만들고 수정하는 방법을 배웠다.

1
2
3
4
5
6
7
8
9
10
DROP TABLE IF EXISTS employee;
CREATE TABLE employee (
	EMP_NO VARCHAR(10),
	EMP_NAME VARCHAR(10),
	DEPT_ID VARCHAR(10),
	GENDER CHAR(1) NOT NULL CHECK(GENDER IN ('M', 'F')),
	REGDATE DATE DEFAULT SYSDATE(),
	CONSTRAINT PRIMARY KEY (EMP_NO),
	CONSTRAINT FOREIGN KEY (DEPT_ID) REFERENCES department(DEPT_ID)
);

CREATE 문은 대충 이런 느낌이다. 열의 이름과 자료형을 정해준다. 만약 입력받을 데이터에 일정한 제약을 걸어주고 싶다면 추가해주면 된다.

1
2
3
4
5
6
ALTER TABLE employee
	ADD CONSTRAINT PRIMARY KEY (EMP_NO),
	ADD CONSTRAINT FOREIGN KEY (DEPT_ID) REFERENCES department(DEPT_ID),
	MODIFY COLUMN GENDER CHAR(2),
	CHANGE COLUMN GENDER EMP_GENDER CHAR(2)
	...;

ALTER 구문을 사용하면 이미 존재하는 테이블의 스키마나 제약조건을 수정할 수 있다. 열의 자료형을 변경할 때는 MODIFY 구문을 사용하고 열의 이름을 바꿀 때는 CHANGE 를 사용한다. ChatGPT에게 질문하면서 알게되었는데, MySQL 최신 버전에는 RENAME 구문도 사용할 수 있는 것 같다.

1
2
ALTER TABLE employee
    RENAME COLUMN OLD_NAME TO NEW_NAME;

View 만들기

View란 무엇인가. 정보처리기사 필기시험 공부하면서 봤었다. 가상의 읽기 전용 테이블이라고 외우고 넘어갔었다.

FROM 구문 아래에서 서브쿼리로 가상의 테이블을 만드는 방식으로 접했었다.

1
2
3
4
5
6
7
SELECT *
FROM (
	SELECT EMP_NAME, ADDRESS, GENDER
	FROM employee
	WHERE employee.DEPT_ID = '90'
) sales_department_employee
WHERE EMP_NAME LIKE '김%'

SEQUENCE 사용법

1
2
3
4
5
6
CREATE SEQUENCE test_sequence
START WITH 1
INCREMENT BY 1;

SELECT NEXTVAL(test_sequence);
SELECT LASTVAL(test_sequence);
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

Comments powered by Disqus.