๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/ORACLE

[ORACLE] 7์ผ์ฐจ : ํ…Œ์ด๋ธ” , ์ œ์•ฝ ์กฐ๊ฑด ๊ด€๋ จ ์ฝ”๋“œ ์ •๋ฆฌ

by ๋”ฐ๊ถˆ 2024. 3. 20.

 

๋ฐ์ดํ„ฐ ์‚ฌ์ „

SELECT * FROM dict;
SELECT COUNT(*) FROM dictionary;

 

๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ฌ์ „ ํ…Œ์ด๋ธ” ์ •๋ณด ํ™•์ธ

SELECT * FROM dict;
SELECT COUNT(*) FROM dictionary;

 

ํ˜„์žฌ ์‚ฌ์šฉ์ž์˜ ๋ชจ๋“  ๊ฐ์ฒด ์ •๋ณด

 

 

ํ…Œ์ด๋ธ” ์ •๋ณด

SELECT * FROM user_tables;
SELECT * FROM tabs;  -- ์ž์„ธํžˆ

SELECT * FROM tab;  -- ๊ฐ„๋‹จํžˆ

ํ…Œ์ด๋ธ” ์ •๋ณด ํ™•์ธ

 

SELECT * FROM user_tab_columns;
--์ „์ฒด ์ปฌ๋Ÿผ ํ™•์ธ 
SELECT * FROM col WHERE tname = 'ํ…Œ์ด๋ธ”๋ช…' ; 
ํ…Œ์ด๋ธ”๋ช…/์ปฌ๋Ÿผ๋ช…/๋ฐ์ดํ„ฐํƒ€์ž… : 

SELECT * FROM cols WHERE table_name='ํ…Œ์ด๋ธ”๋ช…';  -- ์ž์„ธํžˆ

ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ์ •๋ณด ํ™•์ธ(ํ…Œ์ด๋ธ”๋ช…์€ ๋Œ€๋ฌธ์ž๋กœ)

 

 

์ œ์•ฝ์กฐ๊ฑด

์–ด๋–ค ์ปฌ๋Ÿผ์— ์ œ์•ฝ์กฐ๊ฑด์ด ๋ถ€์—ฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์€ ๋ถˆ๊ฐ€(ํ…Œ์ด๋ธ”๋ช…์€ ๋Œ€๋ฌธ์ž๋กœ)
constraint_type → P:๊ธฐ๋ณธํ‚ค, C:NOT NULL ๋“ฑ, U:UNIQUE, R:์ฐธ์กฐํ‚ค ๋“ฑ

 

SELECT u1.table_name, column_name, constraint_type, u1.constraint_name, search_condition
FROM user_constraints u1
JOIN user_cons_columns u2 ON u1.constraint_name = u2.constraint_name
WHERE u1.table_name = UPPER('ํ…Œ์ด๋ธ”๋ช…');

์ œ์•ฝ์กฐ๊ฑด ๋ฐ ์ปฌ๋Ÿผ ํ™•์ธ

 

SELECT fk.owner, fk.constraint_name,
    pk.table_name parent_table, fk.table_name child_table
FROM all_constraints fk, all_constraints pk 
WHERE fk.r_constraint_name = pk.constraint_name AND fk.constraint_type = 'R'
ORDER BY fk.table_name;

๋ถ€์™€ ์ž ๊ด€๊ณ„์˜ ๋ชจ๋“  ํ…Œ์ด๋ธ” ์ถœ๋ ฅ

 

SELECT fk.owner, fk.constraint_name , fk.table_name 
FROM all_constraints fk, all_constraints pk 
WHERE fk.r_constraint_name = pk.constraint_name 
AND fk.constraint_type = 'R' 
AND pk.table_name = UPPER('ํ…Œ์ด๋ธ”๋ช…')
ORDER BY fk.table_name;

ใ€Žํ…Œ์ด๋ธ”๋ช…ใ€์„ ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ” ๋ชฉ๋ก ์ถœ๋ ฅ(์ž์‹ ํ…Œ์ด๋ธ” ๋ชฉ๋ก ์ถœ๋ ฅ)

 

SELECT table_name FROM user_constraints
WHERE constraint_name IN (
SELECT r_constraint_name 
FROM user_constraints
WHERE table_name = UPPER('ํ…Œ์ด๋ธ”๋ช…') AND constraint_type = 'R'
);

ใ€Žํ…Œ์ด๋ธ”๋ช…ใ€์ด ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ” ๋ชฉ๋ก ์ถœ๋ ฅ(๋ถ€๋ชจ ํ…Œ์ด๋ธ” ๋ชฉ๋ก ์ถœ๋ ฅ)

 

SELECT fk.constraint_name, fk.table_name child_table, fc.column_name child_column,
pk.table_name parent_table, pc.column_name parent_column
FROM all_constraints fk, all_constraints pk, all_cons_columns fc, all_cons_columns pc
WHERE fk.r_constraint_name = pk.constraint_name
AND fk.constraint_name = fc.constraint_name
AND pk.constraint_name = pc.constraint_name
AND fk.constraint_type = 'R'
AND pk.constraint_type = 'P'
AND fk.table_name = UPPER('ํ…Œ์ด๋ธ”๋ช…');

ใ€Žํ…Œ์ด๋ธ”๋ช…ใ€์˜ ๋ถ€๋ชจ ํ…Œ์ด๋ธ” ๋ชฉ๋ก ๋ฐ ๋ถ€๋ชจ ์ปฌ๋Ÿผ ๋ชฉ๋ก ์ถœ๋ ฅ ( ๋ถ€๋ชจ 2๊ฐœ ์ด์ƒ์œผ๋กœ ๊ธฐ๋ณธํ‚ค๋ฅผ ๋งŒ๋“  ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ๋ฒˆ ์ถœ๋ ฅ ๋จ)