์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค27 [Oracle]ORACLE ๊ณ์ธตํ ์ฟผ๋ฆฌ ๋ชฉ์ฐจ ํ ์ด๋ธ์ ๊ณ์ธตํ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ ์ฌ์ฉ(์กฐ์ง, ์ฌ์, ๋ฉ๋ด๋ฑ์ ์ํ๊ด๊ณ ๋ฑ์ ์ฌ์ฉ๋จ) SELECT ... [ CONNECT_BY_ISLEAF ISLEAF FROM ํ ์ด๋ธ๋ช START WITH condition CONNECT BY PRIOR condition AND condition; -- START WITH์ | ๊ณ์ธต๊ตฌ์กฐ ์ ๊ฐ์ ์์ ์์น๋ฅผ ์ง์ ํ๋ ๊ตฌ๋ฌธ -- CONNECT BY ์ | ๋ค์์ ์ ๊ฐ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํ๋ ๊ตฌ๋ฌธ ----------------------------------------------------------------- -- ๊ณ์ธตํ์ฟผ๋ฆฌ ------------------------------------------------------------------ --PRIOR ์.. IT/DataBase 2022. 11. 29. [Oracle]ORACLE 12C SQL์ ์ถ๊ฐ๋ ์๋ก์ด ๊ธฐ๋ฅ ๋ชฉ์ฐจ DEFALUT VALUE๋ก sequence์ next value ์ง์ ๊ฐ๋ฅ 12c ์ด์ ์ ์ค๋ผํด์์๋ ์๋ ์ฆ๊ฐ๊ฐ์ ์ค์ ํ๊ธฐ ์ํด ์ํ์ค๋ฅผ ์์ฑ ํ ํ ํ ์ด๋ธ์ ๋ง๋ค ๋๋ถํฐ ์์ฑํ ์ํ์ค์ ๊ฐ์ ์ค์ ํ ์ ์์ -- ex) 12c์์๋ ์๋์ฒ๋ผ ์ํ์ค๋ฅผ ์์ฑ ํ CREATE SEQUENCE t_seq start with 1 increment by 1 maxvalue 10 nocycle ; -- ํ ์ด๋ธ์ ๋ง๋ค ๋ ์ํ์ค์ next value ์ง์ ์ด ๊ฐ๋ฅํจ CREATE TALBE test ( no NUMBER DEFAULT t_seq.nextval PRIMARY KEY, name varchar2(10) ); invisible columne ์ฌ์ฉ ๊ฐ๋ฅ 11g๊น์ง๋ ํ ์ด๋ธ์ invisible columne.. IT/DataBase 2022. 11. 29. [Oracle] Oracle ์ํ์ค ์์ฑ ์ฟผ๋ฆฌ ๋ชฉ์ฐจ Oracle ์ํ์ค ์์ฑ ์ฟผ๋ฆฌ๐ SELECT 'CREATE SEQUENCE ' || sequence_owner || '.' || sequence_name || ' INCREMENT BY ' || increment_by || ' START WITH ' || last_number || ' MAXVALUE ' || max_value || ' MINVALUE ' || min_value || CASE WHEN cycle_flag = 'N' THEN ' NO' ELSE ' ' END || 'CYCLE ' || CASE WHEN cache_size = 0 THEN 'NOCACHE' ELSE 'CACHE ' || cache_size END || CASE WHEN order_flag = 'N' THEN ' NO' .. IT/DataBase 2022. 11. 29. [Oracle] Oracle SELECTํ ๊ฐ์ผ๋ก UPDATEํ๊ธฐ ๋ชฉ์ฐจ Oracle SELECTํ ๊ฐ์ผ๋ก UPDATEํ๊ธฐ๐ถ ์์ฃผ ์ฐ๋ ๊ธฐ๋ฅ์ธ๋ฐ ์ญ์ ๊ธฐ๋ก์ ์ํ๋ฉด ๊น๋จน๋๋ค. ์๋์ฒ๋ผ ์๋ธ์ฟผ๋ฆฌ์ ์กฐ์ธ์ ํ์ฉํด์ UPDATEํ๋ฉด ๋๋ค. UPDATE STUDENT A SET JUMIN = ( SELECT jumin FROM STUDENT_220514 B WHERE A.studno = B.STUDNO ) ; studentํ ์ด๋ธ์ studno์ student_220514 ํ ์ด๋ธ์ studno๋ก ์กฐ์ธ ํ student_220514์ jumin์ ๊ฐ์ ธ์์ ๊ทธ jumin์ผ๋ก student ํ ์ด๋ธ์ jumin์ปฌ๋ผ๊ฐ์ UPDATE ์ฐธ์กฐ : ์ฝ๋ฉํฉํ ๋ฆฌ๋ ๋ธ๋ก๊ทธ, 2019.01.09, https://coding-factory.tistory.com/291 [Oracle] ์ค๋ผํด SELECTํ.. IT/DataBase 2022. 11. 29. [Oracle] Oracle ํน์ ์๋ฆฟ์๋ง ์ ๋ฐ์ดํธ(feat. update + substr) ๋ชฉ์ฐจ Oracle ํน์ ์๋ฆฟ์๋ง ์ ๋ฐ์ดํธ๐ ์๋ STUDENT ํ ์ด๋ธ์ด ์๋ค. ์ฌ๊ธฐ์ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ์ฐจ์์์ JUMIN์ปฌ๋ผ์ 7๋ฒ ์งธ๋ถํฐ '1234567'๋ก UPDATE ํ๋ ค๊ณ ํ๋ค. ์๋์ฒ๋ผ UPDATE SQL์ ์คํํ๋ฉด ๋๋ค. UPDATE STUDENT SET JUMIN = SUBSTR(JUMIN,1,6) || '1234567' ; substr๋ก 1~6๋ฒ์ง๊ฐ์ ๊ทธ๋๋ก ๊ฐ์ ธ์ค๊ณ ||๋ก '1234567'์ ๋ถ์ฌ์ updateํจ ๊ฒฐ๊ณผ๊ฐ ๋ค์ํ๊ฒ ์์ฉ์ด ๊ฐ๋ฅํ ๋ฏ ์ถ๋ค, ๋ด๊ฐ ์์ง ์๊ธฐ ์ํด ๋ฉ๋ชจ ์ฐธ์กฐ : https://community.oracle.com/tech/developers/discussion/2338069/how-do-i-update-the-substring-of-a-string-value IT/DataBase 2022. 11. 29. [Oracle]ORACLE SYNOSYM(์๋ ธ๋-๋์์ด) ๋ชฉ์ฐจ ์ฌ๋๋ ์น๊ตฌ์ ๋ณ๋ช ์ ๋ถ๋ฅด๋ฏ ์ค๋ผํด์์๋ ํ ์ด๋ธ์ ๋ณ๋ช ์ ๋ถ์ผ ์ ๊ฐ ์๋๋ฐ ์ด ๋ณ๋ช ์ ๋ถ์ด๋ ๊ธฐ๋ฅ์ ์๋ ธ๋์ด๋ผ๊ณ ํจ ์๋ ธ๋์ ์ฌ์ฉํ๋ ๋ชฉ์ ์ ๋ณด์์ด๋ ์ฌ์ฉ์์ ํธ๋ฆฌ์ฑ ๋๋ฌธ์ -- ์์ฑ ๋ฌธ๋ฒ CREATE [PUBLIC] SYNONYM synonym_name FOR [schema.] ๋์๊ฐ์ฒด; ์ข ๋ฅ๋ Private Synonym๊ณผ public Synonym์ด ์๊ณ private synonym์ ๋ง๋ ์ฌ์ฉ์๋ง ์ฌ์ฉํ ์ ์๋ synonym์ ๋๋ถ๋ถ์ synonym์ ํ๋ก์ ํธ์ ์ฐธ์ฌํ ๋ง์ ์ฌ๋๋ค์ด ๋ค ๋ณผ ์ ์๋๋ก ๋ง๋๋ ๊ฒ์ด ์ข์๋ฐ ์ด ๋ ์ฌ์ฉํ๋๊ฒ public synonym์ synonym์ ์์ฑํ๋ ค๋ฉด CREATE [PUBLIC] SYNONYM์ด๋ ๊ถํ์ด ํ์ํ๋ฏ๋ก ์๋์ ๊ฐ์ด ๊ถํ์ ๋จผ์ ํ ๋น ํด.. IT/DataBase 2022. 11. 29. [Oracle]ORACLE DELETE, TRUNCATE, DROP ์ฐจ์ด ๋ชฉ์ฐจ delete๋ ๋ฐ์ดํฐ๋ง ์ง์์ง๊ณ ์ฌ์ฉ์ค์ธ ๋์คํฌ์์ ๊ณต๊ฐ์ ์ ์ง, TRUNCATE๋ CREATE TABLE๋ก ํ ์ด๋ธ์ ๋ง๋ค์๋ ์ํ(๋ฐ์ดํฐ๊ฐ 1๋ ์์)๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ณ ์ปฌ๋ผ๋ง ๋จ๊ฒจ๋์, ์ฌ์ฉ์ค์ธ ๋์คํฌ ๊ณต๊ฐ๋ ์ฌ๋ผ์ง, DROP์ ์ ์ผ ์ํํ ๋ช ๋ น์ด์ด๊ณ ๋ฐ์ดํฐ์ ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ญ์ ํจ(์ฌ์ฉ์ค์ธ ๊ณต๊ฐ, ์ธ๋ฑ์ค, ์ ์ฝ์กฐ๊ฑด๋ฑ ์ ๋ถ ์ญ์ ๋จ) DELETE ๋ฌธ๋ฒ์ ์ฝ์ง๋ง DELETE๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค๊ณ ์๊ณ ์์ง๋ง ์ฌ์ค ๋ฐ์ดํฐ๋ ์ญ์ ๋์ง ์๊ณ ํด๋น ๋ธ๋ก์ ๊ทธ๋๋ก ๋จ์ ์๊ณ BBED๊ฐ์ ํด์ ์ด์ฉํ๋ฉด DELETE๋ ๋ฐ์ดํฐ๋ ์ ๋ถ ๋ณต๊ตฌ ๊ฐ๋ฅํ๋ค๊ณ ํจ ๊ทธ๋์ DELETE๋ฅผ ํ ํ์ ํ ์ด๋ธ์ ํฌ๊ธฐ๋ฅผ ํ์ธํด ๋ณด๋ฉด ํฌ๊ธฐ๊ฐ ์ค์ด๋ค์ง ์๊ณ ๊ทธ๋๋ก์ ์๋ฅผ ๋ค์ด, 100๋ง๊ฑด ๋ฐ์ดํฐ๊ฐ ์๋ ํ ์ด๋ธ์ ์ฉ๋์ด 100MB์.. IT/DataBase 2022. 11. 29. [Oracle] Oracle ์ค๋ณต๋ฐ์ดํฐ ์ ๊ฑฐ(feat. delete from table + group by having) ๋ชฉ์ฐจ Oracle ์ค๋ณต๋ ๋ฐ์ดํฐ๋ง ์กฐํ๐ select from table group by having์ ๋ก ์ค๋ณต ๋ฐ์ดํฐ๋ง ์กฐํํ๋ ๊ฑด ์๋์ฒ๋ผ ์กฐํํ๋ฉด ๋๋ค. SELECT NAME, sum(1) hap FROM TMP_220512 t GROUP BY NAME HAVING sum(1) > 1 ; ๊ฒฐ๊ณผ๋ ์๋์ฒ๋ผ name์ด 1๊ฐ ์ด์์ธ ์ค๋ณต๋ฐ์ดํฐ๊ฐ ์กฐํ๋๋ค. ๋ฌธ๋ ์์ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ง ์ ๊ฑฐํ๊ณ ์ถ์ด์ ํด๋ดค๋ค. ์๋์ฒ๋ผ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๋ฉด ๋๋ค.(๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ ์๋ ์๋ค.) ํ ์ด๋ธ ์ํ(์ธ๋ฑ์ค ์กด์ฌ ๋ฑ)์ ๋ฐ๋ผ ์ค๋ ๊ฑธ๋ฆด ์๋ ์๋ค. ์ค๋ณต๋ ๋ฐ์ดํฐ๋ง ์ ๊ฑฐ๐ ๋จผ์ group by having์ ๋ก ์ค๋ณต๋ฐ์ดํฐ๊ฐ 1๊ฐ ์ด์์ธ ๋ฐ์ดํฐ๋ง ๋ฝ๊ณ ๊ทธ๊ฑธ ์๋ธ์ฟผ๋ฆฌ์ ๋ฃ์ ํ DELETE๋ฌธ์ผ๋ก ์ญ์ DELETE FROM TMP_.. IT/DataBase 2022. 11. 29. [Oracle] system ๊ณ์ ๋น๋ฐ๋ฒํธ ๋ง๋ฃ/๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ(feat. ORA-00988) ๋ชฉ์ฐจ system ๊ณ์ ๋น๋ฐ๋ฒํธ ๋ง๋ฃ/๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ๐ ํ์ฌ ๊ฐ๋ฐ์๋ฒ์ Oracle system ๊ณ์ ์ด ๋ง๋ฃ๊ฐ ๋์๋ค. ๋ง๋ฃ๊ฐ ์์ฃผ ๋์ค๋๊ฒ ์๋๋ ๋ ๊ฐ๋ง์ ๊ตฌ๊ธ๋ง์ ํด์ system ๊ณ์ ์ ๋ณ๊ฒฝ ํ๋ค. ๊ทธ ๊ณผ์ ์ ์๋ฌ๊ฐ ๋ฐ์ํด์ ์์ง ์๊ธฐ ์ํด ๊ธฐ๋กํ๋ค. ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์ ์๐ Oracle์ด ์ค์น๋ ์๋ฒ์์ system as sysdba๋ก ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์ ์ํ๋ค. ๋ ss๋ฅผ sqlplus / as sysdba๋ก ํ๊ฒฝ๋ณ์์ alias๋ฅผ ๋ฏธ๋ฆฌ ์ธํ ํด ๋๋ค. alter ์ฟผ๋ฆฌ ์คํ๐ ์ ์ ํ ์๋ ์ฟผ๋ฆฌ๋ฅผ ์คํํด์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋๋๋ฐ ์๋ฌ๊ฐ ๋ฌ๋ค.๐ ALTER USER system identified by ๋ณ๊ฒฝํ ๋น๋ฐ๋ฒํธ; ORA-00988 ์๋ฌ๋ ๊ตฌ๊ธ๋ง ํด๋ณด๋ ๋ด ์ํฉ๊ณผ ๋ง์ง ์๋ ๋ต๋ค์ด์๋ค.(;๊ฐ .. IT/DataBase 2022. 11. 28. [SQL] Oracle SELECT query ์คํ ์์ ๋ชฉ์ฐจ SQL SELECT ์ฟผ๋ฆฌ ์คํ ์์๐ SELECT ์ฟผ๋ฆฌ์์ ์คํ ์์๋ ์๋์ ๊ฐ๋ค. ๋ถ๋๋ฝ์ง๋ง ์ฒ์์ ์ ๋ฐ ์์๊ฐ ์๋ ์ง ๋ชฐ๋๊ณ ์ต๊ทผ์ ์์๋ค. ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ ์ด๋ณด ์์ ์ ๊ทธ๋ฅ ์ผ๋ค๊ณ ์น๋ฉด ์๊ฐ์ด ํ๋ฅด๋ฉด์๋ ์ ์ ์ดํดํ๋ฉด์ ์ฐ๋ ค๊ณ ํ๋ค. ์ ์์๋ฅผ ๋ฐ๋์ ๊ธฐ์ตํ๊ณ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด์ผ ํ๋ฉฐ ์ด์ ๋ฐ๋ฅธ ํผํฌ๋จผ์ค์ ์ฐจ์ด๊ฐ ํฌ๋ค. ์์ SELECT SQL๐ SELECT JOB_ID ,AVG(SALARY) SAL_AVG FROM EMPLOYEES2 e WHERE SALARY > 13000 GROUP BY JOB_ID HAVING COUNT(*) > 1 ORDER BY SAL_AVG DESC ; ์ ๊ฐ๋จํ ์ฟผ๋ฆฌ๋ฌธ์์๋ ๋ด๋ถ์ ์ผ๋ก๋ 6๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ค. ์ ์คํ ์์๋ฅผ ํ๋์ฉ ๋ฏ์ด ๋ณด๊ฒ ๋ค.๐ FROM์ ์ฟผ๋ฆฌ์ ์ฒซ.. IT/DataBase 2022. 11. 28. ์ด์ 1 2 3 ๋ค์