DB/SQL ์ ๋ํ ์ดํด
DB (DataBase)
๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
- ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์์ ํ๋ก๊ทธ๋จ๊ณผ ๊ฑฐ์ ๋์ผ
DB์ ๊ตฌ์กฐ
- Database
- DB์ Database๊ฐ ์กด์ฌ
- ์์ ํ์ผ๊ณผ ๋น์ทํ ํฐ ์กฐ๊ฐ๋ค
- Table
- Excel์ Sheet์ ๋์ผ (์์ ์ํธ)
- ๊ด๋ฆฌํ๊ณ ์ถ์ ๋น์ทํ ์ข ๋ฅ ๋ผ๋ฆฌ์ ๋ฌถ์
- Column
- ์ด, ์ธ๋ก ๋ฐ์ดํฐ
- ๋ฐ์ดํฐ ์ข ๋ฅ, ์นดํ ๊ณ ๋ฆฌ
- Row
- ํ, ๊ฐ๋ก ๋ฐ์ดํฐ
- ๋ฐ์ดํฐ ํ ์ธํธ(set)
DBMS(๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ )
- MySQL์ฉ DBMS ๊ด๋ฆฌ ๋๊ตฌ : phpMyAdmin
- ์ฐ๊ฒฐ ์ธ๋ถ ์ ๋ณด : ๊ด๋ฆฌ ๋๊ตฌ์์ ํธ์คํธ ์ด๋ฆ ๋๋ IP์ฃผ์, ํฌํธ ๋ฒํธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ, ์ฌ์ฉ์ ์ด๋ฆ ๋ฐ ์ํธ๋ฅผ ํฌํจํ ์ฐ๊ฒฐ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ฐพ์
DB ์ ์
- docker์ ์ด๋ฏธ ์ค์น๋ ์ํ๋ก ์ด์ฉ
- apache - php - mysql
- http://ip์ฃผ์/phpmyadmin : mysql์ ๊ด๋ฆฌ ๊ฐ๋ฅํ ํ์ด์ง์ ์ ์
- DB ๊ณ์ ๋ก๊ทธ์ธ
- ์ ํด์ง ID/PW ์ ๋ ฅ
- ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ(DB ์์ฑ)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช ์ง์
- ์ธ์ด(๋ฐ์ดํฐ์ ๋ ฌ๋ฐฉ์) : utf8_general_ci
- (or mb4_utf8_general_ci)
- ํ๊ธ ์ง์ utf8
- ํ ์ด๋ธ ๋ง๋ค๊ธฐ ์คํ
- ์ด๋ฆ : Column ์ด๋ฆ - (Attribute(์์ฑ))
- # | ์ด๋ฆ | ์ข
๋ฅ(๊ธธ์ด,๊ฐ) | ๋ฐ์ดํฐ์ ๋ ฌ๋ฐฉ์ | ...... | AI |
- idx(์ธ๋ฑ์ค) : int(10) | PRIMARY_KEY ์ง์ | AI(AUTO_INCREMENT) :๊ธฐ๋ณธํค(ํ์์ธ ๊ฒ)
- name : varchar(20) | utf8_general_ci : varchar (๊ฐ๋ณ ๋ณ์)
- ex)
DB ์ฐ๋
php - mysql ์ฐ๊ฒฐ
- php ๊ฐ db์ ์ด์ผ๊ธฐ ํ๊ธฐ ์ํด์๋ db(phpmyadmin)์ id/pw๋ฅผ was๊ฐ ์๊ณ ์์ด์ผ ํจ !
- (db ์ sql query๋ฅผ ๋ณด๋ด๊ธฐ ์ํด์๋)
WAS๋ DB์ ์ ์ํ๊ธฐ ์ํด์ ๋ก๊ทธ์ธ์ด ํ์ *
๋ก๊ทธ์ธ์ ํ๋ ค๋ฉด WAS๊ฐ DB์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์๊ณ ์์ด์ผํจ
-
๋ฐ๋ผ์ WAS์๋ ๋ฌด! ์กฐ! ๊ฑด! DB์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๊ฐ ์ ์ฅ๋์ด ์์ ์ ๋ฐ์ ์์
๊ทธ๋ ๊ธฐ ๋๋ฌธ์, ๋ง์ฝ WAS์ Shell์ด ํธ๋ ธ๋ค?(ํดํน๋นํ๋ค?)
๊ทธ๋ ๋ค๋ฉด DB๋ ์ด๋ฏธ ๊ฐ์ด ํธ๋ ธ๋ค๋ ๊ฒ !!
-
*์น์๋ฒ ํดํน์ ๊ฐ์ฅ ๋จผ์ ํด์ผํ๋ ๊ฒ์ด DB๋ฅผ ํฐ๋ ๊ฒ*
-
์ฆ, ๋๊ตฐ๊ฐ ๋ง๋ ์น์๋ฒ์ Shell์ ๋ฐ์์จ๋ค๋ฉด
์์ด๋์ ๋น๋ฐ๋ฒํธ๊ฐ ์น์๋ฒ ์ฝ๋์ ๋ฐํ์๊ธฐ ๋๋ฌธ์
๋ฌด์กฐ๊ฑด ๋๊ฐ์ง(Shell, DB)๋ ์ธํธ(set)๋ก ํธ๋ฆผ
MySQL Connector
- ํฐ์ผํ ์ด ํ์ !! - ์ปค๋ฅํฐ
- (ํฐ์ผ์ ๋ฐ์๋์ง ์๋ฐ์๋์ง ํ์ธํด์ผ ํ๋ค๋ ๊ฒ)
- ํฐ์ผ == ๋์คํฌ๋ฆฝํฐ
๋์คํฌ๋ฆฝํฐ(Descriptor)
- ํ์ผ ๋์คํฌ๋ฆฝํฐ๋ ์์คํ ์ผ๋ก๋ถํฐ ํ ๋น ๋ฐ์ ํ์ผ์ด๋ ์์ผ์ ๋ํํ๋ ์ ์๋ฅผ ์๋ฏธ
- (์์๋์๋ง์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฆฌ๊ณ , ์ข ๋ฃ์์ ์๋์ผ๋ก ๋ซํ)
- ๋ฆฌ๋ ์ค์์๋ ๋์คํฌ๋ฆฝํฐ๋ผ๊ณ ๋ถ๋ฅด๊ณ , ์๋์ฐ์์๋ ํธ๋ค์ด๋ผ๊ณ ๋ถ๋ฆ
DB ์ฐ๊ฒฐ ์ธ๋ถ ์ ๋ณด ์์ํ
- DB_SERVER, DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME
- ์์ํ์ ์ด์
- ์ฝ๋๊ฐ ๊ธธ์ด์ง๋ฉด ์์ ๊ฐ๋ค์ ํ ์ฝ๋ ๋ด์ ์ฌ๋ฌ๋ฒ ์จ์ผํ๋ ์ํฉ์ด ์ด
- ๋ง์ฝ ์ด๋ค ์ด์ ๋ก db ์๋ฒ์ ์ฃผ์๊ฐ ๋ฐ๋์ด์ ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ
- define์ผ๋ก ๋งคํฌ๋ก ์ง์ ํด๋๋ฉด ์ ์๋ ๋ถ๋ถ์ ์ฃผ์๋ง ๋ฐ๊พธ๋ฉด ๋์ง๋ง
- ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ฝ๋์์ ํด๋น ๋ถ๋ถ๋ค์ ์ผ์ผ์ด ์ฐพ์์ ๋ฐ๊ฟ์ค์ผ ํจ
- ๋ง์ฝ ๋นผ๋จน๊ณ ๋ชป ๋ฐ๊พผ ๋ถ๋ถ์ด ์๋ค๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ ์ ๋ ์์
- ์์ ๊ฐ์ด ์ฝ๋๊ฐ ๊ธธ์ด์ง๋ฉด ์์ฃผ ์ฐ๊ฒ๋๋ ๊ฐ์ด ์๊น
- ์ฝ๋๊ฐ ๊ธธ์ด์ง๋ฉด์ ์๊ธฐ๋ ์ ์ง๋ณด์์ ๋ถํธํจ์ ํด์ํ๊ธฐ ์ํจ
db_connection.php
<?php
// define('DB_SERVER', 'DB์ ip ์ฃผ์');
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'id');
define('DB_PASSWORD', 'pw');
define('DB_NAME', 'db');
$db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
?>
- define('DB_SERVER', 'db์ ip์ฃผ์');
- DB์ IP Adress ๊ฐ ๋ฐ๋ก์ด ์กด์ฌํ๋ค๋ ๊ฒ์, DB๊ฐ ๋ค๋ฅธ ์ปดํจํฐ์ ์กด์ฌํ๋ค๋ ๊ฒ
- ํฐ ๊ธฐ์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ปดํจํฐ(์๋ฒ)๋ฅผ WEB - WAS -DB ๋ชจ๋ ๋ฐ๋ก ์ฌ์ฉ
- ํ์ง๋ง ๋ง๋ํ ๋น์ฉ์ด ๋ค๊ธฐ ๋๋ฌธ์ ์ค์๊ธฐ์ ๋ค์ ๊ฒฝ์ฐ ํ ์ปดํจํฐ(์๋ฒ)๋ก ๋ชจ๋ ๊ฒ์ ํด๊ฒฐํด์ผ ํจ
- ๋ฐ๋ผ์ define('DB_SERVER', 'localhost'); ๋ก, ์ปดํจํฐ ๋ด๋ถ ์ฃผ์ 'localhost' (๋ณดํต 127.0.0.1)๋ฅผ ์ด์ฉ
๊ฐ์๋จธ์ ์ฌ๋ฌ๊ฐ๋ฅผ ์ด์ฉํ์ฌ ์ฌ๋ฌ ์๋ฒ๋ฅผ ์ด์ฉํ๋ ๊ฒ ์ฒ๋ผ ๊พธ๋ฐ ์ ์์
SQL
SQL(Structured Query Language)์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์กฐ์ํ๋๋ฐ ์ฌ์ฉ๋๋ ์ธ์ด
- ์ฃผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์, ์ฝ์ , ์ ๋ฐ์ดํธ ๋ฐ ์ญ์ ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๊ณ ์์ ํ๋๋ก ์ค๊ณ
- SQL์ MySQL์ ๋น๋กฏํ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์ง์๋จ
์ฟผ๋ฆฌ (Query)
์ฟผ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ ์ฐพ๊ธฐ, ์ถ๊ฐ, ๋ณ๊ฒฝ ๋๋ ์ ๊ฑฐ๋ฅผ ์์ฒญํ๋ ๋ฐฉ๋ฒ
- ์ฝ๊ฒ ๋งํด, WAS์์ DB์ ์ด์ผ๊ธฐํ๋ ๋ฐฉ๋ฒ
- ํ์ง๋ง, DB๋ ๋๋ํ๊ณ ์ฒ ๋ฒฝ์
- ๋๊ฐ ๋ฌผ์ด๋ณด๋ ๊ฐ์ ๋๋ตํ๋ฉด ์๋๊ธฐ ๋๋ฌธ !!!
- (์๋ฌดํํ ๋ ์ด์ผ๊ธฐํ๋ฉด ์๋จ)
- ๋ฐ๋ผ์ ์ฟผ๋ฆฌ๋ ํฐ์ผ์ ๊ฐ์ง๊ณ "๋๋ ์ธ์ฆ๋ ์ฌ์ฉ์์ผ, ๊ทธ๋ฌ๋๊น ๋๋ตํด!" ๋ผ๊ณ ํ๋ ๊ฒ
- ์ฟผ๋ฆฌ์์ [ ] ๋ ํ๊ธฐ๋ฅผ ์ํจ, ( ) ๋ ์ค์ ๋ก ์ ๋ ฅํด์ผ ํจ
๋ฐ์ดํฐ ์์ธ
- SELECT : ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ช ๋ น์ด
- SELECT √ [์ปฌ๋ผ ์ด๋ฆ] √ FROM √ [ํ
์ด๋ธ ์ด๋ฆ] : √(๋์ด์ฐ๊ธฐ) ์ค์ !!
- ์ฌ๋ฌ๊ฐ์ ์นผ๋ผ ์์ฒญ : ์ปฌ๋ผ1 , ์ปฌ๋ผ2 - ,(์ฝค๋ง) ๋ฅผ ์จ์ฃผ๊ณ , ๋์ด์ฐ๊ธฐ๋ ์ํด๋ ๋ฌด๋ฐฉ
- ๋ชจ๋ ์นผ๋ผ ์์ฒญ : * ์ ์ด์ฉ
- ์ ๊ตํ SELECT
- ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ ๋ช ๋ น์ด WHERE
- WHERE๋ฅผ ์ด์ฉํ์ง ์๊ณ SELECT๋ฅผ ํ๋ ๊ฒฝ์ฐ
- ์ํ๋ ๋ฐ์ดํฐ๊ฐ ์๋ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ค๋ ๊ฐ์ ธ์ด
- ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด WHERE๋ก [์ ์ฝ์กฐ๊ฑด]์ ์ฃผ๋ ๊ฒ !
- SELECT ๋ฌธ์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ถ์
- SELECT √ [์ปฌ๋ผ ์ด๋ฆ] √ FROM √ [ํ
์ด๋ธ ์ด๋ฆ] √ WHERE √ [์กฐ๊ฑด]
- ์กฐ๊ฑด์ ๋ณดํต ์ปฌ๋ผ์ ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ํจ
- (๋ณ์๊ฐ ์๋, ์๋ฑํ ๋ฐ์ดํฐ๊ฐ ์๋, ์์ ์ปฌ๋ผ๋ค์ ๊ธฐ์ค์ผ๋ก ์ด์ฉ)
- ์กฐ๊ฑด and ์กฐ๊ฑด : ์ฌ๋ฌ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๊ฒฝ์ฐ
- ์กฐ๊ฑด or ์กฐ๊ฑด : ์ฌ๋ฌ ์กฐ๊ฑด๋ค ์ค ํ๋๋ผ๋ ๋ง์ผ๋ฉด ๋ชจ๋ ์กฐ๊ฑด์ ๊ฐ์ ธ์ด
- ๋์ ์ ์ฝ ์กฐ๊ฑด๋ ๊ฐ๋ฅ
๋ฐ์ดํฐ ์ฝ์
- INSERT : ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๋ช ๋ น์ด
- INSERT √ INTO √ [ํ
์ด๋ธ ์ด๋ฆ] √ (์ปฌ๋ผ ์ด๋ฆ) √ VALUE √ (๊ฐ) : √(๋์ด์ฐ๊ธฐ) ์ค์ !!
- ์ฌ๋ฌ๊ฐ์ ์นผ๋ผ ์ญ์ : (์ปฌ๋ผ1, ์ปฌ๋ผ2, ...) VALUE (๊ฐ1, ๊ฐ2, ....)
- ๋ชจ๋ ์ปฌ๋ผ ์ฝ์
- ์ปฌ๋ผ์ ๋ํด์๋ * , ( ) ์ ์ฌ์ฉํ์ง ์์
- ๊ฐ (NULL, ๊ฐ1, ๊ฐ2, ...) : PRIMARY_KEY๋ก ์ง์ ๋ idx ์ NULL ๊ฐ
- NULL๊ฐ์ ๋ฃ๊ธฐ ์ํด์๋ idx์ AUTO_INCREMENT ์ค์ ์ด ๋์ด ์์ด์ผ ํจ
- ์๋์ด ์๋ค๋ฉด ์ฝ์ ํ idx ๋ฅผ ์ง์ ๋ฃ์ด์ฃผ์ด์ผ ํจ (๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ฌ ๋ฐ์)
๋ฐ์ดํฐ ์์ / ๋ฐ์ดํฐ ์ญ์
์ค์ต
๋ชจ์ ํดํน ์คํฐ๋ 2์ฃผ์ฐจ ์ค์ต
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์