IT/DataBase59 [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. [PostGreSQL] ํ์ฌ ์คํ์ค์ธ SQL ์กฐํ, ์ข ๋ฃ ๋ชฉ์ฐจ PostGreSQL ํ์ฌ ์คํ์ค์ธ SQL ์กฐํ, ์ข ๋ฃ ํ์ฌ ์คํ์ค์ธ SQL ์กฐํ ์ฟผ๋ฆฌ๐ select * from pg_stat_activity ; ์ปฌ๋ผ ์ ๋ณด lock ๊ฑธ๋ฆฐ ํ ์ด๋ธ ์กฐํ๐ SELECT t.relname, l.locktype, page, virtualtransaction, pid, mode, granted FROM pg_locks l, pg_stat_all_tables t WHERE l.relation = t.relid ORDER BY relation asc ; ํ์ฌ ํ ์ด๋ธ์ lock์ ํ์ธ ํ ์ ์๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋๋ถ๋ถ์ lock ํ ์ด๋ธ์ ๊ด์ฐฎ์ผ๋ RowExclusiveLock ์ด ๊ฒ์๋๋ค๋ฉด ํด๋น ํ ์ด๋ธ์ ์ ๊ทผ์ด ์ง์ฐ๋์ด ๋ค๋ฅธ ์ฟผ๋ฆฌ์๋ ์ํฅ์ ๋ฏธ์น ์ ์์ผ๋ฏ๋ก ๋ฐ๋์ ์ก๊ณ ์๋ ํธ๋์ญ.. IT/DataBase 2022. 11. 28. [Oracle] oracle ์ฟผ๋ฆฌ ๋ก๊ทธ ๋ณด๊ธฐ ๋ชฉ์ฐจ oracle ์ฟผ๋ฆฌ ๋ก๊ทธ ๋ณด๊ธฐ ์๋์ฒ๋ผ ์ฟผ๋ฆฌ ์คํ ์ ์ค๋ผํด์์ ์คํ๋ ๋ชจ๋ ์ฟผ๋ฆฌ๋ค์ด ์๊ฐ๋๋ณ๋ก ๋์จ๋ค. ๋ชจ๋ ์ฟผ๋ฆฌ ์กฐํ๐ select * from v$sql -- WHERE์ ์ ์ ํ์ฌํญ -- WHERE SQL_TEXT LIKE '%delete%' order by first_load_time desc ์ญ์ ์ฟผ๋ฆฌ๋ง ์กฐํ๐ select * from v$sql WHERE SQL_TEXT LIKE '%DELETE%' order by first_load_time desc ; ์์ฃผ ์์ ๊บผ๋ ์กฐํ ์๋๋ ๊ฑธ ๋ณด๋ v$sql์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ ๋ณด๊ด๊ธฐ๊ฐ์ด ์๋ ๋ฏ ์ถ๋ค. REDO ๋ฒ์ ์คํ ์ฟผ๋ฆฌ ์กฐํ๐ SELECT last_active_time ,parsing_schema_name ,sql_text FROM v$sq.. IT/DataBase 2022. 11. 28. [PostGreSQL] ํ ์ด๋ธ/ํ ์ด๋ธ ๋ชฉ๋ก ์กฐํ ๋ชฉ์ฐจ ๋์ค์ ๋ด๊ฐ ๋ณด๊ธฐ ์ํด ๊ธฐ๋กํจ PostGreSQL ํ ์ด๋ธ ์กฐํ๐ ์ค๋ผํด์ all_tables, user_tables ๋ฑ mysql & mariadb์ information_schema์ ๋ง์ฐฌ๊ฐ์ง๋ก postgreSQL๋ ํ ์ด๋ธ ๋ชฉ๋ก์ ์กฐํํ ์ ์์ ์๋์ฒ๋ผ pg_tables๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค. select * from pg_tables ; IT/DataBase 2022. 11. 28. [Cubrid]ํ ์ด๋ธ ์กฐ์ธ - ์ปฌ๋ผ update ๋ชฉ์ฐจ ํ ์ด๋ธ ์กฐ์ธ ํ ์ปฌ๋ผ update A๋ผ๋ ํ ์ด๋ธ์ aa๋ผ๋ ์ปฌ๋ผ์ bb๋ผ๋ ์ปฌ๋ผ์ ๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ ์ณ์ผ ๋ ์ํฉ์ด ์๊ฒผ๋ค. ์๋์ฒ๋ผ inner join ํ ์ ๋ฐ์ดํธ ์ฒ๋ฆฌ ํ๋ค.(ํ ์ด๋ธ ๋ฐฑ์ ํ ๊ฐ๋ฐ DB๋๊น ๋ถ๋ด์์ด ์คํ) -- userํ ์ด๋ธ์ hp๊ฐ์ tel๋ก ์ ๋ฐ์ดํธ UPDATE user a INNER JOIN user b ON a.usr_idx=b.usr_idx SET a.hp=b.tel ; A์ B๋ฅผ ์กฐ์ธํ์ฌ ๋์จ ๊ฒฐ๊ณผ๋ฅผ B์ ํน์ ์ปฌ๋ผ์ ์ ๋ฐ์ดํธ ํ๋ ๋ฐฉ๋ฒ UPDATE TARGET_TABLE B SET B.OLD_DATA = ( SELECT A.NEW_DATA FROM JOIN_TABLE A WHERE A.TABLE_KEY = B.OLD_DATA ) ; ๊ฐ๋จํ ๋ด์ฉ์ด์ง๋ง ๋ด๊ฐ ๋์ค์ ๋ณด๊ธฐ .. IT/DataBase 2022. 11. 28. [Oracle]insert into select from table ๋ชฉ์ฐจ [Oracle]insert into select from table ์ค๋ผํด์์ ๋ค๋ฅธ ํ ์ด๋ธ์์ ๊ฐ์ ์กฐํํด ์จ ํ ํ๋ฒ์ insertํ ๋ ์ ์ฉํจ -- ๋ฌธ๋ฒ -- ๋์ ํ ์ด๋ธ๊ณผ ์ฐธ์กฐํ๋ ํ ์ด๋ธ์ ์ปฌ๋ผ์ด ์ผ์นํ๋ ๊ฒฝ์ฐ insert ์ปฌ๋ผ ์๋ต ๊ฐ๋ฅ INSERT INTO target_table SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM from_table ; -- ํน์ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ง ์กฐํํด์ insert INSERT INTO SCOTT.EMP_211209 (EMPNO, ENAME) SELECT EMPNO, ENAME FROM emp ; ํ ์คํธ empํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์๋์ฒ๋ผ ์๊ณ ์๋์ฒ๋ผ empํ ์ด๋ธ์ ์ฐธ์กฐํ ํ ์คํธ ํ ์ด๋ธ์ ํ๋ .. IT/DataBase 2022. 11. 28. [Oracle]ORA-28000 : the account is locked ํด๊ฒฐ ๋ชฉ์ฐจ [Oracle]ORA-28000 : the account is locked ํด๊ฒฐ๋ฐฉ๋ฒ ๊ณ์ ์ด lock๋ ๊ฒฝ์ฐ์ ์๋ ๋ค์ํฉ๋๋ค. DBA๊ฐ ์ง์ ํด๋น ๊ณ์ ์ ์ ๊ถ์ ์๋ ์๊ณ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ณ์ ํ๋ ธ๊ฑฐ๋ ๋น๋ฐ๋ฒํธ ๋ง๋ฃ๋ก ์ธํ ์ ๊ธ ์ ๊ฒฝ์ฐ๋ 3๋ฒ ์งธ ๊ฒฝ์ฐ์๊ณ ํฐ๋ฏธ๋์์ ์ง์ ๋ณ๊ฒฝ ์ฒ๋ฆฌ๋ฅผ ํ์ต๋๋ค. ๊ณ์ ์ด ์ ๊ธธ ๊ฒฝ์ฐ ๋น์ฐํ ์ ์ํด์์ ์ ์์ด ์๋๊ธฐ์ ์๋์ฒ๋ผ ํฐ๋ฏธ๋์์ ๊ด๋ฆฌ์๋ก ์ ์ sqlplus / as sysdba ํฐ๋ฏธ๋์์ ์ง์ ์ฟผ๋ฆฌ๋ฌธ์ผ๋ก ๊ณ์ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ALTER USER TESTUSER ACCOUNT UNLOCK; commit; ์์ฒ๋ผ ํด์ ํด๊ฒฐ ๋๋ ๊ฒฝ์ฐ๋ ์๊ณ ๊ฐํน ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํด์ผ ๋๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ๋ ๊ด๋ฆฌ์๋ก ํฐ๋ฏธ๋ ์ ์ ํ ์ง์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝ ํด์ฃผ๊ณ ํ ์คํธ ํด๋ณด๋ฉด ๋ฉ๋๋ค.. IT/DataBase 2022. 11. 28. [Cubrid]8๋ฒ์ merge into ๋ฏธ์ง์ ๋ชฉ์ฐจ [cubrid]merge into ex) MERGE INTO test A USING db_root ON A.code = 'test' // ์กฐ๊ฑด๋ฌธ WHEN MATCHED THEN // ์กฐ๊ฑด๋ฌธ์ ํด๋นํ๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋ UPDATE๋ฌธ ์คํ UPDATE SET A.name = '๋ก๋ค์ฃผ', A.id ='์์ด์ธ๋งจ', A.email = 'ironman@naver.com' WHEN NOT MATCHED THEN // ์กฐ๊ฑด๋ฌธ์ ํด๋นํ๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋ INSERT๋ฌธ ์คํ INSERT (A.code, A.name, A.id, A.email) VALUES ('test', '๋ก๋ค์ฃผ', '์์ด์ธ๋งจ', 'ironman@naver.com' ) ; ํ๋ก์ ํธ ์งํํ๋ค๊ฐ ๊ฒช์๋ ์ํ์ฐฉ์ค๋ฅผ ๊ธฐ์ ํฉ๋๋ค. ๋น์ ์ด์DB๋ cubr.. IT/DataBase 2022. 11. 28. ์ด์ 1 2 3 4 5 6 ๋ค์