Programing_Java

[SQL] MySQL - User & Table(Attribute)๊นŒ์ง€ ๋งŒ๋“ค์–ด๋ณด๊ธฐ ๋ณธ๋ฌธ

๐Ÿ’พ SQL_

[SQL] MySQL - User & Table(Attribute)๊นŒ์ง€ ๋งŒ๋“ค์–ด๋ณด๊ธฐ

Joyfullyever 2025. 2. 11. 19:38

MacBook Pro M4 Chip ์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋จ.

 

#1 root & user

: User ์ƒ์„ฑ → DB ์ƒ์„ฑ → ๊ถŒํ•œ ๋ถ€์—ฌ ⇒ ์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ด๋ฃจ์–ด์ง

: MySQL์˜ ๊ด€๋ฆฌ์ž ์•„์ด๋”” → root / ๊ด€๋ฆฌ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ → MySQL ์„ค์น˜์‹œ ๊ฐœ์ธ์ด ์ฒ˜์Œ ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ

: root์˜ ๊ด€๋ฆฌ์ž ๊ณ„์ •์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์œ ์ €๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ถŒํ•œ์„ ๋ถ€์—ฌ

 

1-1) root ๊ณ„์ •์œผ๋กœ ์ ‘์†ํ•˜๊ณ  MySQL ์‚ฌ์šฉํ•˜๊ธฐ

๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์‹œ ํ‘œ๊ธฐ๊ฐ€ ๋˜์ง€ ์•Š์œผ๋‹ˆ ์‹ ์ค‘ํ•˜๊ฒŒ ์ž…๋ ฅ!

์œ„ ์‚ฌ์ง„์˜ ๋…ธ๋ž€ ๋ฐ•์Šค์•ˆ์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค

-uroot : root(๊ด€๋ฆฌ์ž ๊ณ„์ •)์„ ์•„์ด๋””๋กœ ์ž…๋ ฅ
-p : ๋‹ค์Œ ์ค„์— Enter PassWord: ๐Ÿ”‘ ์ด ์ถœ๋ ฅ๋˜๋Š”๋ฐ, ๊ฐ€์žฅ ์ฒ˜์Œ MySQL์„ ์„ค์น˜ํ•˜๋ฉด์„œ ๊ฐœ์ธ์ด ์ง€์ •ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ

 

์„ฑ๊ณต!

์„ฑ๊ณต์ ์œผ๋กœ ์ž…๋ ฅ์ด ๋ฌ๋‹ค๋ฉด ๊ฐ€์žฅ ํ•˜๋‹จ์˜ " mysql > " ๋ฌธ๊ตฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค.

 

1-2) User ์ƒ์„ฑํ•˜๊ธฐ

 

CREATE USER ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์œ ์ €๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž

'usertest'@'localhost

→ usertest : ์œ ์ €์ด๋ฆ„ ์„ค์ •

→ localhost : usertest๋ผ๋Š” user๊ฐ€ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ๋งŒ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •

→ IDENTIFIED BY 'password' : usertest์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ password๋กœ ์„ค์ •

 

โ˜…โญ๏ธŽ ์ฃผ์˜ โญ๏ธŽโ˜…

Terminal์—์„œ MySQL์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋„ค๋ชจ ๋ฐ•์Šค ์•ˆ์˜ [ ' ] ๊ธฐํ˜ธ์— ํŠน๋ณ„ํžˆ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. Enterํ‚ค ์ขŒ์ธก์˜ [ " ] ๋˜๋Š” [ ' ] ๋ฅผ ์ž…๋ ฅํ•  ์‹œ, ์ž˜๋ชป๋œ ์ž…๋ ฅ์ด๋ผ๊ณ  ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ ๊ฒฝ์„ ์จ์ฃผ์–ด์•ผ ํ•จ!

์ •์ƒ์ ์œผ๋กœ ์ƒ์„ฑ์ด ๋˜์—ˆ๋‹ค๋ฉด ํ•ด๋‹น ๋ฌธ๊ตฌ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค!

1-3) ๊ถŒํ•œ ๋ถ€์—ฌ

: user๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜๋ฉด root ๊ณ„์ •์œผ๋กœ ๊ถŒํ•œ์„ ๋ฐ›์•„์•ผ database์™€ table์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ!

GRANT ALL PRIVILEGES on test.* to 'usertest'@'localhost' with grant options;

// GRANT ALL PRIVILEGES = ๋ชจ๋“  ๊ถŒํ•œ์„ ๋ถ€์—ฌ
// WITH GRANT OPTIONS = usertest๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ถŒํ•œ์„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€์—ฌ ๊ฐ€๋Šฅ

๊ถŒํ•œ ๋ถ€์—ฌ ์„ฑ๊ณต!

1-4) ๊ถŒํ•œ ์ ์šฉ

: ๊ถŒํ•œ์„ ๋ถ€์—ฌํ–ˆ๋‹ค๊ณ  ๋์ด ์•„๋‹ˆ๋ผ, ๋ถ€์—ฌํ•œ ๊ถŒํ•œ์„ ์ ์šฉํ•ด์ค˜์•ผ ํ•จ!

FLUSH PRIVILEGES; // ๋ถ€์—ฌํ•œ ๊ถŒํ•œ์„ ์ ์šฉ

๊ถŒํ•œ ์ ์šฉ ์„ฑ๊ณต!

#2 table , database & insert

2-1) DATABASE ์ƒ์„ฑ

: ๊ถŒํ•œ์„ ๋ถ€์—ฌ ๋ฐ›์€ ํ›„, SHOW ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ show tables; ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด DATABASE๊ฐ€ ์„ ํƒ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ํ•œ๋‹ค!

์•„๋ž˜ ์ˆœ์„œ ํ™•์ธ!

: ๋จผ์ € DATABASE๋ฅผ ์ง€์ •ํ•ด์ค€ ๋‹ค์Œ์— TABLE์„ ํ™•์ธํ•ด์•ผํ•จ!

→ ์ˆœ์„œ :

1. show databases;

2. use database๋ช…;

3. show tables;

์ˆœ์„œ๋ฅผ ๊ผญ ํ™•์ธํ•ด์•ผํ•จ!

mysql database : ํ…Œ์ด๋ธ”์ด ๊ด€๋ฆฌ์ž์—๋งŒ ์žˆ๋Š” ํ…Œ์ด๋ธ”, user๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ…Œ์ด๋ธ”

 

โ˜…โ˜† ์ƒ์„ฑ๋œ DATABASE๊ฐ€ ์—†๋‹ค๋ฉด?

DB ์ƒ์„ฑํ•˜๊ธฐ

CREATE DATABASE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…;

 

: DATABASE๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด

show databases; ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด database ๋ชฉ๋ก์„ ํ™•์ธํ•˜๊ณ 

์ƒ์„ฑํ•œ database๋ฅผ use ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…; ์„ ํ†ตํ•ด

์‚ฌ์šฉํ•  database๋กœ ์„ ํƒํ•ด์ฃผ๊ธฐ!

 

: DATABASE ์„ ํƒ์„ ํ•œ ํ›„, show tables;๋ฅผ ํ•˜๋ฉด Empty set์ด๋ผ๊ณ  ์ถœ๋ ฅ๋˜๋ฉฐ ์ด์ œ table์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ!

 

2-2) TABLE ์ƒ์„ฑ

: ๊ธฐ๋ณธ ์ƒ์„ฑ ๋ฐฉ๋ฒ•

test001 ์ด๋ฆ„์˜ TABLE ์ƒ์„ฑํ•ด๋ณด๊ธฐ

 

CREATE TABLE test001( // test001 TABLE ์ƒ์„ฑ

Id int auto_increment not null,
→ Id ์ปฌ๋Ÿผ, ์†์„ฑ : int, AI, ๊ณต๋ฐฑ์ผ ์ˆ˜ ์—†์Œ

Name varchar(10) not null,
→ Name ์ปฌ๋Ÿผ, ์†์„ฑ : varchar(10), ๊ณต๋ฐฑ์ผ ์ˆ˜ ์—†์Œ

Age int default 20,
→ Age ์ปฌ๋Ÿผ, ์†์„ฑ : int, ๊ธฐ๋ณธ๊ฐ’ 20

Address varchar(50),
→ Address ์ปฌ๋Ÿผ, ์†์„ฑ : varchar(50)

Primary key(Id)
→ Id ์ปฌ๋Ÿผ์„ PK ๊ฐ’์œผ๋กœ ์ง€์ •

);

์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปฌ๋Ÿผ์„ ์ƒ์„ฑํ•  ๋•Œ๋Š”
๊ฐ€์žฅ ์•ž์— ์ปฌ๋Ÿผ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  ์†์„ฑ์œผ๋กœ ๋„ฃ์„ ํƒ€์ž…๋“ค์„ ์ž…๋ ฅ
ํ•œ๊ฐœ์˜ ์ปฌ๋Ÿผ์— ์†์„ฑ์„ ๋‹ค ์ง‘์–ด๋„ฃ์—ˆ๋‹ค๋ฉด ์‰ผํ‘œ(,)๋ฅผ ์ž…๋ ฅ ํ›„ Enter๋ฅผ ํ†ตํ•ด
๋‹ค์Œ ์ปฌ๋Ÿผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ

PK ๊ฐ’์€ TABLE ์ƒ์„ฑ์— ํ•„์ˆ˜!

 

: TABLE ์ƒ์„ฑ ํ›„, desc test001; ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด

์†์„ฑ๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ!

desc ํ…Œ์ด๋ธ”๋ช…;

 

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์„ฑ๊ณต!

: ์ด์ œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ํ…Œ์ด๋ธ”์— ๊ฐ’๋“ค์„ ์ง‘์–ด๋„ฃ์–ด๋ณด์ž.

์˜ˆ์ œ)

Id Name Age Address
1 ์ŠคํŽ€์ง€๋ฐฅ 19 ์„œ์šธ
2 ์ง•์ง•์ด 21 ๋ถ€์‚ฐ
3 ๋šฑ์ด 13 ๋Œ€๊ตฌ

 

INSERT INTO test001(Id,Name,Age,Address)
    -> values(1,'์ŠคํŽ€์ง€๋ฐฅ',19,'์„œ์šธ'),
    -> (2,'์ง•์ง•์ด',21,'๋ถ€์‚ฐ'),
    -> (3,'๋šฑ์ด',13,'๋Œ€๊ตฌ')
    -> ;
    
    
INSERT INTO test001 values => ๋ชจ๋“  ์†์„ฑ์„ ์ž…๋ ฅํ•ด์•ผํ•˜๋ฉด values๋ฅผ ํ†ตํ•ด ์†์„ฑ์„ ๋‹ค ์•ˆ์ณ๋„ ๊ฐ€๋Šฅ!
ํ•˜์ง€๋งŒ ํ•˜๋‚˜์˜ ์†์„ฑ์ด๋ผ๋„ ๋น ์ง€๊ฒŒ ๋œ๋‹ค๋ฉด, ์œ„์™€ ๊ฐ™์ด ์ œ์™ธํ•˜๋Š” ์†์„ฑ์„ ๋นผ๊ณ  ๋ชจ๋‘ ์ž…๋ ฅํ•ด์•ผํ•จ!

์†์„ฑ์˜ ์ˆœ์„œ์™€ ๋‚ด๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๊ฐ’๋“ค์˜ ์ˆœ์„œ๋Š” ๋งž์•„์•ผํ•จ!
>> ์†์„ฑ์˜ ํƒ€์ž…์ด ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์„œ๊ฐ€ ์•ˆ๋งž์„์‹œ ํƒ€์ž…์ด ๋‹ฌ๋ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ!

 

๊ฐ’ ์ง‘์–ด๋„ฃ๊ธฐ

2-3 ) ํ…Œ์ด๋ธ” ํ™•์ธ

: ๊ฐ’์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋„ฃ์—ˆ๋‹ค๋ฉด, Terminal์—์„œ ํ‘œ ํ˜•์‹์œผ๋กœ ํ™•์ธ์ด ๊ฐ€๋Šฅ!

: select * from ํ…Œ์ด๋ธ”๋ช…; ์„ ์ž…๋ ฅํ•˜๋ฉด Terminal์—์„œ ํ‘œ๋กœ ์ถœ๋ ฅํ•ด์คŒ

select * from ํ…Œ์ด๋ธ”๋ช…;

 

: ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œ์— ๊ฐ’์ด ์ œ๋Œ€๋กœ ๋“ค์–ด๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ!

ํ‘œ ์ถœ๋ ฅ