๋ชฉ๋ก๐ฅ BE ๋ฐฑ์๋/Database (7)
Bibi's DevLog ๐ค๐
์์ ์ ๋ฆฌ - ์คํ ์ด๋ ํ๋ก์์ stored procedure ๋ชจ๋ฅด๋ฉด ์ด์ํ์ง๋ง ๊ตณ์ด ๊ณต๋ถํ ํ์๋ ์๋..?.. ํ์ง๋ง ์ค์ํ..!!.. sql ๋ช ๋ น์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ธ์ (declarative) (what) ๋ช ๋ น์ด๋ค. DB์์ '์ ์ฐจ์ ๋ช ๋ น(imperative) (how)'์ ์ํํ๊ธฐ ์ํด์๋ ์คํ ์ด๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํด์ผ ํ๋ค. ์คํ ์ด๋ ํ๋ก๊ทธ๋จ DB์ ์ ์ฅ๋ ํ๋ก๊ทธ๋จ ํ ๋ง๋๋ก DB์ ํ๋ก๊ทธ๋จ์ ์ ์ฅํด ์ฌ์ฉํ๋ ๊ฒ ์คํ ์ด๋ ํ๋ก์์ ๋ DB์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ MySQL ์ข ๋ฃ ํ ๋ค์ ์คํํด๋ ๋จ์ ์๋ค. ์คํ ์ด๋ ํ๋ก๊ทธ๋จ์ ์ข ๋ฅ ์คํ ์ด๋ ํจ์ ์คํ ์ด๋ ํ๋ก์์ ธ ํธ๋ฆฌ๊ฑฐ ์ด๋ฒคํธ ํธ๋ค๋ฌ ์คํ ์ด๋ ํ๋ก๊ทธ๋จ์ ์ฅ์ ์์ฉํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ ํฅ์ ๋คํธ์ํฌ ํธ๋ํฝ ๊ฐ์ ์ฌ๋ฌ ๋ฒ ์ฟผ๋ฆฌ ๋ ๋ ค์ผ ํ๋ ๊ฑธ ํ ๋ฒ์ผ..
[MySQL] function does not exist ์ค๋ฅ ๋ฐ์ ์ ํด๊ฒฐ๋ฒ.. ์ถ์ฒ๐โ๏ธ https://sharehan.tistory.com/entry/MySql%EC%82%AC%EC%9A%A9-%EC%8B%9C-function-does-not-exist-%EC%98%A4%EB%A5%98%EB%B0%9C%EC%83%9D-%EC%8B%9C java sql SqlsyntaxErrorException FUNCTION ... ์ ์์ธ : ์ฟผ๋ฆฌ๋ฌธ์ ์ฌ๋ฐ๋ฅด์ง ๋ชปํ ๋์ด์ฐ๊ธฐ๊ฐ ์๋์ง ํ์ธํ๋ค. String sql = "select booking.id, room_id, user_id, check_in, check_out, number_of_people, total_price" + " from `booking` l..
Key ์ํผํค super key : ํด๋น ๊ฐ์ฒด๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ ์ ์๋ attribute์ ''์งํฉ''. [์ฃผ๋ฏผ๋ฒํธ ์์๋ฆฌ, ์ฃผ๋ฏผ๋ฒํธ ๋ท์๋ฆฌ, ์ด๋ฆ] ํ๋ณดํค candidate key : ์ํผํค์ ๋ถ๋ถ์งํฉ. ์ํผํค์์ ๊ตฐ๋๋๊ธฐ๋ฅผ ์ ๊ฑฐํ ๊ฒ. (์ํ์ ์ ์) ''๋ชจ๋ ๋ค๋ฅธ attribute๋ค์ ํจ์์ ์ผ๋ก ๊ฒฐ์ ํ๋ attribute'' ์ํผํค์ ๊ตฌ์ฑ attribute ์ค ํ๋๋ผ๋ ์ ๊ฑฐํ๋ฉด ์ํผํค๊ฐ ์๋ ๊ฒ. ํ๋ณดํค ์ค์ ํ๋๊ฐ PK๊ฐ ๋ ์ ์๋ค. [์ฃผ๋ฏผ๋ฒํธ ์์๋ฆฌ, ์ฃผ๋ฏผ๋ฒํธ ๋ท์๋ฆฌ, ์ด๋ฆ]์์ [์ฃผ๋ฏผ๋ฒํธ ์์๋ฆฌ, ์ฃผ๋ฏผ๋ฒํธ ๋ท์๋ฆฌ]๊ฐ ํ๋ณดํค์ ํด๋นํ๋ค. ๊ธฐ๋ณธํค primary key : ์ฌ๋ฌ ํ๋ณดํค ์ค ๋ํ์ ์ธ ํค ํ๋๋ฅผ ์ ํํด ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ก ๋ง๋ ..
[DB] 1:1, 1:N, N:M ๊ด๊ณ ์ด ๊ธ์ ๋ณด๊ณ ์์ฝ ์ ๋ฆฌํจ. ์๋ณธ์ด ํจ์ฌ ๋ซ์ต๋๋ค. ๋ด๊ฐ 1:N๊ด๊ณ๋ฅผ ์ ์ดํดํ์ง ๋ชปํ๊ณ ์๋ ๊ฒ ๊ฐ์์ ์ข ์ฐพ์๋ณด์๋คใ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ '๊ด๊ณ' ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ํฐํฐ๋ผ๋ฆฌ ๊ด๊ณ๋ฅผ ๋งบ์ ์ ์๊ธฐ ๋๋ฌธ์ ๊ด๊ณํ์ด๋ผ๋ ๋ง์ด ๋ถ์ ๊ฒ์ด๋ค. ์ํฐํฐ Entity : DB์ ํํํ๋ ค๊ณ ํ๋ ์ ํ/๋ฌดํ์ ๊ฐ์ฒด๋ก์ ์๋ก ๊ตฌ๋ณ๋๋ ๊ฒ. ๊ด๊ณ Relationship : ๋ ์ํฐํฐ๊ฐ ์๋ก ๊ด๋ จ์ด ์์ ๋. 1:1, 1:N, N:M ๊ด๊ณ๋ฅผ ๋งบ์ ์ ์๋ค. 1:1 ๊ด๊ณ ์ํฐํฐ A๊ฐ ์๋ ์ํฐํฐ B์ ๋จ ํ๋์ ๊ด๊ณ๋ง ๊ฐ๋ ๊ฒ. (์ํฐํฐB๋ ์ํฐํฐA์ ๋จ ํ๋์ ๊ด๊ณ๋ง ๊ฐ๋๋ค) ex) ์ฐ๋ฆฌ๋๋ผ์์์ ๊ฒฐํผ ์ ๋(์ผ๋ถ์ผ์ฒ์ ) 1:N ๊ด๊ณ ์ํฐํฐ A๊ฐ ์ฌ๋ฌ ๊ฐ์ ์๋ ์..
์ด ๊ธ์ ์ธํ๋ฐ ์ํ์ฝ๋ฉ-DATABASE 1&2๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค. MySQL CRUD CRUD = ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฃผ์ 4๊ฐ์ง ๊ธฐ๋ฅ. → Create ๋ฐ์ดํฐ ์์ฑ, Read ๋ฐ์ดํฐ ์กฐํ, Update ๋ฐ์ดํฐ ์์ , Delete ๋ฐ์ดํฐ ์ญ์ ์ด ์ค์์๋ DB๋ผ๋ฉด ๋ฐ๋์ ๊ฐ์ง๊ณ ์๋๊ฐ์ฅ ์ค์ํ ๊ธฐ๋ฅ์? Create์ Read. ์ด๋ค ๋ถ์ผ(ํ๊ณ, ์ญ์ฌ ๋ฑ)์์๋ ๋ฐ์ดํฐ ์์ ๊ณผ ์ญ์ ๊ธฐ๋ฅ์ ์ ํ ์ฌ์ฉํ์ง ์๊ธฐ๋ ํ๋ค. โป DESC ํ ์ด๋ธ์ด๋ฆ; : ํด๋น ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ช ๋ น์ด. Create : SQL์ INSERT ๊ตฌ๋ฌธ ํ์ ํ์ '์ฝ์ 'ํ๋ค๋ ์ ์์ INSERT๋ฅผ ์ฌ์ฉํ๋ค. auto_increment ์ธ ๊ฐ๋ง ์ ์ธํ๊ณ ํญ๋ชฉ๋ค์ ์ ์ด๋ฃ์ผ๋ฉด ๋๋ค. → INSERT INTO ํ ์ด๋ธ์ด๋ฆ (..
์ด ๊ธ์ ์ธํ๋ฐ ์ํ์ฝ๋ฉ-DATABASE 1&2๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค. ํ ์ด๋ธ ์์ฑ : CREATE TABLE ํ ์ด๋ธ ์ด๋ฆ(... ๊ฐ column ์ด๋ฆ๊ณผ ๋ช ๋ น์ด๋ค ...); ํ ์ด๋ธ ์ญ์ : DROP TABLE ํ ์ด๋ธ ์ด๋ฆ; ํ ์ด๋ธ ์กฐํ : SHOW TABLES; TABLES ์ด๋ค! โป ํ์ฌ ๋ก๊ทธ์ธ๋ ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ : SET PASSWORD = PASSWORD('๋น๋ฐ๋ฒํธ'); ์๋ฃํ Datatype SQL์ ํ ์ด๋ธ์ ์์ฑํ ๋๋ถํฐ ๊ฐ column์ ๋ค์ด๊ฐ datatype์ ์ ํด์ผ ํ๋ค. ์๋ฃํ์ MySQL Datatype์ผ๋ก ๊ตฌ๊ธ๋งํด์ ์ํ๋ ์๋ฃํ ๋ช ๋ น์ด๋ฅผ ๋ฃ๋๋ค. INT(์ต๋์ถ๋ ฅ์๋ฆฟ์) ์์์ ์๋ ์์, ์์, 0.(=INTEGER) string : ๋ฌธ์์ด , characte..
์ด ๊ธ์ ์ธํ๋ฐ ์ํ์ฝ๋ฉ-DATABASE 1&2๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค. MySQL ์ ๊ตฌ์กฐ MySQL์ ๊ตฌ์ฑ์์๋ ์ธ ๊ฐ์ง๊ฐ ์๋ค. : ํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค(์คํค๋ง), ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ. MySQL๊ณผ ๊ฐ์ ๊ด๊ณํDB๋ _๋ฐ์ดํฐ_๋ฅผ 'ํ table'๋ก ์ ์ฅํ๋ค. ํ๊ฐ ์ฌ๋ฌ ๊ฐ๊ฐ ๋๋ฉด ํ๋ฅผ ์ ๋ฆฌํ ํ์๊ฐ ์๊ธด๋ค. = ํ์ผ์ ํด๋๋ก ๋ฌถ๋ ๊ฒ์ฒ๋ผ. ์ด๋ ๊ฒ _์๋ก ์ฐ๊ด๋ ๋ฐ์ดํฐ(ํ)๋ฅผ ๊ทธ๋ฃนํํ ๊ฒ_์ '๋ฐ์ดํฐ๋ฒ ์ด์ค database'๋ผ๊ณ ํ๋ค. ('๋ฐ์ดํฐ๋ฒ ์ด์ค'๋ผ๋ ๊ฐ๋ ๊ณผ ๋ฌ๋ฆฌ ๊ด๊ณํDB์์ ํ๋ฅผ ๋ฌถ๋ ๋จ์์. ์ด๋ฆ์ด ๊ฐ์ ๋ฟ) _MySQL_์์๋ ์ด๋ฐ ํผ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด '๋ฐ์ดํฐ๋ฒ ์ด์ค' ๋์ '์คํค๋ง schema' ๋ผ๊ณ ๋ ํ๋ค. ๋ง์์ง ์คํค๋ง..