๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

728x90

RDB๐Ÿ—‚๏ธ

(16)
SQL : ์ธ๋ฑ์Šค ์ถœ์ฒ˜ : ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ ์ธ๋ฑ์Šค๋ฅผ ๋ถ™์ด๋ฉด, ๊ท ํ˜• ํŠธ๋ฆฌ ๋…ธ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ๋น ๋ฅธ ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค ์ธ๋ฑ์Šค๋Š” ๊ฐ ์—ด์— ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค. ์ธ๋ฑ์Šค์˜ ์žฅ๋‹จ์  - Select ๋ฌธ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” ์†๋„๊ฐ€ ๋งค์šฐ ๋นจ๋ผ์ง„๋‹ค - ์ธ๋ฑ์Šค๋„ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๋ฏ€๋กœ DB ์•ˆ ์ถ”๊ฐ€ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค. - ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ž‘์—…(INSERT, UPDATE, DELETE)๊ฐ€ ์ž์ฃผ ์ผ์–ด๋‚˜๋ฉด ์˜คํžˆ๋ ค ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ธ๋ฑ์Šค์˜ ์ข…๋ฅ˜ - ์ž๋™ ์ƒ์„ฑ ์ธ๋ฑ์Šค ํด๋Ÿฌ์Šคํ„ฐํ˜• ์ธ๋ฑ์Šค : ์–ด๋–ค ์—ด์„ ๊ธฐ๋ณธ ํ‚ค๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐํ˜• ์ธ๋ฑ์Šค๊ฐ€ ์ƒ์„ฑ(๋ฐ์ดํ„ฐ ์ •๋ ฌ O) ๋ณด์กฐ ์ธ๋ฑ์Šค : ์–ด๋–ค ์—ด์„ ๊ณ ์œ  ํ‚ค๋กœ ์„ค์ •ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ณด์กฐ ์ธ๋ฑ์Šค๊ฐ€ ์ƒ์„ฑ(๋ฐ์ดํ„ฐ ์ •๋ ฌ X) - ์ˆ˜๋™ ์ƒ์„ฑ ์ธ๋ฑ์Šค : ๋ณด์กฐ ์ธ๋ฑ์Šค ์ธ๋ฑ์Šค ์ƒ์„ฑ CREATE [UNIQUE] INDEX ์ธ๋ฑ์Šค_์ด๋ฆ„ O..
SQL : JOIN ์ถœ์ฒ˜ : ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์„œ๋กœ ๋ฌถ์–ด ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด๋‚ผ ๋•Œ ์‚ฌ์šฉ ์—ฐ๊ด€๊ด€๊ณ„ * ์ผ๋Œ€๋‹ค : ํ•œ ๋ช…์˜ ๋ฉค๋ฒ„๊ฐ€ ๊ตฌ๋งค๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ํ•  ์ˆ˜ ์žˆ๋‹ค. -> ๋ฉค๋ฒ„ ํ…Œ์ด๋ธ”์˜ PK๊ฐ€ ๊ตฌ๋งค ํ…Œ์ด๋ธ”์˜ FK๋กœ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. ๋‚ด๋ถ€ ์กฐ์ธ : ๋‘ ํ…Œ์ด๋ธ”์ด ์„œ๋กœ ๊ด€๋ จ์žˆ๋Š” ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ ~ ๊ต์ง‘ํ•ฉ ๋‚ด๋ถ€ ์กฐ์ธ์˜ ํ˜•์‹ SELECT FROM INNER JOIN -- INNER JOIN์€ 'INNER' ์ƒ๋žต๊ฐ€๋Šฅ ON [WHERE ๊ฒ€์ƒ‰ ์กฐ๊ฑด] ex) ํ…Œ์ด๋ธ” ์ด๋ฆ„์— ๋ณ„์นญ์„ ๋ถ™์ธ ๋‚ด๋ถ€ ์กฐ์ธ SELECT buy.mem_id, member.mem_name, buy.prod_name, member.addr FROM buy JOIN member ON buy.mem_id = member.mem_id; -- ํ…Œ์ด๋ธ” ์ด๋ฆ„์— ๋ณ„์นญ์„ ๋ถ™์ด๋ฉด S..
SQL : ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ถœ์ฒ˜ : ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ CREATE : ํ…Œ์ด๋ธ” ์ƒ์„ฑ SQL CREATE TABLE users (id INT, name CHAR(4), age INT); + DESC : ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์กฐํšŒ DESC users; INSERT : ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ์‚ฝ์ž… INSERT INTO ํ…Œ์ด๋ธ” [(์—ด1, ์—ด2, ...)] VALUES (๊ฐ’1, ๊ฐ’2, ...) - ์—ด์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค : VALUES์—์„œ ์ˆœ์„œ์™€ ๊ฐœ์ˆ˜๋ฅผ ๋งž์ถฐ์•ผ ํ•œ๋‹ค. - ์ผ๋ถ€ ์—ด๋งŒ ๋ช…์‹œํ•˜๊ณ  ๊ทธ ์—ด์—๋งŒ ๊ฐ’์„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.(๋‹ค๋งŒ, ๋ช…์‹œํ•˜์ง€ ์•Š์€ ์—ด์—๋Š” Null๊ฐ’ ์‚ฝ์ž…) - ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์„œ ๋ช…์‹œํ•œ ๊ฒฝ์šฐ์—๋Š” ์—ด์˜ ์ˆœ์„œ์™€ ๊ฐ’์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ์ƒ๊ด€์—†๋‹ค AUTO_INCREMENT ์ž๋™์œผ๋กœ ๊ฐ’์ด ์ฆ๊ฐ€ํ•ด์•ผํ•˜๋Š” ์—ด์— ์‚ฌ์šฉํ•œ๋‹ค, ์ฃผ๋กœ id, ๋ฐ˜๋“œ์‹œ PRIMARY K..
SQL : ๋ฐ์ดํ„ฐ ์กฐํšŒ ์ถœ์ฒ˜ : ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ SELECT ~ FROM USE USE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค_์ด๋ฆ„; Select ๋ฌธ์˜ ๊ธฐ๋ณธ ํ˜•์‹ SELECT select_expr [FROM table_references] [WHERE where_condision] [GROUP BY {col_name | expr | position}] [HAVING where_condition] [ORDER BY {col_name | expr | position}] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [] ๋ถ€๋ถ„์€ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ˆœ์„œ๋Š” ์ง€์ผœ์•ผ ํ•œ๋‹ค. SELECT ~ FROM SELECT ์—ด_์ด๋ฆ„ FROM ํ…Œ์ด๋ธ”_์ด๋ฆ„ from ๋’ค ํ…Œ์ด๋ธ”๊ณผ ๊ทธ ์ค‘ ์—ด_์ด๋ฆ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ฟผ๋ฆฌ๋ฌธ, ๋ชจ..
๊ฒŒ์‹œํŒ์˜ ๋Œ“๊ธ€์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ๋Œ“๊ธ€ ์‚ญ์ œ ์—†์ด ๊ฒŒ์‹œ๋ฌผ๋งŒ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, ์˜ˆ์™ธ Referential integrity constraint violation : 2) SQL ๋ถ€๋ชจ(๊ฒŒ์‹œ๋ฌผ) -> ์ž์‹(๋Œ“๊ธ€) ๊ด€๊ณ„๋กœ DB๊ฐ€ ์„ค์ •๋˜์–ด์žˆ์„ ๋•Œ, ๋ถ€๋ชจ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ง€์šธ ๋•Œ ๋‚จ๊ฒจ์ง€๋Š” ์ž์‹ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ ์ž์‹ ์—”ํ‹ฐํ‹ฐ๋ฅผ ๊ณ ์•„ ๊ฐ์ฒด๋กœ ๋ณธ๋‹ค. ์ด๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘˜ ๊ฒฝ์šฐ Referential integrity constraint violation SQL ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. DB ๊ด€์ ์—์„œ Cascade ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์˜ˆ์™ธ์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹œ CREATE TABLE ์ฐธ์กฐ ํ…Œ์ด๋ธ” ( ... CONSTRAINT ์ฐธ์กฐํ‚ค FOREIGN KEY(๊ธฐ๋ณธํ‚ค) REFERENCES ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”(ํ‚ค๋ณธํ‚ค) ON DELETE CASCADE ... ) 2. ALTER TABLE AlTER TABLE ์ฐธ์กฐ ํ…Œ์ด๋ธ”์ด๋ฆ„ ADD CONSTRAINT ์ฐธ์กฐํ‚ค FOREIGN KEY(๊ธฐ๋ณธํ‚ค) REFERENCES ๊ธฐ..
SQL ์ œ์•ฝ์กฐ๊ฑด AUTO_INCREMENT : ์ปฌ๋Ÿผ์˜ ๊ณ ์œ ๋ฒˆํ˜ธ๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ ๋ถ€์—ฌํ•˜์—ฌ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. (์ด์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ์ปฌ๋Ÿผ์— value๋ฅผ ์ฃผ์ง€ ์•Š์œผ๋ฉด ๋œ๋‹ค) CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ ( ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž… AUTO_INCREMENT, // id bigint AUTO_INCREMENT, ... ); NOT NULL : NULL ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์—†๋‹ค. UNIQUE : ํ•ด๋‹น ํ•„๋“œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ ธ์•ผํ•œ๋‹ค. PRIMARY KEY(๊ธฐ๋ณธ ํ‚ค) : ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด / ๊ธฐ๋ณธ ํ‚ค ~ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜ ์†๋„๋ฅผ ํ–ฅ์ƒํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ ํ‚ค ํ•„๋“œ๊ฐ€ NOT NULL๊ณผ UNIQUE ์ œ์•ฝ์กฐ๊ฑด์˜ ํŠน์ง•์„ ๋ชจ๋‘ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ex) create table member ( mem_id char(8) not null pri..
SQL ๊ด€๋ จ ๋‹จ์–ด ์ •๋ฆฌ DDL : Data Definition Language, ํ…Œ์ด๋ธ”์ด๋‚˜ ๊ด€๊ณ„์˜ ๊ตฌ์กฐ ์ƒ์„ฑ 1) CREATE - ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ (ํ•„๋“œ? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์„ธ๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ํ‘œ์‹œํ•œ ์ปฌ๋Ÿผ(์—ด)) CREATE DATABASE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„; CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ ( ํ•„๋“œ์ด๋ฆ„1 ํ•„๋“œํƒ€์ž…1, ํ•„๋“œ์ด๋ฆ„2 ํ•„๋“œํƒ€์ž…2, ... ); 2) ALTER - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ์ˆ˜์ • ALTER TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ ADD ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž…; ALTER TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ DROP ํ•„๋“œ์ด๋ฆ„; ALTER TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ MODIFY COLUMN ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž… ๋ณ€๊ฒฝ์‚ฌํ•ญ; ALTER TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ ALTER COLUMN ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž… ๋ณ€๊ฒฝ์‚ฌํ•ญ; 3) DROP - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€..
[ํŽŒ]์ถœ์ฒ˜: haddoddo MySQL ์›Œํฌ๋ฒค์น˜๋ฅผ ์ด์šฉํ•œ ์Šคํ‚ค๋งˆ, ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ถœ์ฒ˜: https://haddoddo.tistory.com/entry/MySQL-MySQL-Workbench-์‚ฌ์šฉ๋ฒ•-์Šคํ‚ค๋งˆ-์ƒ์„ฑ-ํ…Œ์ด๋ธ”-์ƒ์„ฑ-CRUDselect-insert-delete-update [haddoddo:ํ‹ฐ์Šคํ† ๋ฆฌ]

728x90