SQL - MySQL, Full Text Index
ยท
๐Ÿงฉ SQL
โœ… Full Text Index๋ž€?๋ฌธ์žฅ(ํ…์ŠคํŠธ) ์•ˆ์—์„œ ๋‹จ์–ด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์ธ๋ฑ์ŠคLIKE๋Š” ๋ฌธ์ž์—ด ๋น„๊ตFULLTEXT๋Š” “๊ฒ€์ƒ‰ ์—”์ง„ ๋ฐฉ์‹” โœ… UsageNatural Language Mode์ฃผ์–ด์ง„ text์™€ ์—ฐ๊ด€์„ฑ์ด ๋†’์€ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๋Š” ๋ฐฉ์‹์˜๋ฏธ์žˆ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด the, a ๊ฐ™์€ ๋ถˆ์šฉ์–ด๋Š” ๊ฒ€์ƒ‰์—์„œ ์ œ์™ธ๋จCREATE FULLTEXT INDEX idx_overview ON movies (overview);SELECT title, overviewFROM moviesWHERE MATCH(overview) AGAINST ('the food'); Boolean Mode• ํŠน์ˆ˜ ๋ฌธ์ž(Operator):โ–ซ ‎`+` : ํ•ด๋‹น ๋‹จ์–ด๊ฐ€ ๋ฐ˜๋“œ์‹œ ํฌํ•จ๋˜์–ด์•ผ ํ•จ (AND)โ–ซ ‎`-` : ํ•ด๋‹น ๋‹จ์–ด๊ฐ€ ๋ฐ˜๋“œ์‹œ ํฌํ•จ๋˜๋ฉด ์•ˆ ๋จ..
SQL - MySQL, Event & Trigger
ยท
๐Ÿงฉ SQL
โœ… Event & TriggerEventMySQL์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ŠฅDatabase๊ฐ€ ํ•ด์•ผ ํ•  ์ž‘์—…๋“ค์„ ์Šค์ผ€์ค„๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค.ex) ํŠน์ • ์กฐ๊ฑด์— ํ•ด๋‹น๋˜๋Š” row๋“ค์„ ๋งค์ฃผ ์ˆ˜์š”์ผ ์˜คํ›„ 3์‹œ์— ์‚ญ์ œํ•œ๋‹ค. PostgreSQL์—์„œ๋„ ์ง€์›ํ•˜์ง€๋งŒ ํ™•์žฅํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.SQLite์—์„œ๋Š” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. TriggerDatabase์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์— ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.ex) ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ row๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์— ๊ทธ ์‚ญ์ œ์— ๋Œ€ํ•œ log๋ฅผ log ํ…Œ์ด๋ธ”์— ๋งŒ๋“ ๋‹ค. MySQL, PostgreSQL, SQLite ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฐ์ดํ„ฐ ์—†์ด ๊ตฌ์กฐ๋งŒ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๋ฒ•CREATE TABLE archived_movies LIKE movies; โœ… Event• ๊ด€๋ฆฌโ–ซ ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋ ค๋ฉด: ‎`SHOW..
SQL - MySQL, UNION
ยท
๐Ÿงฉ SQL
โœ… Union์ด๋ž€?์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๋Š” ๋ฐฉ๋ฒ•Union๊ณผ Join์˜ ์ฐจ์ด์ Join์œผ๋กœ ํ…Œ์ด๋ธ”์„ ํ•ฉ์น˜๋ฉด ๋” ๋งŽ์€ column์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค. (์ˆ˜ํ‰์ ์œผ๋กœ ํ…Œ์ด๋ธ” ํ™•์žฅ)Union์€ ํ…Œ์ด๋ธ”์„ ์ˆ˜์ง์ ์œผ๋กœ ํ™•์žฅํ•œ๋‹ค. ์กฐ๊ฑด: ํ•ฉ์น˜๋Š” ํ…Œ์ด๋ธ”์€ ์„œ๋กœ ๊ฐ™์€ ์ˆ˜์˜ column์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.(๊ทธ๋ฆฌ๊ณ  ์ค‘๋ณต๋œ ๊ฐ’์€ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ง„๋‹ค.) ex)SELECT 'hello'UNIONSELECT 'hi'UNIONSELECT 'hello'; UNION ALLํ•˜์ง€๋งŒ UNION์ด ์•„๋‹Œ UNION ALL์„ ์‚ฌ์šฉํ•˜๋ฉด ์ค‘๋ณต์ด ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค.๊ทธ๋ฆฌ๊ณ  UNION ALL์€ ์ค‘๋ณต ์ฒดํฌ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— UNION๋ณด๋‹ค ์„ฑ๋Šฅ์ด ์ข‹๋‹ค.SELECT 'hello'UNION ALLSELECT 'hi'UNION ALLSELECT 'hello';..
SQL - MySQL, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๊ทœํ™”, Foreign Key, JOIN
ยท
๐Ÿงฉ SQL
โœ… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๊ทœํ™”๋ž€? (Normalization)๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ์ค„์ด๊ณ , ๊ตฌ์กฐ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ์„ค๊ณ„ ๋ฐฉ๋ฒ• โ‘  ์ œ1์ •๊ทœํ˜• (1NF)์ปฌ๋Ÿผ์€ ์›์ž๊ฐ’(Atomic)๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค โ‘ก ์ œ2์ •๊ทœํ˜• (2NF)๋ถ€๋ถ„ ํ•จ์ˆ˜ ์ข…์† ์ œ๊ฑฐ โ‘ข ์ œ3์ •๊ทœํ˜• (3NF)์ดํ–‰์  ์ข…์† ์ œ๊ฑฐ โœ… Foreign Key๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ Primary Key๋ฅผ ์ฐธ์กฐํ•˜๋Š” Column CREATE TABLE dogs ( dog_id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, weight DECIMAL(5, 2), date_of_birth DATE, owner_id BIGINT UNSIGNED, breed_id B..
SQL - MySQL, ๋ฌธ๋ฒ•
ยท
๐Ÿงฉ SQL
โœ… ALTERALTER TABLE ๋ช…๋ น์–ด๋Š” ๊ฝค ๋น„์šฉ์ด ํด ์ˆ˜ ์žˆ๋‹ค.(row์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑ๋œ column์˜ ๋ชจ๋“  row์— ๊ธฐ๋ณธ๊ฐ’์„ ์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ)SQLite์—์„œ๋„ ALTER๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Table ์ด๋ฆ„ ๋ณ€๊ฒฝ, Column ์ด๋ฆ„ ๋ณ€๊ฒฝ, Column ์ถ”๊ฐ€๋งŒ ๊ฐ€๋Šฅํ•จ(์ด๋ฏธ ์„ค์ •๋œ column์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜, ์ œ์•ฝ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ ํ˜น์€ ์‚ญ์ œํ•˜๋Š” ๊ฑด ๋ถˆ๊ฐ€๋Šฅ) ALTER TABLE users DROP COLUMN profile_picture;profile_picture column ์‚ญ์ œ ALTER TABLE usersCHANGE COLUMN bio about_me TINYTEXT;bio -> about_me ์ด๋ฆ„ ๋ณ€๊ฒฝ, data type๋ณ€๊ฒฝ CHANGEALTER TABLE us..
SQL - MySQL Data Types
ยท
๐Ÿงฉ SQL
โœ… Data TypesCHAR(10): ๊ธธ์ด๊ฐ€ 10์ด ๋  ๋•Œ๊นŒ์ง€ ๊ณต๋ฐฑ์„ ๋„ฃ์–ด ์ฑ„์šด๋‹ค. (CHAR๋Š” 255๊ฐ€ ์ตœ๋Œ€ ๊ธธ์ด)VARCHAR(10): ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 10 ENUM('male', 'female'): ์ง€์ •ํ•œ ๊ฐ’๋“ค ์ค‘ ํ•˜๋‚˜๋งŒ ๊ฐ’์œผ๋กœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ SET('1', '2', '3'): ์ง€์ •ํ•œ ๊ฐ’์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๊ฐ’์œผ๋กœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ TINYTEXT: 255 ์ดํ•˜TEXT: 65,535 ์ดํ•˜MEDIUMTEXT: 16MB ์ดํ•˜LONGTEXT: 4GB ์ดํ•˜ TINYBLOB: 255Byte ์ดํ•˜BLOB: 64KB ์ดํ•˜MEDIUMBLOB: 16MB ์ดํ•˜LONGBLOB: 4GB ์ดํ•˜ TINYINT: SIGNED -> -128 to 127 | UNSIGNED -> 0 to 255SMALLINT: SIGNED -> -32,7..
SQL - MySQL Setup
ยท
๐Ÿงฉ SQL
โœ… MySQL๋ž€?MySQL• ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (RDBMS)• ํ˜„์žฌ **Oracle**์ด ๊ด€๋ฆฌ MariaDB• MySQL์—์„œ ๊ฐˆ๋ผ์ ธ ๋‚˜์˜จ DB (fork)• MySQL ์› ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  ์˜คํ”ˆ์†Œ์Šค DB โœ… MySQL ์„ค์น˜homebrew๋กœ ์„ค์น˜1. mysql ์„ค์น˜brew install mysql 2. ๋งฅ๋ถ ๋ถ€ํŒ… ์‹œ mysql์„ ์ž๋™์‹คํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ฐ‘ ๋ช…๋ น์–ด ์ž…๋ ฅbrew services start mysql 3. ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋งŒ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ฐ‘ ๋ช…๋ น์–ด ์ž…๋ ฅmysql.server start 4. ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ • ๋“ฑ ๊ฐ„๋‹จํ•œ ์„ค์ • ๋ช…๋ น์–ดmysql_secure_installation 5. ๋กœ๊ทธ์ธ ๋ช…๋ น์–ดmysql -u root -p 6. ์‚ฌ์šฉ์ž ์ ‘์† ์ข…๋ฃŒexit 7. mysql ์„œ๋ฒ„ ์ข…๋ฃŒmysql.server..