*MySql ๋ฌธ๋ฒ์ ๊ธฐ์ค์ผ๋ก ์์ฑํ์ต๋๋ค.
DML(Data Manipulation Language)
- insert
 
- update
 
- delete
 
- select
 
DDL(Data Definition Language)
- create
 
- alter
 
- drop
 
- truncate
 
- rename
 
DCL(Data Control Language)
TCL(Transaction Control Language)
- commit
 
- rollback
 
- savepoint
 
Create
- ํ
์ด๋ธ ์์ฑ
create table student (
์นผ๋ผ๋ช
 ํ์
 ์กฐ๊ฑด(not null ๋ฑ),
์นผ๋ผ๋ช
 ํ์
 ์กฐ๊ฑด(not null ๋ฑ),
์นผ๋ผ๋ช
 ํ์
 ์กฐ๊ฑด(not null ๋ฑ),
PRIMARY KEY ~~ ); 
Insert
- ํ
์ด๋ธ์ ๋ฐ์ดํฐ ์ฝ์
insert into student values(ํ
์ด๋ธ์ ๋ง๋ ๋ฐ์ดํฐ ์์); 
Update
- ๋ฐ์ดํฐ ๋ด์ฉ ์์ 
update ํ
์ด๋ธ set ์นผ๋ผ = '๊ฐ' where ์กฐ๊ฑด; 
Delete
- ๋ฐ์ดํฐ ์ญ์ 
delete from ํ
์ด๋ธ where ์กฐ๊ฑด; 
select
select ๋ฌธ๋ฒ ์์
- select
 
- from
 
- where
 
- group by
 
- having
 
- order by
 
*์ฟผ๋ฆฌ์ ์คํ ์์๋ from โถ where โถ group by โถhaving โถ select โถ order by
Where
- 
์ปฌ๋ผ ์กฐํ์ ์กฐ๊ฑด
select * from student where id = 1;
 
- 
and, or ์กฐ๊ฑด
select * from student where sex='๋จ์' and(or) address='์์ธ';
 
- 
like ์กฐ๊ฑด
% ๋ก ํํ
select * from student where name = '๊น%';
 
Limit
- ์กฐํ ๊ฒฐ๊ณผ ํ์ ์ ์ ํ
select * from student limit 1; 
Group By
- ํน์  ์นผ๋ผ ๊ธฐ์ค์ ๋ฐ์ดํฐ ๊ทธ๋ฃนํ
select age from student group by age; 
Order by
- ํน์  ์นผ๋ผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
 
- ASC : ์ค๋ฆ์ฐจ์ 1 2 3 4 5
 
- DESC : ๋ด๋ฆผ์ฐจ์ 5 4 3 2 1
select * from student order by age desc; 
Distinct
- ์ค๋ณต ํ์ ์ ๊ฑฐ
select distinct name from student;  
Alias
- ์นผ๋ผ์ ๋ณ์นญ์ ์ฃผ๊ณ  ์กฐํ
select age '๋์ด' from student where id = 3; 
์ฐ์ฐ์
- ์ฐ์  ์ฐ์ฐ์ : + - / *
 
- ๋น๊ต ์ฐ์ฐ์ : > < >= <= = != ^= <>
 
- ๋
ผ๋ฆฌ ์ฐ์ฐ์ : and, or, not
 
- ๋น๊ต ์ฐ์ฐ์2 : between and, in, is null, like
 
ํจ์
๋ฌธ์ ์กฐ์ ํจ์
- UPPER(str) : ๋๋ฌธ์ ๋ณํ
 
- LOWER(str) : ์๋ฌธ์ ๋ณํ
 
- INITCAP(str) : ์ฒซ ๊ธ์๋ง ๋๋ฌธ์๋ก ๋ณํ
 
- CONCAT(str, tmp) : ๋ ๋ฌธ์๊ฐ ๊ฒฐํฉ
 
- SUBSTR(str,a,b) : ๋ฌธ์ ์ถ์ถ a = ์์์์น, b = ๊ฐ์
 
- LENGTH(str) : ๋ฌธ์์ด ๊ธธ์ด ๋ฐํ 
 
- L/RPAD(๋์,์ด๊ธธ์ด,์ฑ์ธ๋ฌธ์์ด) : ๋์ ๋ฌธ์์ด์ ์ฑ์ธ๋ฌธ์์ด์ ์ด๊ธธ์ด๋งํผ ์ฑ์์ ๋ฐํ
LPAD('001',7,'0') โถ 0000001 
- LTRIM, RTRIM(๋์, ์ ๊ฑฐํ  ๋ฌธ์์ด) : ๋์ ๋ฌธ์์ด์์ ์ ๊ฑฐํ  ๋ฌธ์์ด์ ์์ค ๋ค ๋ฐํ
select LTRIM('00010' , '00') โถ 010 
- REPLACE(๋์๋ฌธ์์ด,๋ฐ๊พธ๊ณ ์ถ์๋์,๋ฐ๊พธ๊ณ ์ถ์๋ด์ฉ) : ๋์๋ฌธ์์ด์์ ๋ฐ๊พธ๊ณ  ์ถ์ ๋์์ ๋ฐ๊พธ๊ณ  ์ถ์ ๋ด์ฉ์ผ๋ก ์์ ํ ๋ค ๋ฐํ
REPLACE('ABCDEFG','DEF','XXX') โถ ABCXXXG 
๊ณ์ฐ ํจ์
select ๊ณ์ฐํจ์(์นผ๋ผ) from ํ
์ด๋ธ; ๋ก ์ฌ์ฉ
JOIN

INNER JOIN
์ผ๋ฐ์ ์ธ ์กฐ์ธ, A์ B ํ
์ด๋ธ์ ์กฐ์ธ์์ A์ B ํ
์ด๋ธ ๋ชจ๋์ ์๋ ๋ ์ฝ๋๋ง ์กฐํ๋๋ค.
SELECT A.a, A.b, B.c 
FROM A
JOIN B
ON B.a = A.c;
ON ๋์  WHERE๋ฅผ ์ฌ์ฉํ  ์ ์๋ค.
LEFT OUTER JOIN
A์ B ํ
์ด๋ธ์ ์กฐ์ธ ์ํฉ์์ Aํ
์ด๋ธ ๊ธฐ์ค์ผ๋ก Bํ
์ด๋ธ์ Aํ
์ด๋ธ์ ์นผ๋ผ๊ณผ ์ผ์นํ๋ ์กฐ๊ฑด์ด ์์ผ๋ฉด Bํ
์ด๋ธ์ ์นผ๋ผ์ NULL๋ก ์กฐํ๋๋ค.
SELECT A.a, A.b, B.c 
FROM A
LEFT OUTER JOIN B
ON B.a = A.c;
outer๋ฅผ ์๋ตํ  ์ ์๋ค.
RIGHT OUTER JOIN
A์ B ํ
์ด๋ธ์ ์กฐ์ธ ์ํฉ์์ Bํ
์ด๋ธ ๊ธฐ์ค์ผ๋ก Aํ
์ด๋ธ์ Bํ
์ด๋ธ์ ์นผ๋ผ๊ณผ ์ผ์นํ๋ ์กฐ๊ฑด์ด ์์ผ๋ฉด Aํ
์ด๋ธ์ ์นผ๋ผ์ NULL๋ก ์กฐํ๋๋ค.
SELECT A.a, A.b, B.c 
FROM A
RIGHT OUTER JOIN B
ON B.a = A.c;
์ญ์ outer๋ฅผ ์๋ตํ  ์ ์๋ค.
CROSS JOIN(Cartesian JOIN)
์งํฉ์ ๊ณฑ ๊ฐ๋
์ผ๋ก
A= {a, b, c, d} , B = {1, 2, 3} ์ผ ๋
A CROSS JOIN B ๋
(a,1), (a, 2), (a,3), (b,1), (b,2), (b,3), (c, 1), (c,2), (c,3), (d, 1), (d, 2), (d,3)์ ๊ฒฐ๊ณผ๊ฐ ๋๋ค.
๊ฒฐ๊ณผ์ ๊ฐ์๋ n(A) * n(B) ์ด๋ค.
SELECT A.a A.b B.c
FROM A
CROSS JOIN B;
// ์ ์๋ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค.
SELECT A.a, A.b, B.c
FROM A, B;
๋๋ถ์ ์ข์ ๋ด์ฉ ์ ๋ณด๊ณ ๊ฐ๋๋ค
๊ฐ์ฌํฉ๋๋ค.