728x90
◾ ALL_TABLES & USER_TABLES
ALL_TABLES : 모든 테이블에 대해 조회할 수 있다 (관리자 권한이 있을 때)
USER_TABLES : 현재 User가 접근할 수 있는 모든 테이블에 대해 조회할 수 있다
SELECT * FROM ALL_TABLES; -- (관리자 권한일 때) 모든 테이블
SELECT * FROM USER_TABLES; -- 현재 USER가 접근 가능한 모든 테이블
😵 < 혼자 작은 프로젝트할 때는 테이블명을 잘 안 잊어버리고, 큰 프로젝트에서는 테이블이 너무 많아서
ALL_TALBES로 테이블명 조회는 딱히 많이 안쓰게 되더라구요
◾ ALL_TAB_COLUMNS
모든 Table, View, Cluster에 대한 Column에 대해 조회할 수 있다
😎 > 특정 컬럼이 어디 있는지 찾거나 특정 테이블의 모든 컬럼명을 가져올 때 사용하면 유용합니다!
◾ ALL_TAB_COLUMNS 활용 방법
(1) 컬럼명으로 테이블 찾기
SELECT *
FROM ALL_TAB_COLUMNS
WHERE COLUMN_NAME = '컬럼명';
- 컬럼명만 덩그라니 가지고 있을 때, Table을 찾기 위해 사용
- 물론 여러 테이블에서 공통으로 사용할 때에는 결과가 많아 헷갈리겠지만, 사용 테이블을 모두 보여줘서 ERD를 볼 수 없는 상황에 유용하게 사용
(2) 특정 테이블의 모든 컬럼명 가져오기
SELECT ',' || COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = '테이블명';
- 모든 컬럼명 앞에 ','울 붙여서 출력
- 다음 사진과 같이 출력된 결과를 복사하여 모든 컬럼명이 필요할 때 사용 가능
- 다음과 같이 INSERT문에 컬럼명을 명시해야 하는데, 컬럼수가 너무 많으면 ALL_TAB_COLUMNS를 활용하여 컬럼명을 복사하기 유용하게 가져올 수 있다!
INSERT INTO TEST_TABLE_2
(
COL1
,COL2
,COL3
...
,COL999
)
SELECT *
FROM '테이블명'
WHERE ID = '1234'
728x90
'Programming > Oracle' 카테고리의 다른 글
[Oracle] 조건함수 DECODE 사용법 (0) | 2022.09.25 |
---|