Skip to content

Latest commit

ย 

History

History
97 lines (70 loc) ยท 3.24 KB

File metadata and controls

97 lines (70 loc) ยท 3.24 KB

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;
  • Commit & Rollback
-- 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;

[Note]

  • 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