์์ ์ ์๋์ฐ์ผ๋ก ํด์ ๋งฅ์ผ๋ก ์์ ๋ด์ฉ๋ค์ ๋ฐ๋ผ๊ฐ๋๋ผ ์ ๋จน์๋ค.
์ค๋ ํ ๊ฒ
1. MySQL ์ค์น
2. (์ด๋์๋ ์๋ํ ์ ์๊ฒ) ํ๊ฒฝ๋ณ์ ์ค์
3. Workbench ๋ค์ด๋ก๋
4. ๊ธฐํ ์ฌ์ฉํ ์ฝ๋๋ค ๋ค์ด๋ฐ๊ธฐ
๋๋ ๊ตฌ๊ธ๋ง์ ํ๋ฉด์ ์ ์์ ๋ค์ ์ํํ๋๋ฐ,
ํ๊ฒฝ๋ณ์ ์ค์ ์์ฃผ ์ด๋ ต๊ฒ ํด์ ๋ง ๊ตฌ๊ธ๋งํ๋ฉด์ ์ !!!๋ ์ ์๋ผ!!ํ๋๋ฐ
https://colinch4.github.io/2021-01-14/mysql_in_mac/์์ ์์ฃผ ์น์ ํ๊ฒ brew๋ก ์ค์นํ๋ฉด ํ์์๋ค๊ณ ... ์๋ ค์ฃผ์ จ๋ค.
You are my true life saver...
MySQL ๋ฃจํธ ๋น๋ฒ : t*******1
๊ทธ์์ค์ Homebrew๋ ๋์ฒด ๋ด๊ฐ ์ธ์ ์ค์นํด๋์๋์ง ์์ฃผ ๊ธฐํนํ๋ฐ(?)
Homebrew๋ฅผ ํตํ MySQL ์ค์น
- Homebrew ์ค์น (์๋์ด์๋ค๋ฉด!)
- mysql ์ค์น $ brew install mysql
ํน์ ์ด์ ์ ์ค์นํ๋ ๊ถ๊ธํ๋ค๋ฉด brew info mysql ๋ช ๋ น์ด๋ฅผ ์น๋ฉด ๋๋ค.์ด์ ์ HomeBrew๋ก ์ค์นํ์ ์ด ์๋ค๋ฉด ์์ ๊ฐ์ ์ ๋ณด๋ฅผ ํ์ธํ ์์๋ค. mysql์ ๋ฏธ๋ฆฌ ๋์๋์ง์๊ณ ํ์ํ ๋๋ง ์๋ฒ๋ฅผ ๋์์ ๊ฐ๋ฐํ๋ ํธ์ด๋ผ๋ฉด ์๋ ํ์ ํ mysql.server start ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ข๋ค. ์๋์๋ ์ด์ด์ ์ค๋ช ์ด ๋์ค๊ฒ ์ง๋ง HomeBrew์ ๊ฐ์ ์ค์ ํ๋๋ /usr/local/Cellar ํด๋์ ํจํค์ง๋ฅผ ์ค์นํํ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์์์ ๋ง๋ค์ด์ฃผ๊ธฐ ๋๋ฌธ์ ์ด๋์๋ ๋ช ๋ น์ด๋ง ์ ๋ ฅํ๋ฉด ๋๋ค. ์ฆ ์ค์นํ ๊ฒฝ๋ก๋ฅผ ๋ ์ผ์ผ์ด ๋ค ์ ๋ ฅํ์ง ์์๋ ๋๋ ์ฅ์ ์ด ์๋ค. - MySQL ์์ : $ mysql.server start
- root ๋น๋ฐ๋ฒํธ ์ค์ : $ mysql_secure_installation
- Would you like to setup VALIDATE PASSWORD plugin? : ๋น๋ฐ๋ฒํธ ๊ฐ์ด๋. ๋ณต์กํ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ๋๋ก ์ ํํ๊ณ , ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณด์์ฑ ๋๊ฒ ์ค์ ํ๋๋ก ๊ฐ์ด๋๋ผ์ธ์ ์ฃผ๋ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ ค๋ฉด yes, ๊ทธ๋ฅ ์ฐ๋ ๋น๋ฐ๋ฒํธ ์ ํ๋ฐ์ง ์๊ณ ์ฐ๊ณ ์ถ๋ค๋ฉด no. (๊ทผ๋ฐ ๋ณธ์ธ์ด ์๋ ๋น๋ฐ๋ฒํธ ๋ณต์กํ๊ฒ ๋ง๋๋ ์ฌ๋์ด๋ผ๋ฉด ๊ตณ์ด yes์ํด๋ ๋๋๋ฏ…)
- Remove anonymous users? : ์ต๋ช ์ฌ์ฉ์ ์ญ์ ํ ์ง/๊ณ์ ์ฌ์ฉํ ์ง ์ฌ๋ถ. no ํ๋ฉด $ mysql -uroot๊ฐ ์๋๋ผ $ mysql๋ง์ผ๋ก๋ ์ ์ ๊ฐ๋ฅ. yesํ๋ฉด -u ์ต์ ํ์.
- Disallow root login remotely? : localhost์ธ์ ๋ค๋ฅธ ip์์ root ์์ด๋๋ก ์๊ฒฉ์ ์ ๊ฐ๋ฅํ๊ฒ ํ ์ง. yesํ๋ฉด ์๊ฒฉ ์ ์ ๋ถ๊ฐ.
- Remove test database and access to it? : mysql์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ๋ test ๋๋น ์ญ์ ์ฌ๋ถ.
- Reload privilege tables now? : ํ๋๋ผ๋ ๊ถํ ๋ณ๊ฒฝ์ ํ๋ค๋ฉด yes ํด์ ํ๋ ๊ฒ ์ ์ ๊ฑด๊ฐ์ ์ข์ ๊ฒ์ ๋๋ค.
- charset ์ค์ : $ mysql -uroot -p๋ก ๋ก๊ทธ์ธํ๊ณ , > status;๋ก charset ํ์ธ.
- ๊ธฐ๋ณธ์ ์ผ๋ก charset 4๊ฐ๊ฐ ๋ชจ๋ utf8์ด์ด์ ๊ทธ๋๋ก ๋๋ฉด ๋จ!
- ํน์๋ latin๋ฑ ๋ค๋ฅธ ๊ฐ์ด ์๋ค๋ฉด utf8๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ.
- ๋ฐ๋ชฌ ์คํํ๊ณ ์ถ๋ค๋ฉด $ brew services start mysql (์ฐธ๊ณ )
- ๋ก๊ทธ์ธ์ ๋ฐ๋ชฌ ์๋ ์คํ (To have launchd start mysql at login): $ ln -sfv/usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
- ๊ณ ๋ง๊ฒ๋ brew๋ก ์ค์นํ๋ค๋ฉด ํ๊ฒฝ๋ณ์ ์ค์ ์ ํ์์๋ค!
-----์ดํ ์์ ๋ด์ฉ -----
์ผ๋จ ๋ญ์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง
์ํค๋๊ฑฐ ์ ๋๋๊น ๋์ด๊ฐ๋ค.....
SQL ์ค๋ช
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ด๋? (๋ฃ๊ณ ์์ด๋ ๋จ)
์ด์ฐฝ๊ธฐ ๋ฉ๋ชจ์ฅ : ํ์ผ ์์คํ
์ ๋ฆฌํด์ผ๊ฒ ์ด, ์ ๋ฆฌํ๊ฒ ๊ณ์ธตํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (์ฌ๋์ด ๊ฐ์ฅ ์น์ํ ๊ตฌ์กฐ, ex. ์กฑ๋ณด)
์กฐํ๋ ๊ณ์ธตํ db๊ฐ ์งฑ์ธ๋ฐ, ์์ ์ด ์ ค ํ๋ฌ
๊ทธ๋์ ๊ณ ๋ฏผํ๊ฒ ๋งํ DB. (๋ฐฉํฅ์ฑ์ ๊ฐ์ง๊ณ ์๋ ๊ฒ, ex. ๊ณตํญ ๊ฒ์ดํธ ์๊ฐํ๋ฉด ๋จ. 1๋ฒ์ ๋ด์ 2๋ฒ์ ์ํ์ด ๋ฑ๋ฑ)
it์์๋ ๋ผ์ฐํฐ๊ฐ ๊ทธ๋ฌํ๋ค. ๋ผ์ฐํฐ ์์ ํ๋์ฉ ํฌํฐ๊ฐ ์๋๋ฐ, ๊ทธ๊ฑธ๋ก ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ฉด, 192.168.101.x / 102.x... ๋ฑ๋ฑ ๋ฐฉํฅ์ฑ์ ๊ฐ์ง๊ณ ์๋ ๋ผ์ฐํฐ๊ฐ ๋งํ ๊ตฌ์กฐ.
์์ ํด์ ์ฌ๋ฆด ์ ์๋ ๊ฒ ๊ณ ๋ฏผํ๋ค๊ฐ, ๊ด๊ณํ DB๊ฐ ๋์๋ค. RDB
๋ฐ์ดํฐ๊ฐ ์์ ์ด ์์ฃผ ์ผ์ด๋๋ฉด, ๋ฐ์ดํฐ๋ฅผ ํ ๊ตฐ๋ฐ ๋์ง๋ง๊ณ ๋๋ ๋ด์๋ผ.
๋๋ ๋ด๊ณ ๋์ ์ด์ด์ ๋ถ์ฌ๋ผ. ==> RDB
๋ฐ์ดํฐ๋ฅผ ๋๋ ๋ด์ผ๋ฉด, ๊ธฐ์กด์ ์กฐํ๋ณด๋ค ํ๋ค์ด์ง๋ค. ๋๋ ๋ด์ผ๋ฉด ์ฐพ๊ธฐ ํ๋ค์์.. ๊ทธ๋์ ์๊ธด๊ฒ Join
์กฐ์ธ์ด ํ๋ค์ด์? ์๋ ํ ์ฅ์ ๋ฃ์ด๋ ์ ์๋ ๊ฒ์ ์์ฃผ ์์ ์ด ์ผ์ด๋๋ฉด ๋๋ ๋ด๋๊ฒ ํจ์จ์ ์ด๋ผ๋ ๊ฒ์ ์์์,
๊ทธ๋์ ๋์ค์ ํ์ํ ๊ฒ์ ๋์ค์ ํ ๋ฒ์ ๋ชจ์ผ๋ ค๊ณ ์กฐ์ธ์ด ๋ฑ์ฅ.
์กฐ์ธ์ด ์ ค ์ด๋ ค์ ๊ทธ ๋ง์์ ๋ํด ์ดํดํ๋ฉด ์คํธ๋ ์ค ๋ ๋ฐ์
join์ ์ด๋ ค์ํ์ง ๋ง์ธ์ค >< ์ ์๋ ค๋๋ฆด๊ฒ์!!!
๊ด๊ณํdb ํน์ง ์๋ฌดํผ ํ๋์ ๋ด์ ์ ์๋ ๊ฒ์ ๋๋ ๋ด์๋ค.
์ธ์ด๊ฐ ํด๋์ค๋ผ๋๊ฒ ๋์ค๋๊น,
๊ฐ์ฒด์งํฅ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ง๋ค์ด์ก๋ค.
ํด๋์ค๊ฐ ์์ ๊ด๊ณ๋ก ์ดํด๋์์. ๊ทธ๊ฑฐ๋ง ์ดํด๋๋ฉด ์ด๋ ต์ง ์์์.
๋ชฝ๊ณ db, hadoop๋ค์ด ๊ฐ์ฒด ์งํฅ ์ธ์ด๋ก ๋์ด์์.
์ฐ๋ฆฌ์ ๋ชฉ์ ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS)์ ๋ํ ์ดํด
ํ์ํ ๊ฒ
1. ๋น์ฆ๋์ค ๊ตฌ์กฐ ์ดํด
2. sql ์ดํด
ํ ์ํธ์ ๋ด์๋๋ฉด
1) ํ ๋ฒ์ ๋ด์๋๋ฉด ๊ณต๊ฐ์ ๋ญ๋น๊ฐ ์๊ธด๋ค.
2) ๋ฐ์ดํฐ๊ฐ ์ค๋ณต๋๋ค.
๋ฐ์ดํฐ๊ฐ ํ ์ด๋ธ์ ๋๋๋ค๋ฉด์ ๊ด๋ฆฌํ๋๊ฒ ์ด๋ ต๋ค.
NULL ๊ณต๊ฐ ๋ญ๋นํ์ง ์๋ ๊ฒ์ ์ข์๋ฐ, ์ค๋ณต๊ฐ ๋ฌธ์ ์ ํ ์ด๋ธ ๋๋๋๋ ๋ฌธ์ ํด๊ฒฐ X
๋ญ๊ฐ ๋๊ตฌ์ ์ฐจ์ธ์ง ์๊ธฐ ์ด๋ ค์
๋ฐ๋ผ์ ๊ณ ๊ฐ ์ ์์ ์ ๋ณด๊ฐ ์๋์ฐจ ์ ๋ณด๋ก ํ๋ ๋์ด๊ฐ๋ ๊ฒ์ด ์ข๊ฒ ์ฃ ?
1:1 ๊ด๊ณ์ธ๊ฐ, 1:๋ค ๊ด๊ณ์ธ๊ฐ, ๋ค:1 ๊ด๊ณ์ด๋? ๋ค:๋ค ๊ด๊ณ์ด๋?
1์ชฝ์ด ๋ค ์ชฝ์ผ๋ก ๋์ด๊ฐ --> ์ฐ๊ฒฐ ๊ณ ๋ฆฌ๋ฅผ ๋ง๋ ๋ค (Relation)
๊ณ ๊ฐ ์ ๋ณด๊ฐ ๋์ด๊ฐ ๋, ๊ฐ๋ณ์ ๋ฐ์ดํฐ๋ ์ ์ธํ๋ค. (์ฐ๋ฝ์ฒ, ์ด๋ฉ์ผ)
์ค๋ณต๋ ํ๋ฅ ์๋ ๋ฐ์ดํฐ๋ ์ ์ธํ๋ค. (์ด๋ฆ)
์ ์ฃผ๋ฏผ๋ฒํธ ์๋ ๊ณ ๊ฐ๋ฒํธ๋ฅผ ๋๊ธฐ๋?
-> ์ฉ๋์ด ์ ๊ธฐ ๋๋ฌธ์. ๊ณ ๊ฐ๋ฒํธ 4๋ฐ์ดํธ, ์ฃผ๋ฏผ๋ฒํธ 13๋ฐ์ดํธ
์ ๋ํฌํ ์ ๋ณด๋ฅผ ์ฐธ์กฐํด์ผ ํ๋ค.
๊ด๊ณํDB(RDB):
๋น๊ณต๊ฐ๊ณผ ์ค๋ณต ์ ๋ณด ๋ฐฉ์ง๋ฅผ ์ํด์ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ๋ถ๋ฅํ๊ณ , ์ฐ๊ฒฐํ ์ ์๋ ์ ๋ณด๋ฅผ ๋๊ฒจ์ค๋ค.
๋ฌผ๋ก SQL ์ฒ์์ด๊ณ ์์ํ์ง๋ง
์๋ฐ๋ณด๋ค ๋ฐฑ๋ง๋ฐฐ ์ฒ๋ง๋ฐฐ ์ค์ฒ์ต๋ฐฐ ๋ ์ฌ๋ฐ๋ค,,
-- Select01.sql --
-- ํ์ค ์ฃผ์ --
/*
์ฌ๋ฌ ์ค ์ฃผ์
*/
-- select ์ปฌ๋ผ, , ,, ์ปฌ๋ผ from ๋ฐ์ดํฐ๋ฒ ์ด์ค.ํ
์ด๋ธ;--
select * from empdb.dept;
select * from employees.employees;
use empdb;
select * from dept; -- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ช
์์ด ์ธ ์ ์์
select * from emp;
select * from salgrade;
-- select * from employees; -- ์๋ ์ ๋๋ก ์๋์ด. ์๋ํ๋ฉด, use๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ empdb ๋ด์์ ๋ชจ๋ ๊ฒ์ ํด๊ฒฐํ๋ค๋ ์๋ฆฌ.
use employees;
select * from employees;
use empdb;
-- -- ์ง์๋ค์ ์ด๋ฆ, ์ฌ๋ฒ, ๊ธ์ฌ๋?(์ง๋ฌธ์ ๋ช
์ฌ๊ฐ ๋ช ๊ฐ? --> ์ฌ๊ธฐ์ ์ปฌ๋ผํ ๋ช
์ฌ๋ 3๊ฐ. ์ง์์ ํ
์ด๋ธํ ๋ช
์ฌ. ) --
select ename, empno, sal
from emp;
-- ๋ถ์๋ค์ ๋ถ์๋ช
, ์์น๋? (๋ช
์ฌ ์ฐพ๊ณ ์ปฌ๋ผํ ๋ช
์ฌ ์ฐพ๋๋ค.
select dname, loc
from dept;
-- ์ง์๋ค์ ์ด๋ฆ, ์ฌ๋ฒ, ์
๋ฌด, ๊ธ์ฌ, ์
์ฌ์ผ์๋? (์ปฌ๋ผ ๋ณ์นญ as "OOO" / ๋ค๋ฅธ ์ธ์ด๋ ์์ด์ธ ๋๋ ์ด๋ ๊ฒ ์ฐ๋๊ฒ ์ข์ )
select ename as "์ฌ์ ์ด๋ฆ" ,
empno "์ฌ๋ฒ",
job as ์
๋ฌด,
sal '๊ธ์ฌ',
hiredate "์
์ฌ ์ผ์" -- ๋์ด์ฐ๊ธฐ๋ ๊ตฌ๋ถ์์ด๊ธฐ ๋๋ฌธ์ ๋์ด์ฐ๊ธฐ ๋ณ์นญ์ ๋ฐ์ดํ๋ก ๋ฌถ์ด์ฃผ์ด์ผ ํจ.
from emp;
-- ์ง์๋ค์ job์?
select distinct job -- dostinct๋ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ์ง์์ ๋ณด์ฌ์ค๋ค.
from emp;
select ename, empno, job
from emp
order by ename asc; -- asc ์ค๋ฆ์ฐจ์, desc ๋ด๋ฆผ์ฐจ์
select ename, empno, job
from emp
order by ename desc; -- asc ์ค๋ฆ์ฐจ์, desc ๋ด๋ฆผ์ฐจ์
select ename, empno, job
from emp
order by ename; -- asc ์ค๋ฆ์ฐจ์, desc ๋ด๋ฆผ์ฐจ์
-- ์ง์๋ค์ ๋ถ์๋ฒํธ, ์
๋ฌด, ์ด๋ฆ, ์ฌ๋ฒ ์ถ๋ ฅ. ๋จ, ๋ถ์๋ฒํธ๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก, ์
๋ฌด๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ์์ค.
select deptno, job, ename, empno
from emp
order by deptno desc, job asc;
'PlayData > MySQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Day 18 | MySQL] DAO, VO๋ฑ (์ดํด ing) (2) | 2021.12.02 |
---|---|
[Day 16 | MySQL] Table, Variable, ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง, (0) | 2021.12.01 |
[Day 15 | MySQL] SubQuery, DML, Table and ๊ณผ์ (0) | 2021.11.29 |
[Day14 | MySQL] Join(ANSI Join, inner join, outer join, cross join etc.) (0) | 2021.11.26 |
[Day13 | MySQL] SQL ๊ธฐ๋ณธ RDB, where, groupby, having (0) | 2021.11.25 |