
data를 효율적으로 관리하기 위한 데이터 집합체를 Database(이하 DB)라고 한다.
data를 구조화하여 중복을 막고, 효율적인 데이터 연산을 가능하게 한다.
DBMS(Database Management System)를 통해 DB를 운영하고 관리할 수 있다.
DB에 새로운 데이터를 추가하거나 수정 및 삭제를 DBMS를 통해서 수행하게 된다.
우리가 일상생활에서 사용하는 상품에도 브랜드가 있듯이, DBMS도 여러 종류 브랜드가 있다.
ex. Oracle, MySQL, PostgreSQL, SQLite, MariaDB 등
운영하는 회사는 각 브랜드마다 다르지만 연산 처리 주요 명령어는 비슷하다.
DBMS 설치
실습에서는 Docker를 통해 MariaDB를 설치하여 사용할 예정이다.
docker pull mariadbdocker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD={password} mariadb
mariadb: 컨테이너 이름-d: 백그라운드에서 실행 -p: 포트 매핑 (host:container) --restart=always: 도커 재시작 시 자동으로 컨테이너 시작 -e MYSQL_ROOT_PASSWORD={password}: root 비밀번호 설정docker exec -it mariadb /bin/bash
exec: 명령 실행 -it: interactive terminal /bin/bash: 컨테이너 내부에서 bash shell 실행 mariadb -u root -p: 2번에서 설정한 비밀번호 입력 SQL
SQL(Structured Query Language)은 DBMS에 명령을 내리는 언어이다.
SQL 구문
DB 조회
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
DB 생성
MariaDB [(none)]> CREATE DATABASE Tennis;
// result
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| Tennis |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
DB 사용
MariaDB [(none)]> USE Tennis;
// result
Database changed
Table 생성
MariaDB [Tennis]> CREATE TABLE member
-> (
-> id VARCHAR(30),
-> name VARCHAR(30),
-> pwd VARCHAR(30)
-> );
// result
MariaDB [Tennis]> SHOW TABLES;
+------------------+
| Tables_in_Tennis |
+------------------+
| member |
+------------------+
Data 삽입
MariaDB [Tennis]> INSERT INTO member
-> VALUES ('nogglee', 'Eunji LEE', 'aaaaa');
// result
// ID 컬럼 조회
MariaDB [Tennis]> SELECT id FROM member;
+---------+
| id |
+---------+
| nogglee |
+---------+
// 모든 데이터 조회
MariaDB [Tennis]> SELECT * FROM member;
+-------------+-----------+-------+
| id | name | pwd |
+-------------+-----------+-------+
| nogglee | Eunji LEE | zzzzz |
| ssongcoding | Songa KIM | bbbbb |
+-------------+-----------+-------+
// WHERE 절 사용하여 특정 조건의 데이터 조회
MariaDB [Tennis]> SELECT * FROM member WHERE id = 'nogglee';
+---------+-----------+-------+
| id | name | pwd |
+---------+-----------+-------+
| nogglee | Eunji LEE | aaaaa |
+---------+-----------+-------+
Data 수정
MariaDB [Tennis]> UPDATE member SET pwd = 'zzzzz' WHERE id = 'nogglee';
// result
MariaDB [Tennis]> SELECT * FROM member WHERE id = 'nogglee';
+---------+-----------+-------+
| id | name | pwd |
+---------+-----------+-------+
| nogglee | Eunji LEE | zzzzz |
+---------+-----------+-------+
Data 삭제
MariaDB [Tennis]> DELETE FROM member WHERE id = 'nogglee';
// result
MariaDB [Tennis]> SELECT * FROM member;
+-------------+-----------+-------+
| id | name | pwd |
+-------------+-----------+-------+
| ssongcoding | Songa KIM | bbbbb |
+-------------+-----------+-------+