*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;
๋๋ถ์ ์ข์ ๋ด์ฉ ์ ๋ณด๊ณ ๊ฐ๋๋ค
๊ฐ์ฌํฉ๋๋ค.