반응형
관계형 데이터베이스를 공부하면서 가장 먼저 익혀야 할 개념은 테이블 설계와 관계 설정입니다. 이 글에서는 동물병원 데이터베이스 vetdb를 예시로, Owner(반려동물 주인)와 Pet(반려동물) 두 개의 테이블을 생성하면서 MySQL 기본 구문을 하나씩 살펴보겠습니다.
데이터베이스 생성
CREATE DATABASE vetdb;
- CREATE DATABASE: 새로운 데이터베이스를 생성합니다.
USE vetdb;
- USE vetdb: 생성한 vetdb를 현재 세션에서 사용하도록 설정합니다.
Owner 테이블 생성
CREATE TABLE Owner (
owner_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
phone VARCHAR(20),
email VARCHAR(100)
);
- INT AUTO_INCREMENT PRIMARY KEY: owner_id는 정수형이며, 값이 자동으로 증가합니다. 동시에 기본키로 지정됩니다.
- VARCHAR(100): 최대 100자의 문자열을 저장합니다.
- NOT NULL: 해당 컬럼은 반드시 값이 있어야 합니다.
Pet 테이블 생성 (외래키 포함)
CREATE TABLE Pet (
pet_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
species VARCHAR(50),
breed VARCHAR(50),
birthdate DATE,
owner_id INT,
FOREIGN KEY (owner_id) REFERENCES Owner(owner_id)
);
- FOREIGN KEY (owner_id) REFERENCES Owner(owner_id): Pet 테이블의 owner_id는 Owner 테이블의 owner_id를 참조합니다. 즉, 반려동물은 반드시 등록된 주인에게 연결됩니다.
예시 데이터 삽입
-- Owner 테이블
INSERT INTO Owner (name, phone, email) VALUES
('Kim Soojin', '010-1234-5678', 'soojin.kim@example.com'),
('Lee Hyunwoo', '010-9876-5432', 'hyunwoo.lee@example.com'),
('Choi Yuna', '010-4567-8901', 'yuna.choi@example.com');
-- Pet 테이블
INSERT INTO Pet (name, species, breed, birthdate, owner_id) VALUES
('Bori', 'Dog', 'Shih Tzu', '2020-04-15', 1),
('Nabi', 'Cat', 'Korean Shorthair', '2019-07-23', 1),
('Coco', 'Dog', 'Poodle', '2021-11-30', 2),
('Toto', 'Parrot', 'Cockatiel', '2018-02-12', 3);
- INSERT INTO ... VALUES: 테이블에 데이터를 삽입하는 구문입니다. 여러 행을 한 번에 삽입할 수도 있습니다.
- owner_id는 앞서 삽입된 Owner 테이블의 PK와 연결되므로, 외래키 제약 조건을 만족해야 합니다.
다음 포스팅에서 이어집니다.
반응형
'Computer Science > SQL' 카테고리의 다른 글
SQL | 실습으로 배우는 SQL 문법 - 1 (0) | 2025.04.27 |
---|---|
SQL | Selection, JOIN, View 실습 (vetdb 예제) - 2 (0) | 2025.04.26 |
SQL | OUTER JOIN (0) | 2025.04.24 |
SQL | INNER JOIN, NATURAL JOIN, EQUI JOIN 완벽 정리 (3) | 2025.04.23 |
SQL | 관계형 데이터베이스에서 Cartesian Product란? (0) | 2025.04.22 |