데이터베이스의 모든 테이블을 나열하고 공급자 독립적 인 SQL 명령이 있습니까 (MSSQLServer, Oracle, MySQL에서 작동)?데이터베이스의 모든 테이블 나열
답변
테이블에 대해 INFORMATION_SCHEMA
을 쿼리하는 것이 가장 가까운 옵션입니다.
SELECT *
FROM INFORMATION_SCHEMA.Tables
WHERE table_schema = 'mydatabase';
INFORMATION_SCHEMA
은 표준 SQL의 일부이지만 일부 벤더가 지원하지는 않습니다. 지금까지 내가 아는 한, 그것을 지원하는 유일한 RDBMS 벤더는 다음과 같습니다
- MySQL
- PostgreSQL
- 마이크로 소프트 SQL 서버, 예를 들어 2000/2005/2008
데이터베이스의 일부 브랜드, Oracle, IBM DB2, Firebird, Derby 등은 시스템에서 메타 데이터를 쿼리 할 수있는 인터페이스를 제공하는 유사한 "카탈로그"뷰를 가지고 있습니다. 그러나 뷰의 이름, 포함 된 열 및 해당 관계가 INFORMATION_SCHEMA
의 ANSI SQL 표준과 일치하지 않습니다. 즉, 유사한 정보를 사용할 수 있지만 정보를 얻기 위해 사용하는 쿼리는 다릅니다.
(각주 :! 내가 윈도우/* NIX에 대한 IBM DB2 UDB에서 카탈로그 뷰는 다른 시스템에 대한 IBM DB2 UDB에서 카탈로그 뷰 - 순전히을 유니버설에 대한 UDB에서)
일부 다른 브랜드 (예 : SQLite)는 메타 데이터에 대해 쿼리 할 수있는 인터페이스를 제공하지 않습니다.
아니요. 모두가 자신의 작은 방식으로하는 것을 좋아합니다.
아니요, SQL 표준은 테이블 이름이 나열된 위치를 제한하지 않으므로 현재 SQL 엔진에 따라 다른 문 (일반적으로 특수 테이블에 SELECT
문)을 수행해야합니다 상대하고.
의 INFORMATION_SCHEMA는 SQL-92 표준의 일부입니다에서 API에
pjjH는
세부 사항. 일부 공급 업체는 지원하지 않을 수도 있지만 표준의 일부입니다. –
당신이이 SQLTables에 엔트리 포인트를 구현하는 비 SQL 접근 및 데이터베이스 및에 대한 ODBC 드라이버가를 사용하여와 OK 있다면, 당신은 가능 원하는 정보를 얻을 수 있습니다! 빌 Karwin가 올바르게 지적한대로 이 http://msdn.microsoft.com/en-us/library/ms711831.aspx
- 1. "pages_backup"으로 시작하는 데이터베이스의 모든 테이블 이름 나열
- 2. 데이터베이스의 모든 테이블 목록
- 3. 데이터베이스의 모든 테이블 이름 바꾸기
- 4. 데이터베이스의 모든 트리거를 나열하십시오.
- 5. SQL 문으로 데이터베이스의 모든 테이블을 나열 할 수 있습니까?
- 6. 모든 테이블 또는 주어진 데이터베이스의 테이블 만 나열하는 방법
- 7. 디스크의 모든 파티션 나열
- 8. 모든 세션 정보 나열
- 9. 모든 시스템 모뎀 나열
- 10. iPhone의 모든 파일 나열
- 11. 복제 용으로 현재 게시 된 모든 테이블 나열 MS-SQL
- 12. 테이블 데이터베이스의 인덱스
- 13. 데이터베이스의 여러 테이블
- 14. 데이터베이스의 두 테이블 연결
- 15. 활성 디렉토리에있는 모든 컴퓨터 나열
- 16. Erlang 클러스터의 모든 노드 나열
- 17. tfs에있는 폴더의 모든 내용을 나열
- 18. 범주의 모든 성능 카운터 나열
- 19. CHM 파일의 모든 항목 나열
- 20. 모든 시스템 인증서 저장소 나열
- 21. 안드로이드에서 모든 카메라 이미지 나열
- 22. 내 데이터베이스의 모든 테이블 이름을 콤보 상자에 추가하는 방법
- 23. Django (데이터베이스의 클린 테이블)에서 모든 모델을 지우는 방법이 있습니까?
- 24. 단일 테이블 데이터베이스의 모든 데이터를 선택하고 표시하는 메서드 만들기
- 25. 내 데이터베이스의 모든 테이블 이름을 콤보 상자에 추가하십시오.
- 26. SQL - 데이터베이스의 모든 테이블 열의 프로그래밍 방식으로 이름 바꾸기
- 27. 동기화 프레임 워크 2.0 데이터베이스의 모든 테이블 동기화
- 28. Postgres 데이터베이스의 모든 테이블을 자르십시오
- 29. MySQL 데이터베이스의 최대 테이블 크기
- 30. zencart 데이터베이스의 장바구니 테이블 이름
나는 "아니오, 절대적으로"라고 대답하려고합니다. 당신의 대답이 저를 구 했어요. 나는 오늘 새로운 것을 배웠다 :) – wcm
나는 그것을 지원하는 각각의 RDBMS 브랜드에서 INFORMATION_SCHEMA에 대한 문서에 대한 링크를 추가했다. –