๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ Database & DBMS/MySQL

[MySQL] MySQL ๋ช…๋ น๋ฌธ๊ณผ SQL ๋ฌธ๋ฒ•

by A Lim Han 2023. 6. 12.

๐Ÿก SQL(Structed Query Language) ๋ž€?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ SQL(Structed Query Language)์ด๋ผ๊ณ  ํ•œ๋‹ค.
๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ทธ ์ข…๋ฅ˜์— ๊ด€๊ณ„์—†์ด SQL(Structed Query Language)์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 


๐Ÿก MySQL ๋ช…๋ น๋ฌธ ์ •๋ฆฌ

-- MySQL ๋ฒ„์ „ ํ™•์ธ
mysql> select version();


-- ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” DB ๋ชฉ๋ก ํ™•์ธ
mysql> show databases;


-- DB ๋ชฉ๋ก์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒ
mysql> use 'DB ๋ช…';


-- ์„ ํƒํ•œ DB์— ์กด์žฌํ•˜๋Š” table ๋ชฉ๋ก ์ถœ๋ ฅ
mysql> show tables;


-- ํŠน์ • ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ ์ถœ๋ ฅ
mysql> desc '์ถœ๋ ฅํ•˜๊ณ ์ž ํ•˜๋Š” ํ…Œ์ด๋ธ”๋ช…';


-- ํ…Œ์ด๋ธ”์—์„œ์˜ ์„ ํƒ์  ๋ฐ์ดํ„ฐ ์กฐํšŒ
mysql> select '์กฐํšŒํ•˜๊ณ ์ž ํ•˜๋Š” ํ•„๋“œ๋ช… 1', '์กฐํšŒํ•˜๊ณ ์ž ํ•˜๋Š” ํ•„๋“œ๋ช… 2' from 'table๋ช…';

 

-- ์ ‘์† ์ข…๋ฃŒ
mysql> exit
mysql> \q


-- DB ์ƒ์„ฑ
mysql> create database '์ƒ์„ฑํ•  DB๋ช…'


-- table ์ƒ์„ฑ
mysql> create table 'ํ…Œ์ด๋ธ”๋ช…' (
    '์—ด1' ๋ฐ์ดํ„ฐ_์œ ํ˜• [์—ด1_์ œ์•ฝ์กฐ๊ฑด],
    '์—ด2' ๋ฐ์ดํ„ฐ_์œ ํ˜• [์—ด2_์ œ์•ฝ์กฐ๊ฑด],
    ...
);


-- table ์—์„œ์˜ ์ฃผ ํ‚ค ๋ณ€๊ฒฝ
mysql> alter table '๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•  ํ…Œ์ด๋ธ”๋ช…' add primary key('์ฃผ ํ‚ค๋กœ ์„ค์ •ํ•  ํ•„๋“œ๋ช…');


-- table ์‚ญ์ œ
mysql> drop table '์‚ญ์ œํ•  ํ…Œ์ด๋ธ”๋ช…';

 

-- ํŠน์ • ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ(Data) ์กฐํšŒ
mysql> select * from 'ํ…Œ์ด๋ธ”๋ช…';


-- ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ๋“ฑ๋ก
mysql> insert into 'ํ…Œ์ด๋ธ”๋ช…'(ํ•„๋“œ๋ช…1, ํ•„๋“œ๋ช…2, ...) values ('๊ฐ’1', '๊ฐ’2', ...);
mysql> insert into
    -> 'ํ…Œ์ด๋ธ”๋ช…'
    -> values('๊ฐ’1', '๊ฐ’2',
    -> ...
    -> );
    
    
-- ํ…Œ์ด๋ธ”์— ๋“ฑ๋ก๋œ ๋ฐ์ดํ„ฐ ์ˆ˜์ •
mysql> update 'ํ…Œ์ด๋ธ”๋ช…' set 'ํ•„๋“œ๋ช…' = '๋ณ€๊ฒฝ ํ›„ ๊ฐ’' where 'ํ•„๋“œ๋ช…' = '๋ณ€๊ฒฝ ์ „ ๊ฐ’'


-- ํ…Œ์ด๋ธ”์— ๋“ฑ๋ก๋œ ๋ฐ์ดํ„ฐ ์‚ญ์ œ
mysql> delete from 'ํ…Œ์ด๋ธ”๋ช…' where 'ํ•„๋“œ๋ช…' = '์กฐ๊ฑด';


-- ์ „์ฒด ๋ฐ์ดํ„ฐ(๋ ˆ์ฝ”๋“œ) ์‚ญ์ œ
mysql> delete from 'ํ…Œ์ด๋ธ”๋ช…';

 

-- ํ…Œ์ด๋ธ”์—์„œ์˜ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ๋ช…๋ น๋ฌธ
mysql> select '์—ด1', '์—ด2', ... from 'ํ…Œ์ด๋ธ”๋ช…' where '์กฐ๊ฑด';


-- ๋‹จ์ผ ์ˆซ์ž ์กฐ๊ฑด์€ ๋ถ€/๋“ฑํ˜ธ๋กœ ํ‘œํ˜„
where age >= 40;


-- ๋ฌธ์ž/๋ฌธ์ž์—ด ์กฐ๊ฑด์€ ์ž‘์€๋”ฐ์˜ดํ‘œ(' ')๋กœ ํ‘œํ˜„
where gender = 'W';
where name = 'ํ™๊ธธ๋™';


-- ๋‹ค์ค‘ ์กฐ๊ฑด์€ 'and'๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ‘œํ˜„
where age >= 10 and age < 40;


-- ๋ถ€๋ถ„ ์กฐ๊ฑด์€ 'like'์™€ '%', '_' ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„
where name like '๊น€%';    # ์ด ๊ฒฝ์šฐ ์„ฑ์ด ๊น€์”จ์ธ ์‚ฌ๋žŒ์˜ ์ •๋ณด๊ฐ€ ์ถœ๋ ฅ๋จ
where name like '_์ง„%';    # ์ด ๊ฒฝ์šฐ ๊ฐ€์šด๋ฐ ์ด๋ฆ„์ด '์ง„'์ธ ์‚ฌ๋žŒ์˜ ์ •๋ณด๊ฐ€ ์ถœ๋ ฅ

 

-- ๋ฐ์ดํ„ฐ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ๋ช…๋ น
mysql> select '์—ด1', '์—ด2', ... from 'ํ…Œ์ด๋ธ”๋ช…' order by '์ •๋ ฌ ๊ธฐ์ค€์ด ๋˜๋Š” ์—ด';


-- ๋ฐ์ดํ„ฐ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ ๋ช…๋ น
mysql> select '์—ด1', '์—ด2', ... from 'ํ…Œ์ด๋ธ”๋ช…' order by '์ •๋ ฌ ๊ธฐ์ค€์ด ๋˜๋Š” ์—ด' desc;