728x90
1. DATABASE 생성
CREATE DATABASE database_name;
2. DATABASE 사용
USE database_name
3. TABLE 생성
- IF NOT EXISTS : 데이터의 값이 있으면 업데이트, 없으면 새로 만듭니다.
- DEFAULT CURRENT_TIMESTAMP : 현재 Timestamp 값을 Insert 시점에 기본값으로 Set 합니다.
- AUTO_INCREMENT : 튜플을 추가할 때 마다 자동으로 값이 증가됩니다.
- PRIMARY_KEY : 해당 애트리뷰트를 기본키로 지정합니다.
CREATE TABLE IF NOT EXISTS tasks (
task_id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
start_date DATE,
due_date DATE,
status TINYINT NOT NULL,
priority TINYINT NOT NULL,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
생성을 마쳤다면 테이블의 구조를 확인해볼 수 있습니다.
DESCRIBE : 테이블의 구조 확인 tasks
DESCRIBE tasks;
실행결과 :
+-------------+--------------+------+-----+-------------------+-------------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+-------------------+-------------------+
| task_id | int | NO | PRI | NULL | auto_increment |
| title | varchar(255) | NO | | NULL | |
| start_date | date | YES | | NULL | |
| due_date | date | YES | | NULL | |
| status | tinyint | NO | | NULL | |
| priority | tinyint | NO | | NULL | |
| description | text | YES | | NULL | |
| created_at | timestamp | YES | | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+-------------+--------------+------+-----+-------------------+-------------------+
4. 외래키 기본키가 있는 TABLE 생성
CREATE TABLE IF NOT EXISTS checklists (
todo_id INT AUTO_INCREMENT,
task_id INT,
todo VARCHAR(255) NOT NULL,
is_completed BOOLEAN NOT NULL DEFAULT FALSE,
PRIMARY KEY (todo_id , task_id),
FOREIGN KEY (task_id)
REFERENCES tasks (task_id)
ON UPDATE RESTRICT ON DELETE CASCADE
);
DESCRIBE : 테이블의 구조 확인
DESCRIBE checklists;
실행결과 :
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| todo_id | int | NO | PRI | NULL | auto_increment |
| task_id | int | NO | PRI | NULL | |
| todo | varchar(255) | NO | | NULL | |
| is_completed | tinyint(1) | NO | | 0 | |
+--------------+--------------+------+-----+---------+----------------+
결과를 보면 알 수 있듯이 PRIMARY KEY는 todo_id, task_id 입니다.
FOREIGN KEY (task_id) // (자식 테이블 컬럼 명)
REFERENCES tasks (task_id) // 참조 테이블(부모 테이블 기본키명)
ON UPDATE RESTRICT // 자식 테이블이 참조하고 있을 경우, 업데이트 불가
ON DELETE CASCADE // 부모 데이터 삭제 시 자식 데이터도 함께 삭제
오늘은 데이터베이스를 생성하고 접속한 후 테이블을 만들고 구조를 확인하는 것을 공부해봤습니다.
'DB와 SQL' 카테고리의 다른 글
SQLD : 2과목 SQL 기본 및 활용 (SQL 기본) (0) | 2021.11.06 |
---|---|
Part 3. SQL - TABLE 구조 변경 : DDL(ALTER) (0) | 2021.05.17 |
Part 1. 데이터베이스(DB)와 SQL이란? (0) | 2021.05.05 |