๐ก ๋ฐ์ดํฐ ์กฐ์์ธ์ด, ํ ์ด๋ธ์ ๊ฐ์ ์ฝ์ ํ๊ฑฐ๋ ์์ ํ๊ฑฐ๋ ์ญ์ ํ๋(๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋๋ฐ ์ฌ์ฉํ๋) SQL์ ํ ๋ถ๋ถ์ด๋ค.
์๋ก์ด ํ์ ์ถ๊ฐํ๋ ๊ตฌ๋ฌธ์ด๋ค.
ํ ์ด๋ธ์ ํ์ ์๊ฐ ์ฆ๊ฐํ๋ค.
INSERT
INTO tbl_menu
VALUES
(
NULL, '๋ฐ๋๋ํด์ฅ๊ตญ'
, 8500, 4
, 'Y'
);
์คํ๊ฒฐ๊ณผ
NULL ํ์ฉ ๊ฐ๋ฅํ(NULLABLE) ์ปฌ๋ผ์ด๋ AUTO_INCREMENT๊ฐ ์๋ ์ปฌ๋ผ์ ์ ์ธํ๊ณ INSERTํ๊ณ ์ถ์ ๋ฐ์ดํฐ ์ปฌ๋ผ์ ์ง์ ํด์ INSERT ๊ฐ๋ฅํ๋ค.(default ์์ฑ์ด ์๋ค๋ฉด default๊ฐ์ด ๋ค์ด๊ฐ)
์คํ๊ฒฐ๊ณผINSERT INTO tbl_menu ( menu_name, menu_price , category_code, orderable_status ) VALUES ( '์ด์ฝ๋ฆฟ์ฃฝ', 6500 , 7, 'Y' );
์ปฌ๋ผ์ ๋ช ์ํ๋ฉด INSERT ์ ๋ฐ์ดํฐ์ ์์๋ฅผ ๋ฐ๊พธ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
INSERT
INTO tbl_menu
(orderable_status, menu_price, menu_name, category_code)
VALUES
('Y', 5500, 'ํ์ธ์ ํํ', 4);
์คํ๊ฒฐ๊ณผ
SELECT * FROM tbl_menu;
์คํ๊ฒฐ๊ณผ
INSERT
INTO tbl_menu
VALUES
(null, '์ฐธ์น๋ง์์ด์คํฌ๋ฆผ', 1700, 12, 'Y'),
(null, '๋ฉธ์น๋ง์์ด์คํฌ๋ฆผ', 1500, 11, 'Y'),
(null, '์์์ง๋ง์ปคํผ', 2500, 8, 'Y');
์คํ๊ฒฐ๊ณผ
SELECT
menu_code
, category_code
FROM tbl_menu
WHERE menu_name = 'ํ์ธ์ ํํ';
์คํ๊ฒฐ๊ณผ
UPDATE tbl_menu
SET category_code = 7
, menu_name = '๋ธ๊ธฐ๋ง๋ถ์ด๋นต'
WHERE menu_code = 24;
์คํ๊ฒฐ๊ณผ
UPDATE tbl_menu
SET category_code = 6
WHERE menu_code = (SELECT menu_code
FROM tbl_menu
WHERE menu_name = 'ํ์ธ์ ํํ');
์คํ๊ฒฐ๊ณผ
ํ ์ด๋ธ์ ํ์ ์ญ์ ํ๋ ๊ตฌ๋ฌธ์ด๋ค.
ํ ์ด๋ธ์ ํ์ ๊ฐฏ์๊ฐ ์ค์ด๋ ๋ค.
LIMIT์ ํ์ฉํ ํ ์ญ์ (offset ์ง์ ์ ์๋จ)
DELETE FROM tbl_menu
ORDER BY menu_price
LIMIT 2;
์คํ๊ฒฐ๊ณผ
WHERE์ ์ ํ์ฉํ ๋จ์ผ ํ ์ญ์
DELETE
FROM tbl_menu
WHERE menu_code = 24;
์คํ๊ฒฐ๊ณผ
ํด๋น ํ ์ด๋ธ ์ ์ฒด ํ ์ญ์
DELETE FROM tbl_menu;
-- (๊ฒฝ๊ณ ๋ฌธ๊ตฌ๋ฅผ ์ ๋์ฐ๊ณ ์ถ๋ค๋ฉด)
DELETE FROM tbl_menu WHERE 1 = 1;
์คํ๊ฒฐ๊ณผ
-- INSERT INTO tbl_menu VALUES (17, '์ฐธ๊ธฐ๋ฆ์์ฃผ', 5000, 10, 'Y'); -- ์๋ฌ ๋ฐ์
REPLACE INTO tbl_menu VALUES (17, '์ฐธ๊ธฐ๋ฆ์์ฃผ', 5000, 10, 'Y');
์คํ๊ฒฐ๊ณผ
REPLACE tbl_menu VALUES (17, '์ฐธ๊ธฐ๋ฆ์์ฃผ', 6500, 10, 'Y');
์คํ๊ฒฐ๊ณผ
REPLACE tbl_menu
SET menu_code = 2
, menu_name = '์ฐ๋ญ์ฅฌ์ค'
, menu_price = 2000
, category_code = 9
, orderable_status = 'N';
์คํ๊ฒฐ๊ณผ
๐ก TRANSACTION์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์์ ํ ๋ฒ์ ์ํ๋๋ ์์ ์ ๋จ์์ด๋ค.
์์, ์งํ, ์ข ๋ฃ ๋จ๊ณ๋ฅผ ๊ฐ์ง๋ฉฐ ๋ง์ฝ ์ค๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋กค๋ฐฑ(์์ ์ด์ ๋จ๊ณ๋ก ๋๋๋ฆฌ๋ ์์ )์ ์ํํ๊ณ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ ๋๋ก ๋ฐ์ํ๊ธฐ ์ํด์๋ ์ปค๋ฐ(์ดํ ๋กค๋ฐฑ์ด ๋์ง ์์)์ ์งํํ๋ค.
MySQL์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ์ปค๋ฐ ์ค์ ์ด ๋์ด ์์ด(๋กค๋ฐฑ์ด ์๋จ). ๋กค๋ฐฑ์ ํ๊ธฐ ์ํด์๋ ์๋ ์ปค๋ฐ ์ค์ ์ ํด์ ํด ์ฃผ์ด์ผ ํ๋ค.
MySQL์ ๊ธฐ๋ณธ์ ์ผ๋ก commit์ด ์๋์ผ๋ก ๋๋ฏ๋ก ์๋์ผ๋ก ์กฐ์ ํ๊ณ ์ถ๋ค๋ฉด autocommit ์ค์ ์ ๋ฐ๊ฟ ์ฃผ์ด์ผ ํ๋ค.
autocommit ํ์ฑํ
SET autocommit = 1;
-- ๋๋
SET autocommit = ON;
์คํ๊ฒฐ๊ณผ
autocommit ๋นํ์ฑํ
SET autocommit = 0;
-- ๋๋
SET autocommit = OFF;
์คํ๊ฒฐ๊ณผ
START TRANSACTION ๊ตฌ๋ฌธ์ ์์ฑํ๊ณ DML ์์ ์ํ ํ COMMIT ๋๋ ROLLBACK์ ํ๋ฉด ๋๋ค.
COMMIT ์ดํ์๋ ROLLBACK์ ํด๋ ROLLBACK์ด ์ ์ฉ๋์ง ์๋๋ค.
START TRANSACTION;
SELECT * FROM tbl_menu;
INSERT INTO tbl_menu VALUES (null, '๋ฐ๋๋ํด์ฅ๊ตญ', 8500, 4, 'Y');
UPDATE tbl_menu SET menu_name = '์์ ๋ ๋ฉ๋ด' WHERE menu_code = 5;
DELETE FROM tbl_menu WHERE menu_code = 7;
-- COMMIT;
ROLLBACK;
์คํ๊ฒฐ๊ณผ
