📁 CH11. [예제로 배우는] 데이터베이스
📌 데이터베이스란
- 데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체를 데이터베이스(Database; DB)라고 함
- 데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 함
📌 DBMS
- 우리는 데이터베이스를 운여하고 관리하기 위한 DBMS (DataBase Management System)를 통해 데이터베이스를 사용함
📌 DBMS의 종류
- 운영 회사는 다르지만, 데이터베이스에 연산을 요청하기 위해 사용되는 주요 명령어는 동일함.

- * 모든 제품에 브랜드가 있듯이 모든 시스템도 브랜드가 있음.
📌 SQL (Structured Query Language)
- SQL은 데이터베이스에 연산을 요청하기 위해 사용되는 언어로 데이터를 생성, 조회, 수정, 삭제 등과 같은 기능을 수행할 수 있음
- 대표적인 SQL은 다음과 같음
- 데이터 삽입 :
INSERT
- 데이터 조회 :
SELECT
- 데이터 수정 :
UPDATE
- 데이터 삭제 :
DELETE
📌 Docker 설치
- docker : 응용 프로그램들을 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스. 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다.

- OS : 위에 프로그램을 돌릴 수 있게 만들어놓은 그런 운동장
- OS 위에 docker 깔림. docker가 컨테이너를 들고 다님
- 그 공간 안에 앱 설치. 훨씬 OS가 빨라짐. OS가 가벼워짐.
- 어플리케이션도 독립적으로 유연하게 움직일 수 있음..
📌 mariaDB 설치
docker pull mariadb cmd(터미널)에서
📌 Docker로 MariaDB 설치
- Docker로 MariaDB 설치하기
docker pull mariadb
docker run --name mariadb -d -p 3306:3306 --restart -e MYSQL_ROOT_PASSWORD=root mariadb
- 1) mariadb가 있는 컨테이너 접속 :
docker exec -it mariadb /bin/bash
- 2) mariadb 실행 :
mariadb -u root -p

📌 SQL : CREATE (데이터 저장소 만들기)
💻 Docker로 MariaDB 실행하기
- 1) Docker desktop 프로그램 실행하기
- 2) cmd(윈도우) 또는 터미널(맥) 실행
- 3) mariadb가 있는 컨테이너 접속 : ```docker exec -it mariadb /bin/bash
- 4) mariadb 실행 :
mariadb -u root -p
💻 데이터를 저장할 방(database) 만들기
- 방 확인 :
SHOW DATABASES;
- 방 만들기 :
CREATE DATABASE Tennis;
- 방 들어가기 :
USE Tennis;

- MariaDB [(none)]에서 none은 아무 방에도 들어가있지 않다는 뜻
- 세미콜론 꼭 찍기
💻 방 안에 저장소 만들기
CREATE TABLE member (
id INT,
name VARCHAR(30),
pwd VARCHAR(30),
)

📌 SQL : SELECT, INSERT
💻 데이터 조회하고, 삽입하기
- 테이블 데이터 조회 :
SELECT 컬럼명 FROM 테이블명;
- 테이블 데이터 삽입 :
INSERT 컬럼명1, 컬럼명2, ... INTO 테이블명 VALUES (컬럼1 데이터, 컬럼2 데이터,...);
💻 특정 데이터 조회하기
- 특정 데이터 조회 :
SELECT 컬럼명 FROM 테이블명 WHERE 조건;

📌 SQL : UODATE, DELETE
💻 데이터 수정하기
- 테이블 데이터 수정 :
UPDATE 테이블명 SET 컬럼명=수정할 값 WHERE 조건;
- ex.
UPDATE member SET pwd='zzzzz' WHERE id='tennisking';

- 만약 조건을 달지 않으면 모든 행의 값이 바뀐다!! (테이블 전체의 데이터가 영향을 받는다)

💻 데이터 삭제하기
- 테이블 데이터 삭제 :
DELETE FROM 테이블명 WHERE 조건;
- ex.
DELETE FROM member WHERE name='im hanbi';
- * 여기서, WHERE 절을 제외하면 테이블 데이터 전체 삭제가 가능함.
