MySQL ๊ธฐ์ด ๊ฐ์ด๋
MySQL ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ธฐ์ด ๋ด์ฉ์ ์์๋ด
๋๋ค.
โข
๊ณ์ ์์ฑ
โข
๊ถํ ๋ถ์ฌ
โข
์คํค๋ง ์์ฑ
โข
ํ
์ด๋ธ ์์ฑ
โข
๋ฐ์ดํฐ ์ถ๊ฐ
โข
๋ฐ์ดํฐ ์กฐํ
โข
๋ฐ์ดํฐ ์์
โข
๋ฐ์ดํฐ ์ญ์
โข
ํ
์ด๋ธ ์์
โข
ํ
์ด๋ธ ์ญ์
๊ณ์ ์์ฑ
MySQL ์ฌ์ฉ์ ๊ณ์ ์ ์์ฑํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ์ ์๋๋ก ํฉ๋๋ค.
CREATE USER '์ฌ์ฉ์๋ช
'@'ํธ์คํธ' IDENTIFIED BY '๋น๋ฐ๋ฒํธ';
Python
๋ณต์ฌ
ํธ์คํธ
โข
'localhost' : ํ์ฌ PC ์์๋ง ์ ์ ๊ฐ๋ฅ
โข
'%' : ๋ชจ๋ ํธ์คํธ์์ ์ ์ ๊ฐ๋ฅ
โข
CREATE USER 'aloha'@'%' IDENTIFIED BY '123456';
Python
๋ณต์ฌ
๊ถํ ๋ถ์ฌ
์์ฑํ ๊ณ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ํ
์ด๋ธ์ ๋ํ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
GRANT ๊ถํ ON ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
.ํ
์ด๋ธ๋ช
TO '์ฌ์ฉ์๋ช
'@'ํธ์คํธ';
Python
๋ณต์ฌ
โข
aloha ๋ผ๋ ๊ณ์ ์ ๋ชจ๋ ๊ถํ ๋ถ์ฌํ๊ธฐ
GRANT ALL PRIVILEGES ON *.* TO 'aloha'@'%' WITH GRANT OPTION;
Python
๋ณต์ฌ
โข
ALL PRIVILEGES : ๋ชจ๋ ๊ถํ (DBA, ... ๋ฑ)
โข
. : ๋ชจ๋ ์คํค๋ง์ ๋ชจ๋ ํ
์ด๋ธ์ ์๋ฏธ
โข
WITH GRANT OPTION : ๊ถํ์ ๋ถ์ฌํ๋ ๊ถํ๋ ์ง์
์คํค๋ง ์์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ์คํค๋ง๋ฅผ ์์ฑํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํฉ๋๋ค.
์คํค๋ง๋?
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ๊ฐ๋
์
๋๋ค.
โข
์คํค๋ง๋ ํ
์ด๋ธ, ์ด, ์ธ๋ฑ์ค, ์ ์ฝ ์กฐ๊ฑด ๋ฑ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๋ค์ ์งํฉ์ ํฌํจํฉ๋๋ค.
โข
MySQL์์๋ ์คํค๋ง๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค(database)๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํฉ๋๋ค.
CREATE DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;
Python
๋ณต์ฌ
CREATE DATABASE aloha;
Python
๋ณต์ฌ
ํ ์ด๋ธ ์์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ตฌ์กฐ์
๋๋ค.
ํ ์ด๋ธ์ด๋?
โข
ํ(row)๊ณผ ์ด(column)์ผ๋ก ์ด๋ฃจ์ด์ง ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ตฌ์กฐ
โข
ํ
์ด๋ธ์ ํ์ ์์๋ฅผ ๊ฐ์ง์ง ์์
โข
๊ฐ ํ์ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ์ด์ ๊ฐ์ (์๋ณ์)
โข
์ ์ฝ ์กฐ๊ฑด์ ํตํด ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์ ์ํ ์ ์์
CREATE TABLE ํ
์ด๋ธ๋ช
(
์ปฌ๋ผ๋ช
1 ๋ฐ์ดํฐํ์
[NULL/NOT NULL] [DEFAULT ๊ธฐ๋ณธ๊ฐ] [์ ์ฝ์กฐ๊ฑด],
์ปฌ๋ผ๋ช
2 ๋ฐ์ดํฐํ์
[NULL/NOT NULL] [DEFAULT ๊ธฐ๋ณธ๊ฐ] [์ ์ฝ์กฐ๊ฑด],
์ปฌ๋ผ๋ช
3 ๋ฐ์ดํฐํ์
[NULL/NOT NULL] [DEFAULT ๊ธฐ๋ณธ๊ฐ] [์ ์ฝ์กฐ๊ฑด],
...
) COMMENT='ํ
์ด๋ธ ์ค๋ช
';
Python
๋ณต์ฌ
โข
๊ฒ์๊ธ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ํ
์ด๋ธ์ ์์ฑํ๋ SQL
CREATE TABLE Posts (
post_id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT,
author VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Python
๋ณต์ฌ
๋ฐ์ดํฐ ์ถ๊ฐ
ํ
์ด๋ธ์ ํ(๋ฐ์ดํฐ)๋ฅผ ์ถ๊ฐํ๋ SQL ๋ฌธ์ฅ์ ์์ฑํฉ๋๋ค.
INSERT INTO ํ
์ด๋ธ๋ช
( ์ปฌ๋ผ1, ์ปฌ๋ผ2, ์ปฌ๋ผ3, ... )
VALUES ( ๊ฐ1, ๊ฐ2, ๊ฐ3, ... );
Python
๋ณต์ฌ
INSERT INTO Posts (title, content, author) VALUES ('๊ฒ์๊ธ ์ ๋ชฉ', '๊ฒ์๊ธ ๋ด์ฉ', '์์ฑ์');
Python
๋ณต์ฌ
๋ฐ์ดํฐ ์กฐํ
ํ
์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํฉ๋๋ค.
SELECT *
FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด
GROUP BY ๊ทธ๋ฃน๊ธฐ์ค์ปฌ๋ผ HAVING ๊ทธ๋ฃน ์กฐ๊ฑด
ORDER BY ์ ๋ ฌ๊ธฐ์ค์ปฌ๋ผ [ASC | DESC] -- ASC :์ค๋ฆ์ฐจ์, DESC ๋ด๋ฆผ์ฐจ์
;
Python
๋ณต์ฌ
SELECT * FROM Posts;
Python
๋ณต์ฌ
๋ฐ์ดํฐ ์์
ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํฉ๋๋ค.
UPDATE ํ
์ด๋ธ๋ช
SET ์ปฌ๋ผ๋ช
1 = '์์ ํ ๊ฐ'
,์ปฌ๋ผ๋ช
2 = '์์ ํ ๊ฐ'
,...
WHERE ์กฐ๊ฑด;
Python
๋ณต์ฌ
UPDATE Posts SET title = '์์ ๋ ์ ๋ชฉ' WHERE post_id = 1;
Python
๋ณต์ฌ
๋ฐ์ดํฐ ์ญ์
ํ
์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํฉ๋๋ค.
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด;
Python
๋ณต์ฌ
DELETE FROM Posts WHERE post_id = 1;
Python
๋ณต์ฌ
ํ ์ด๋ธ ์์
์ด๋ฏธ ์์ฑ๋ ํ
์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ์์ ํฉ๋๋ค.
- ์ด(column)์ ์ถ๊ฐ, ์์ , ์ญ์ ํฉ๋๋ค.
- ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐ, ์ญ์ ํฉ๋๋ค.
ALTER TABLE ํ
์ด๋ธ๋ช
ADD COLUMN ์๋ก์ด์ด ๋ฐ์ดํฐํ์
;
SQL
๋ณต์ฌ
โข
Posts ํ
์ด๋ธ์ ์กฐํ์(views) ์ปฌ๋ผ์ ์ถ๊ฐํฉ๋๋ค.
ALTER TABLE Posts
ADD views INT DEFAULT 0;
SQL
๋ณต์ฌ
ํ ์ด๋ธ ์ญ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ
์ด๋ธ์ ์ญ์ ํฉ๋๋ค.
DROP TABLE ํ
์ด๋ธ๋ช
;
SQL
๋ณต์ฌ
โข
Posts ํ
์ด๋ธ์ ์ญ์ ํฉ๋๋ค.
DROP TABLE Posts;
Python
๋ณต์ฌ