728x90
관계형 데이터베이스에서 테이블의 데이터를 다루기 전에
테이블 그 자체, 테이블의 구조와 각 칼럼의 속성 등을 다루는
DDL (Data Definition Language) 쿼리문에 대해 알아보자.
DDL (Data Definition Language) 쿼리문
명령어 | 설명 | 활용법 |
CREATE | 새로운 테이블을 각 칼럼(열)의 [칼럼명, 자료형, 제약 조건]을 입력하여 생성 | CREATE TABLE [테이블명] ([칼럼 이름] [자료형] [제약 조건] ... (칼럼만큼 반복)); |
ALTER | 테이블의 열을 추가/수정/삭제할 수 있는 명령어 변경하고자 하는 테이블의 [테이블명] [행위] [열이름] [자료형] [제약 조건] 순서로 지정 (수정 시 변경하지 않을 요소도 모두 기입해줘야 함) |
추가: ALTER TABLE [테이블명] ADD [열 이름] [자료형] [제약 조건] 삭제: ALTER TABLE [테이블명] DROP [열 이름] 수정: ALTER TABLE [테이블명] MODIFY [열 이름] [자료형] [제약 조건] |
DROP | 테이블 전체를 삭제하는 명령어 | DROP TABLE [삭제할 테이블명] |
TRUNCATE | 테이블 내 모든 데이터(행)를 삭제하는 명령어 | TRUNCATE TABLE [테이블명] |
RENAME | 테이블 이름 변경 명령어 | RENAME TABLE [기존 테이블명] TO [바꿀 테이블명] |
DESC | 테이블의 모든 칼럼의 자료형과 제약조건을 확인하는 명령어 | DESC [테이블명] |
(* 실제 명령어 작성 시 []는 빼고 작성)
명령어별 활용 예시는 아래와 같다.
명령어 | 활용 예시 |
CREATE | CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(200) NOT NULL UNIQUE, password VARCHAR(200) NOT NULL, profile_image VARCHAR(1000) NULL, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); |
ALTER | ALTER TABLE users ADD age INT NOT NULL; ALTER TABLE users DROP profile_image; ALTER TABLE posts MODIFY content TEXT NULL; |
DROP | DROP TABLE posts |
TRUNCATE | TRUNCATE TABLE posts |
RENAME | RENAME TALBE posts TO postings |
DESC | DESC posts |
728x90
'DataBase > MySQL' 카테고리의 다른 글
[MySql] 이미 존재하는 row의 속성을 새로 입력하고 싶다면? (0) | 2023.04.06 |
---|---|
[MySql] GROUP BY, max()를 활용한 문제 풀이 (0) | 2023.03.25 |
[MySql] mysql을 실행하려고 했을 때 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러 문구가 나온다면 (0) | 2023.03.25 |
[MySql] 2개 이상 여러 Table을 Join하기 - 개념 정리 (0) | 2023.03.21 |
[MySql] DQL SELECT문에서 subquery 활용법 (0) | 2023.03.21 |