MySQL 07 - ๋ด์ฅํจ์์ ํธ๋์ญ์
(Transaction)
select sum (id) from Student;
select addr, sum (id) from Student group by addr;
select addr, avg (id) from Student group by addr;
-- mod (๋๋จธ์ง ๊ฐ ๊ตฌํ๊ธฐ)
select id, mod(id, 2 ) from Test;
-- count (record ์)
-- stdev (ํ์คํธ์ฐจ), var_samp (๋ถ์ฐ)
-- CAST(ํ ๋ณํ)
select CAST(' 2018-12-25 11:22:22.123' AS DATETIME);
-- CAST๋ AS ์ฐ๊ณ CONVERT๋ ์ฝค๋ง๋ฅผ ์
-- Signed, Unsigned (ํ๋์ ํ์
์ด๋ฆ, ํ)
select CAST(1 .567 AS Signed Integer ), CONVERT (1 .567 , Signed Integer );
-- now๋ ๋ฌด์กฐ๊ฑด ํ์ฌ ์๊ฐ
-- date๋ ๋ ์ง๋ง, datetime์ ๋ ์ง + ์๊ฐ
select now(), str_to_date(' 2018-12-03' , ' %Y-%m-%d' );
-- ๋ฏธ๊ตญ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ฐ์์ผ ํ์ ๋ฐฉ์ ๋ค๋ฆ => ์์ ๋ง์ถฐ์ค์ผ ํจ
select str_to_date(' 12/03/2018' , ' %d/%m/%Y' )
-- concat (str ๋ถ์ด๊ธฐ)
-- ๋ด๋ถ์ ์ผ๋ก ๋ชจ๋ ์์คํค์ฝ๋ ์ด๋ฏ๋ก + ์ฐ์ฐ์ ์๋จนํ (ํ์ด์ฌ์ฒ๋ผ ๋ถ๊ฐ)
select concat(' aaa' , ' bbb' , ' ccc' , ' ddd' );
-- concat_ws (delimiter ์ง์ )
select concat_ws(' , ' , ' aaa' , ' bbb' , ' ccc' );
-- addr ๋ก grouping ํ์ ๋ min/max ์จ์ค์ผ ํจ
select addr, min (name) from Student group by addr;
-- ๋ถํน์ 1๋ช
์ค => ๋ชจ๋ ์ฌ๋ ๋ค ์ฃผ๋๋ก ํ ๋ group_concat ์ฌ์ฉ
select addr, group_concat(name) from Student group by addr;
-- IF(์, ์ฐธ์ผ๋, ๊ฑฐ์ง์ผ๋)
select addr, if (addr = ' ๊ฐ์' , ' *' , ' ' ), group_concat(name) from Student group by addr;
-- IfNull(col1, 'aa')
-- col1์ด null์ผ ๋ 'aa' ์ฃผ์ธ์
select name, ifnull(leader, ' ๋ถ์ฌ์ค' ) from Club;
-- autocommit ์ฒดํฌ
-- autocommit ์๋์ด ์์ผ๋ฉด ํญ์ ํ๋ ํ ๋๋ง๋ค commit; ํด์ผํจ
show variables like ' %commit%' ;
-- auto commit ๋ (commit ์ด๋ rollback ํ ๋๊น์ง)
-- ํ์ฌ ์ธ์
๋ง ๋ฐ์ (๋ฉ๋ชจ๋ฆฌ ์ฌ๋ผ๊ฐ ์์)
-- session ๋จ์๋ก ํธ๋์ญ์
์ ์ด๋จ!
-- START TRANSACTION ~ commit์ด ํ๋์ save point์
START TRANSACTION ;
update Student set name = ' 111' where id = 1 ;
select name from Student where id = 1 ;
-- ๋ค๋ฅธ ์ธ์
๋ ๋ชจ๋ ์ ์ฉ
commit ;
-- commit ์ด๋ฏธ ํ๊ณ ๋๋ฉด ๋๋๋ฆด ์ ์์ (์์ง๋ฌ์ง ๋ฌผ)
-- backup ํ ๊ฒ ์ฐพ์์ผ ํจ
rollback ;
Python - dynamic ํ ๋ณํ (runtime ์์์ ํ ๋ณํ ์ ํด์ง)
Java, C ๋ฑ ์ ์ ํ์ดํ ์ธ์ด๋ ์ด๊ธฐ์ ํ์
์ ์ธ
Ctrl + t: ์ ์ฟผ๋ฆฌ ํญ ์ด๊ธฐ
SET AUTOCOMMIT = FALSE;
ํ๋ฉด ํ์ฌ ์ธ์
์ autocommit ์์ฑ์ด False๊ฐ ๋จ
SELECT @@AUTOCOMMIT;
ํด์ 1์ด๋ฉด autocommit ์ํ
mysql ์๋ฒ ์ ์ฒด์ค์ ์ ๋ณ๊ฒฝํ๊ณ ์ถ์ผ๋ฉด
/etc/my.cnf.d/server.cnf ํ์ผ์์ autocommit=0 ์ ์ถ๊ฐํ์๊ณ ์ฌ์์
Oracle์ 10g๋ถํฐ ํ
์ด๋ธ ์ญ์ (drop)์ ๋ฐ๋ก ์ญ์ ํ์ง ์๊ณ ํด์งํต(Bin)์ผ๋ก ๋จผ์ ๋ณด๋
(ํด์งํต ๋น์ฐ๊ธฐ๋ PURGE RECYCLEBIN;
)
MySQL์ ์ญ์ ํ๋ฉด ํด์งํต์ผ๋ก ๋ณด๋ด๋ ๊ฒ์ด ์๋๋ผ ๋ฐ๋ก drop ๋จ
(drop ํ show tables;
๋ก ํ์ธ ๊ฐ๋ฅ, ๋ณ๋๋ก purge ์ต์
ํ์ ์์)
MySQL์์๋ drop ํ ๋ณต๊ตฌํ ๋ฐฉ๋ฒ ์์ (Oracle์ ๊ฐ๋ฅ)
=> ํ๋ฐฑ์
์ ํ๊ฑฐ๋ ํธ๋์ญ์
๋ก๊ทธ (bin log)๊ฐ ์์ด์ผ ๋ณต๊ตฌ ๊ฐ๋ฅ
Reference