SQL13 QueryDSL์ transform์ ์ฌ์ฉํด ๋ฆฌ๋ทฐ ํต๊ณ ์ ๋ณด ๋ฐํํ๊ธฐ ์๊ตฌ์ฌํญ ํฅ์ ๋ฆฌ๋ทฐ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ, ํฅ์ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ผ๋ก ํต๊ณ๋ฅผ percentage๋ก ๋ด์ด ๋ฐํํ๋ ์๊ตฌ์ฌํญ์ด ์์๋ค. ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํน์ ํฅ์์ ๋ํด ์ฌ๋๋ค์ด ๋ฆฌ๋ทฐํ ๋ฌด๊ฒ๊ฐ ์ ๋, ์ง์๋ ฅ, ๊ณ์ , ํ์ฐ๋ ฅ ์ ๋, ์ฌ์ฉ์์ ์ฑ๋ณ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ฐํ์ ๋ํ๋ด์ด์ผ ํ๋ค. ์ด๋ฅผ ์ํด ํน์ ํฅ์์ ๋ํ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ๋ฅผ ์กฐํํด ๊ฐ๊ฐ์ ๋ฆฌ๋ทฐ ์์๋ง๋ค ๋น์จ์ ๊ณ์ฐํด ์กฐํํ๊ณ ์ ํ๋ค. ๋น์ฐํ ๋ง์ด์ง๋ง ๊ฐ๊ฐ์ Percentage๋ฅผ ๋ชจ๋ ํฉํ๋ฉด 100์ด ๋์ด์ผ ํ๋ค. ํ๋ก์ ํธ์ ๋ฆฌ๋ทฐ ํ ์ด๋ธ๊ณผ ์ ์ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋จํ๊ฒ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค. (์ผ๋ถ ํ์์๋ ๋ฐ์ดํฐ๋ ์๋ตํ๋ค.) ํด๋ผ์ด์ธํธ์๊ฒ๋ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ์ ๋ฆฌ๋ทฐ๋ฅผ ์์ฑํ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํด ์๋์ ๊ฐ์ด ๋ฆฌ๋ทฐ ์์๋ง๋ค percentage๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐํํด .. 2024. 1. 14. CentOS7์์ MySQL 8 ๋ฒ์ ์ค์นํ๊ธฐ 1. yum์ ์ฌ์ฉํด install ํด์ฃผ๊ธฐ $ yum install https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm $ yum install mysql-server 2. ์ ์ค์น๋์๋์ง ํ์ธ $ mysql --version 3. mysql์ ์์ ๋ฐ ๋ถํ ์ ์๋์ผ๋ก ์คํ๋๋๋ก ์ค์ (์๋๋ค๋ฉด sudo ๊ถํ ์ฌ์ฉ) systemctl start mysqld systemctl enable mysqld 4. ์ด๊ธฐ ๋น๋ฐ๋ฒํธ๋ฅผ grep ์ฌ์ฉํด ์ป์ ํ mysql ์ ์ (grep ์ด ์๋๋ค๋ฉด sudo ๊ถํ ์ฌ์ฉ) $ grep 'temporary password' /var/log/mysqld.log $ mysql -u root -p 5. ๋น๋ฐ๋ฒ.. 2023. 4. 20. ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mysql.sock' (2) m1 ๋งฅ์์ ํด๊ฒฐํ๊ธฐ ๊ฐ๋ฐ ํ๊ฒฝ - m1 Mac ์๋ฌ ๋ถ์ - mysql์ ์ ๋๋ก ์ ๊ฑฐํ์ง ์๊ณ mariadb๋ฅผ homebrew๋ก ์ค์นํ์ - mysql -u root -p ๋ฑ mysql ๋ช ๋ น์ด๋ฅผ ์น๋ฉด `ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mysql.sock' (2)` ๋ฐ์ - brew services start mariadb๋ก mariadb๋ฅผ ์คํ์์ผ๋ ๋์ผํ ์๋ฌ ๋ฐ์ ํด๊ฒฐ ํน์ ๋ชฐ๋ผ ํ ์์๋ ๋ฐฉ๋ฒ์ ์ด๋์ ํ๋ค. # ๋ชจ๋ ์ ๊ฑฐ brew uninstall mysql brew uninstall mariadb brew cleanup # m1 sudo rm -rf /opt/homebrew/var/mysql sudo rm -rf /Lib.. 2022. 8. 21. [SQL ๋ ๋ฒจ์ ] 10์ฅ: ์ธ๋ฑ์ค ์ฌ์ฉ ์ธ๋ฑ์ค์ B-tree 1. B-tree ์ธ๋ฑ์ค ํธ๋ฆฌ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ธ๋ฑ์ค ๊ท ํ์กํ ๋ฒ์ฉ์ฑ์ผ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ธ๋ฑ์ค ํธ๋ฆฌ์ ๋ฆฌํ๋ ธ๋์๋ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฐ์ ๋ B+tree ๋ฒ์ ์ ๋ณดํต ์ฌ์ฉ B+tree ํน์ง - ๋ฃจํธ์ ๋ฆฌํ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ ์ผ์ ํ๊ฒ ์ ์งํ์ฌ ๊ท ํ์ด ์ ์กํ ๊ฒ์ ์ฑ๋ฅ์ด ์์ ์ (๋ฐ์ดํฐ ์์ด ์ฆ๊ฐํด๋ ๊ฒ์ ์๋๊ฐ ๊ฐ์๊ธฐ ์ ํ๋๋ ์ผ์ด ์์) - ํธ๋ฆฌ์ ๊น์ด๋ 3-4 ์์ค์ผ๋ก ์ผ์ ํ๊ณ , ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ ์ํ๋ฅผ ์ ์งํ์ฌ ์ด๋ถ ํ์์ ํตํด ๊ฒ์ ๋น์ฉ ์ ๊ฐ ๊ฐ๋ฅ - ์ง์ฝ ํจ์ ๋ฑ์์ ์๊ตฌ๋๋ ์ ๋ ฌ์ ํ์ง ์์ ์ฑ ์คํ ๊ฐ๋ฅ - ๋ฑํธ์ ๋ถ๋ฑํธ๋ฅผ ์ฌ์ฉํ ๊ฒ์ ์กฐ๊ฑด์์ ์ฌ์ฉ ๊ฐ๋ฅ B+tree ๊ตฌ์กฐ 2. ๊ธฐํ ์ธ๋ฑ์ค ๋นํธ๋งต ์ธ๋ฑ์ค ๋ฐ์ดํฐ๋ฅผ ๋นํธ ํ๋๊ทธ๋ก ๋ณํํด ์ ์ฅํ๋ ์ธ๋ฑ์ค ์นด๋๋๋ฆฌํฐ๊ฐ ๋ฎ.. 2022. 5. 23. [SQL ๋ ๋ฒจ์ ] 9์ฅ: ๊ฐฑ์ ๊ณผ ๋ฐ์ดํฐ ๋ชจ๋ธ ๊ฐฑ์ ์ ํจ์จ์ ์ผ๋ก 1. NULL ์ฑ์ฐ๊ธฐ val ์ปฌ๋ผ์ NULL์ธ ๋ถ๋ถ์ ์ด์ ๋ ์ฝ๋์ ๊ฐ์ ๊ฐ์์ ์๋ฏธํจ ์ฆ, NULL ๋ถ๋ถ์ ์ด์ ๋ ์ฝ๋์ ๊ฐ์ ๊ฐ์ ์ฑ์๋ฃ์ด์ผ ํจ 1) ๊ฐ์ keycol ํ๋๋ฅผ ๊ฐ์ง 2) ํ์ฌ ๋ ์ฝ๋๋ณด๋ค ์์ seq ํ๋ ๊ฐ์ง 3) valํ๋๊ฐ NULL์ด ์๋ UPDATE OmitTbl SET val = (SELECT val FROM OmitTbl OT1 WHERE OT1.keycol = OmitTbl.keycol AND OT1.seq = (SELECT MAX(seq) FROM OmitTbl OT2 WHERE OT2.keycol = OmitTbl.keycol AND OT2.seq < OmitTbl.seq AND OT2.val IS NOT NULL)) WHERE val IS NULL; .. 2022. 5. 16. [SQL ๋ ๋ฒจ์ ] 8์ฅ: SQL์ ์์ ์์์กฐ์ ๊ธฐ์ด - ๋ ์ฝ๋์ ์๋ฒ ๋ถ์ด๊ธฐ 1. ๊ธฐ๋ณธ ํค๊ฐ ํ ๊ฐ์ ํ๋์ผ ๊ฒฝ์ฐ ์๋์ฐ ํจ์ ์ฌ์ฉ SELECT student_id, ROW_NUMBER() OVER (ORDER BY student_id) AS seq FROM Weights; ์๊ด ์๋ธ์ฟผ๋ฆฌ ์ฌ์ฉ SELECT student_id, (SELECT COUNT(*) FROM Weights W2 WHERE w2.student_id I/O์์ด ๋์ด๋ SELECT ๊ตฌ๋ฌธ ์ฑ๋ฅ์ด ๋๋น ์ง ์ ์์ผ๋ฉฐ ๊ตฌํ์์กด์ ๋ฐฉ๋ฒ์ 2) ์ธ๋ฑ์ค์ ๋ณต์กํ ํ๋๋ฅผ ์ถ๊ฐํ์ฌ ๋ฐ์ดํฐ์ ๋ถ์ฐ๋๋ฅผ ๋์ -> ๋ณต์กํ ํ๋ ์ถ๊ฐํ ๊ฒฝ์ฐ ๋ถํ์ํ ์๋ฏธ๋ฅผ์์ฑํ๋ฏ๋ก ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์ดํดํ๊ธฐ ์ด๋ ค์ธ ์ ์์ ๊ฒฐ๋ก : ๋ฆฌ์คํฌ๋ฅผ ์ธ์งํ๊ณ ์ฌ์ฉํ์ 2. IDENTITY ํ๋ - ํ ์ด๋ธ์ ํ๋๋ก ์ ์ํ๊ณ .. 2022. 5. 9. ์ด์ 1 2 3 ๋ค์