용어정리
DataBase : 공유하여 사용할 목적으로 체계화해 관리하는 데이터의 집합.
DataBase Shema : 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 정의한 구조
Table : 데이터를 저장한 표
DataBase Model : 데이터를 집합하기 위한 형태의 종류, ex) RDBMS
SQL : RDBMS의 데이터를 관리하기 위해 만들어진 프로그래밍 언어
DataBase Server : database를 모아 저장하기 위한 서버 ex) MySQL
Database Server 설치하기
MySQL communtity server 설치 -> terminal에서 접속
mysql -uroot -p
-u: user
-p: password
Database 만들고,확인하고, 사용하고 지워보기
CREATE DATABASE my_data;
SHOW DATABASES;
USE my_data;
DROP DATABASE my_data;
use 명령어를 이용해, database의 이름을 선택하면 내가 앞으로 내릴 명령어 들은 해당 database를 기준으로 하는 말들이야 라는 의미.
Table 만들기
CREATE TABLE topic(
id INT(11) NOT NULL AUTO_INCREAMENT,
title VARCHAR(100) NOT NULL,
description TEXT NULL,
created DATETIME NOT NULL,
author VARCHAR(30) NULL,
profile VARCHAR(100) NULL,
PRIMARY KEY(id)
);
topic : 테이블 이름
id : 테이블의 첫번째 컬럼명
INT(11) : 정수타입, 11글자 까지만 저장
NOT NULL : 필수값
AUTO_INCREAMENT : 자동으로 증가하도록 설정
NULL : 비어있는 값 가능
PRIMARY KEY(id) : id를 이 테이블의 주요 키로 사용하겠다
TABLE 보기
SHOW TABLES;
TABLE의 컬럼 상세 보기
DESC topic;
TABLE에 데이터 넣기 (CREATE)
INSERT INTO topic (title, description, created, author, profile)
values ('제목', '내용', NOW(), '글쓴이', '개발자');
TABLE 데이터 읽기 (READ)
SELECT * FROM topic;
SELECT id,title,description,created FROM topic WHERE author = 'egonig';
SELECT * FROM topic WHERE author = 'egonig' ORDER BY id DESC;
SELECT * FROM topic ORDER BY id DESC LIMIT 3;
https://dev.mysql.com/doc/refman/8.0/en/select.html
TABLE 데이터 수정하기
UPDATE topic SET title='Oracle', created=NOW() WHERE id=2;
TABLE 데이터 삭제하기
DELETE FROM topic WHERE id=5;
관계형 데이터 베이스는 왜 필요할까?
하나의 테이블로 했을 때 장점 : 한 눈에 다 보임.직관적.
단점 : 불필요한 반복, 많은 저장공간이 필요
테이블을 쪼개고 관계를 맺어줬을 때 장점 : 데이터 중복 피할 수 있음.
단점 : 테이블을 여러 개 읽어서 보아야함. -> SQL을 이용해 해결 가능
JOIN
SELECT * from topic LEFT JOIN author ON topic.author_id = author.id
SELECT topic.id AS topic_id,title,description,created,name,profile FROM topic LEFT JOIN author ON topic.author_id = author.id;
이 글은 생활코딩을 참고하였습니다.