데이터가 하나 이상의 열과 행의 테이블(또는 '관계')에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계
즉, 데이터를 구성하는 정보 모음
특징 : 데이터를 표로 표시
Structured Query Language로 관계형 데이터베이스를 다룰 때 사용되는 표준 언어
Relational Database Management System으로 관계형 데이터베이스 관리 시스템
대표적으로 MySQL이 있음
위 그림은 관계형 데이터베이스 구성이다.
데이터를 테이블 안에 저장, 테이블의 묶음 하나가 데이터베이스가 된다.
위의 표를 만들어 보자
CREATE DATABASE <데이터베이스 명>;
-> 데이터베이스 생성
DROP DATABASE <데이터베이스 명>;
-> 데이터베이스 삭제
SHOW DATABASE;
-> 데이터베이스 목록 확인
USE <데이터베이스 명>;
-> 데이터베이스 선택
CREATE TABLE <테이블 명> (
[칼럼1] [데이터 타입] [설정],
[칼럼2] [데이터 타입] [설정],
[칼럼3] [데이터 타입] [설정]
)
테이블을 만들 때 칼럼을 설정해야 한다.
칼럼과 데이터 타입 입력은 필수, 선택적으로 설정 추가 가능
데이터 타입에 관한 정보 링크
https://www.w3schools.com/sql/sql_datatypes.asp
USE mydb01;
CREATE TABLE topic(
id INT(11) NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
description TEXT NULL,
created DATETIME NOT NULL,
author VARCHAR(30) NULL,
profile VARCHAR(100) NULL,
PRIMARY KEY(id)
)
위는 테이블 생성 예시
코드를 보면
CRUD는 Create, Read, Update, Delete로 데이터를 다루는 가장 기본적인 동작
INSERT INTO topic (title,description,created,author,profile) VALUES('MySQL','MySQL is ...',NOW(),'egoing','developer');
INSERT INTO topic (title,description,created,author,profile) VALUES('SQL Server', 'SQL Server is ...', NOW(), 'duru', 'data administrator');
SELECT * FROM topic;
// topic 테이블의 모든 칼럼의 모든 데이터를 표시
SELECT id,title,author FROM topic;
// id, title, author 칼럼의 데이터만 표시
SELECT id,title,author FROM topic WHERE aurthor='egoing';
// author가 egoing인 데이터를 표시
SELECT id,title,author FROM topic WHERE aurthor='egoing' ORDER BY id;
// 데이터를 id로 정렬하여 표시
SELECT id,title,author FROM topic WHERE aurthor='egoing' ORDER BY id LIMIT 2;
// 2개까지만 표시
UPDATE topic SET description='ORACLE is ...', title='Oracle' WHERE ID = 2;
DELETE FROM topic WHERE id = 2;