๐ Today I Learned(๊ฐ๋ฐ์ธ์ดํ์ต)/ORACLE(DB)
[ORACLE] ํด๋น ํ ์ด๋ธ์ ํฌํจํ๊ณ ์๋ ํ ์ด๋ธ์คํ์ด์ค ์กฐํ
๊ฐ์ : ๊ธฐ์กด์ ์๋ ๋ฐ์ดํฐํ ์ด๋ธ์ ์๋ก์ด ์ปฌ๋ผ์ ์ถ๊ฐํ๋ ์์ ์ด ํ์ํด์ก๋ค. ์๋ํ๋ฉด ๊ฐ์ ํ ์ด๋ธ ๋ช ์ ์ฌ์ฉํ๊ณ ์๋ ํ ์ด๋ธ ์คํ์ด์ค๊ฐ ์ฌ๋ฌ๊ณณ์ผ ๊ฒฝ์ฐ ํ ์ด๋ธ์ ์ฌ์์ฑํ ๋ ํ ์ด๋ธ์คํ์ด์ค๋ฅผ ์ง์ ํด์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์กฐํ๊ฐ ํ์ํด์ก๋ค. ํ ์ด๋ธ ์คํ์ด์ค๋ ํ ์ด๋ธ์ด ์ ์ฅ๋๋ ์ ์ฅ์๊ฐ์ ๊ฐ๋ ์ผ๋ก ์๊ณ ์์ผ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ์์ : ์ ์ฒด ํ ์ด๋ธ ์คํ์ด์ค ์กฐํ SELECT * FROM DBA_TABLESPACES; ์์ ์ ์งํํ๊ณ ์ ํ๋ ํ ์ด๋ธ๋ช ์ ์ฌ์ฉํ๊ณ ์๋ ํ ์ด๋ธ์คํ์ด์ค ์กฐํ SELECT TABLESPACE_NAME, TABLE_NAME FROM ALL_ALL_TABLES WHERE TABLE_NAME LIKE '%[์ฐพ๊ณ ์ํ๋ ์ค์ ํ ์ด๋ธ๋ช ]%'; ๐จ๐ป ๋์ ๊ฒฝ์ฐ ๊ฐ๋ฐํ๊ฒฝ์์๋ ๊ธฐ์กด ์๋ ํ ์ด๋ธ์ ๋ฐฑ์ ํ ๋ค..
[ORACLE] WHERE์ ํ ์ค์ ์กฐ๊ฑด ์ฌ๋ฌ ๊ฐ
๊ฐ์ : ์ ๋ฌด ์ํ์ค์ ํ ์ด๋ธ์กฐํํ ๋ ํน์ ์ปฌ๋ผ์ ํน์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ์ง ์๋ ์กฐ๊ฑด๊ณผ NULL์ธ ๋ฐ์ดํฐ๋ค์ ๊ฐ์ด ์กฐํํด์ผ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ฒผ๋ค. ์ฒ์์๋ WHERE์ ์ NOT IN()์ ์ฌ์ฉํด ์กฐํํ์์ผ๋ COUNT()๋ฅผ ์ฌ์ฉํ์๋ ํ์ธํด๋ณธ ๋ฐ์ดํฐ ์ซ์์ ๋ง์ง ์์๋ค. ๊ทธ๋์ AND์ ์ ์ถ๊ฐํด IS NULL์ ์กฐํํ์ผ๋ ๋น์ฐํ๊ฒ๋ ๋์ค์ง ์์๋ค. ( ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋๋ฐ NULL์ด๋ฉด์ ๋ฐ์ดํฐ๊ฐ ์์ด์ผํ๋ค๋ ๋ง์ด์๋์ง;; ) AND ๋์ ์ OR๋ฅผ ์ฐ๋ฉด ๋์ง์์๊นํด์ ์ฌ์ฉํด๋ดค์ง๋ง ๋๋์ด๋ผ๋ ๋ป์ด๊ธฐ ๋๋ฌธ์ ์ํ์ง์๋ ๋ฐ์ดํฐ๊น์ง๋ ์กฐํ๊ฐ ๋์๋ค. ํด๊ฒฐ : ex) ์คํจ SELECT * FROM [ํ ์ด๋ธ๋ช ] A LEFT JOIN [ํ ์ด๋ธ๋ช ] B ON B.[์กฐ์ธ์ปฌ๋ผ] = A.[์กฐ์ธ์ปฌ๋ผ] WHERE [์กฐ๊ฑด์ปฌ๋ผ] = [์กฐ๊ฑด๊ฐ..
[ORACLE] ๋ ๊ฐ์ ํ ์ด๋ธ ์กฐ์ธ ํ ์ ๋ฐ์ดํธ
๊ฐ์ : ํน์ ํ ์ด๋ธ์์ ํน์ ๋ฉ๋ด์ ์์๋๋ ๋ฐ์ดํฐ์ ๊ฐ์ ๋ณ๊ฒฝํด์ผํ๋ ์ผ์ด ์๊ฒผ๋ค. ํ์ง๋ง ๊ทธ ํ ์ด๋ธ์๋ ์กฐ๊ฑด์ ์ ์ค ์ ์์ ๋งํ ์ปฌ๋ผ์ด ์กด์ฌํ์ง ์์๊ณ ๊ธฐ์กด์๋ ๋ค๋ฅธํ ์ด๋ธ๊ณผ ์กฐ์ธํ์ฌ ์ฌ์ฉํ๋ ํ ์ด๋ธ์ด์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ๋ฐ์ดํธ๋ฌธ์ ์ํํ ๋ ๋ํ ๋ค๋ฅธ ํ ์ด๋ธ๊ณผ์ ์กฐ์ธ์ ํตํด ์กฐ๊ฑด์ ์ฃผ์ด ์ํํด์ผํ๋ค๋ ์๊ฐ์ด ๋ค์ด ํด๋ณด์์ง๋ง ๊ธฐ์กด UPDATE๋ฌธ์ผ๋ก๋ ํด๊ฒฐ๋์ง ์์๋ค. ๊ธฐ์กด ์คํ๋ฌธ : --์ค๋ช UPDATE ( SELECT * FROM [๋ฉ๋ด์ฝ๋๋ฅผ ํฌํจํ ํ์ผ๊ด๋ จ ํ ์ด๋ธ] R, [ํ์ผ๊ด๋ จ ์ ๋ณด๋ฅผ ๋ด์ ํ ์ด๋ธ] F WHERE r.orikey = f.file_idx -- [์กฐ์ธ์กฐ๊ฑด] AND r.[๋ฉ๋ด๊ตฌ๋ถ์ปฌ๋ผ] = '813' -- ๋ฉ๋ด๊ตฌ๋ถ AND f.[ํ์ผํ์ ๊ตฌ๋ถ์ปฌ๋ผ] = '364' -- ํ์ผํ์ ๊ตฌ๋ถ ) ..
IN ๋ฌธ์ ํ์ฉํ LIKE ์ฌ์ฉ
๊ฐ์ : ํ ์ด๋ธ์์ 'LIKE'์ 'IN'์ ์ฌ์ฉํด ๋ค์ค ์กฐ๊ฑด์ ๊ฑธ์ด ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ค๊ณ ํ์์ผ๋ ์ฟผ๋ฆฌ๋ฌธ์ด ์คํ๋์ง ์์ 'LIKE'๋ง์ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํ์๋ ์กฐ๊ฑด๋ณ๋ก ๊ณ์ ์์ฑํด์ผํด์ ์ธ๋ฐ์์ด ๊ธธ์ด์ง๊ธฐ๋๋ฌธ์ 'IN'์ ๊ฐ์ด ์ด์ฉํ ์ ์์๊น ์๊ฐํ๋ค. ์๋๋ ์คํ๋์ง ์์ ์ฟผ๋ฆฌ๋ฌธ์ ์์์ด๋ค. EX) SELECT * FROM [ํ ์ด๋ธ๋ช ] WHERE [์ปฌ๋ผ๋ช ] LIKE IN ('[%์กฐ๊ฑด%]', '[%์กฐ๊ฑด%]', '[%์กฐ๊ฑด%]'); ํด๊ฒฐ๋ฐฉ๋ฒ : 'REGEXP_LIKE'๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ ์ ๊ท์์ ์ฌ์ฉํ๋? 'LIKE' ์กฐ๊ฑด์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ๊ฐ๋ค. ์๋๋ ์คํ๋๋ ์ฟผ๋ฆฌ๋ฌธ์ด๋ค. SELECT * FROM [ํ ์ด๋ธ๋ช ] WHERE REGEXP_LIKE( [ํ๋๋ช ], '[์กฐ๊ฑด] | [์กฐ๊ฑด] | [์กฐ๊ฑด]' )..
LONGํ์ ์ปฌ๋ผ์ ํฌํจํ ํ ์ด๋ธ ๋ณต์ฌ(๋ฐฑ์ ํ ์ด๋ธ์์ฑ)
๊ธฐ์กด ํ ์ด๋ธ ๋ณต์ฌ๋ CREATE TABLE [์๋ก์์ฑ๋ ํ ์ด๋ธ๋ช ] AS SELECT * FROM [๊ธฐ์กดํ ์ด๋ธ๋ช ] WHERE 1=1; ๋ก๋ ๊ฐ๋ฅํ์ง๋ง ๊ธฐ์กดํ ์ด๋ธ์ด LONGํ์ ์ปฌ๋ผ์ ํฌํจํ๊ณ ์๋ค๋ฉด ๋ณต์ฌํ ์ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ง๋ง ๋๋ SQLPLUS๋ฅผ ํ์ฉํ COPY๋ฌธ์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. 1. ๋จผ์ ํฐ๋ฏธ๋ ํ๊ฒฝ์์ sqlplus์ ์ ์ํ๋ค. (์๋์ฐ ํ๊ฒฝ์ ๊ฒฝ์ฐ์) ๋๋ณด๊ธฐ C:\[ํด๋น๊ฒฝ๋ก]>sqlplus UserId/UserPw 2. ์ ์๋๋ค๋ ์๋ด ํ์ธ 3. COPY FROM UserId/UserPw@sid TO UserId/UserPw@sid CREATE [๋ฐฑ์ ํ ์ด๋ธ๋ช ] USING SELECT * FROM [๊ธฐ์กดํ ์ด๋ธ๋ช ] 4. ์ฟผ๋ฆฌ๋ฌธ ์คํ 5. ์๋ฃ ์๋ด ํ์ธ 6. sqlplus ..
[ORACLE DB] VARCHAR2ํ์ CLOBํ์ ์ผ๋ก ๋ณ๊ฒฝ
โป ๋ณ๊ฒฝํ ์ปฌ๋ผ์ด ํฌํจ๋ ํ ์ด๋ธ ์์ฒด๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ 1. ๋ฐฑ์ ํ ์ด๋ธ ์์ฑ ํ ๊ธฐ์กดํ ์ด๋ธ ๋ฐ์ดํฐ ์ฎ๊ธฐ๊ธฐ CREATE TABLE [๋ฐฑ์ ํ ์ด๋ธ๋ช ] AS SELECT * FROM [๊ธฐ์กดํ ์ด๋ธ๋ช ]; 2. ๊ธฐ์กดํ ์ด๋ธ ์ญ์ DROP TABLE [๊ธฐ์กดํ ์ด๋ธ๋ช ]; 3. ํ ์ด๋ธ ์ฌ์ ์ ํ ์์ฑ CREATE TABLE [๊ธฐ์กดํ ์ด๋ธ๋ช ] ( [์ปฌ๋ผ๋ช ] [๋ฐ์ดํฐํ์ ] , [์ปฌ๋ผ๋ช ] [๋ฐ์ดํฐํ์ ] , [์ปฌ๋ผ๋ช ] [๋ฐ์ดํฐํ์ ] , [์ปฌ๋ผ๋ช ] [๋ฐ์ดํฐํ์ ] ); 4. ์ฌ์ ์ํ ํ ์ด๋ธ์ ๋ฐฑ์ ํ ์ด๋ธ ๋ฐ์ดํฐ ์ฝ์ INSERT INTO [๊ธฐ์กดํ ์ด๋ธ๋ช ] SELECT * FROM [๋ฐฑ์ ํ ์ด๋ธ๋ช ]; โป ๋ณ๊ฒฝํ ์ปฌ๋ผ ์์ฒด๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ 1. ๋ณ๊ฒฝํ๋ ค๋ ํ ์ด๋ธ์ ์์ CLOB์ปฌ๋ผ ์ถ๊ฐ ALTER TABLE [ํ ์ด๋ธ๋ช ] ADD ( [์ปฌ๋ผ๋ช ] [CL..