[SQL] SQL 쿼리에 의해 특정 데이터베이스의 모든 테이블 이름을 얻기?
SQLSQL 쿼리에 의해 특정 데이터베이스의 모든 테이블 이름을 얻기?
나는 "MySQL은"및 "MS SQL 서버"와 같은 여러 데이터베이스 서버를 해결할 수있는 응용 프로그램에서 일하고 있습니다.
나는 모든 데이터베이스 유형에 적합해야한다 일반적인 쿼리를 사용하여 특정 데이터베이스의 테이블의 이름을 싶어. 나는 다음을 시도했다 :
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
그러나 특정 서버의 모든 데이터베이스의 테이블 이름을주고 있지만 선택한 데이터베이스 만의 테이블 이름을 싶어. 어떻게 특정 데이터베이스의 테이블을 얻기 위해이 쿼리를 제한 할 수 있습니다?
해결법
-
==============================
1.아마 방식으로 인해 다른 SQL DBMS는 스키마 처리합니다.
아마 방식으로 인해 다른 SQL DBMS는 스키마 처리합니다.
다음을 시도하십시오
SQL Server의 경우 :
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG='dbName'
MySQL의 경우 :
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='dbName'
오라클 I의 경우에 해당이 DBA_TABLES을 사용하는 것입니다 생각합니다.
-
==============================
2.여기에서 도난 :
여기에서 도난 :
USE YOURDBNAME GO SELECT * FROM sys.Tables GO
-
==============================
3.다음 쿼리는 DBNAME라는 이름의 데이터베이스의 모든 테이블을 선택합니다 :
다음 쿼리는 DBNAME라는 이름의 데이터베이스의 모든 테이블을 선택합니다 :
USE DBName GO SELECT * FROM sys.Tables GO
-
==============================
4.
USE DBName; SELECT * FROM sys.Tables;
당신은 세미콜론을 사용할 수의 우리는 자리에서 GO없이 처리 할 수 있습니다.
-
==============================
5.그냥 INFORMATION_SCHEMA.TABLES 앞에 데이터베이스 이름을 넣어 :
그냥 INFORMATION_SCHEMA.TABLES 앞에 데이터베이스 이름을 넣어 :
select table_name from YOUR_DATABASE.INFORMATION_SCHEMA.TABLES where TABLE_TYPE = 'BASE TABLE'
-
==============================
6.MySQL의에서, 사용 :
MySQL의에서, 사용 :
SHOW TABLES;
로 DB를 선택한 후 :
USE db_name
-
==============================
7.나는이 대답을 보지 않았다 그러나 헤이 이것은 내가 할 것입니다 :
나는이 대답을 보지 않았다 그러나 헤이 이것은 내가 할 것입니다 :
SELECT name FROM databaseName.sys.Tables;
-
==============================
8.
select * from sys.tables order by schema_id --comments: order by 'schema_id' to get the 'tables' in 'object explorer order' go
-
==============================
9.MySQL을 위해 당신은 간단한 작업을 수행 할 수 있습니다. 쇼 테이블;
MySQL을 위해 당신은 간단한 작업을 수행 할 수 있습니다. 쇼 테이블;
-
==============================
10.
Exec sp_MSforeachtable 'Select ''?'''
-
==============================
11.
USE dbName; SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE (TABLE_SCHEMA = 'dbName' OR TABLE_SCHEMA = 'schemaName') ORDER BY TABLE_NAME
당신은 MS SQL 서버에 여러 도식로 작업하는 경우, 다음 SELECT - 보내고 동시에 나는 우리가 MS SQL 서버를 사용하는 경우 알려진 스키마에 속하는 테이블에 관심이있는 가정 하였다 있도록 제한 도움이 될 수 TABLE_SCHEMA를 선택하지 않고 TABLE_NAME을.
나는 SQL Server Management Studio를 내의와 MySQL 워크 벤치는 MySQL 데이터베이스를 사용과 SQL Server 데이터베이스를 사용하여 위에서 쿼리를 테스트 한, 두 경우 모두에서 테이블 이름을 제공합니다.
쿼리는 다음 중 하나를 데이터베이스 유형에서 실행할 수있는 일에 마이클 Baylon의 두 개의 서로 다른 쿼리를 bodges. 절은 MySQL 데이터베이스 및합니다 (이후) 두 번째 부분에 작동의 첫 번째 부분은 MS SQL Server 데이터베이스에서 작동합니다. 는 데이터베이스와 같은 이름을 가진 원하지 않는 스키마가 없다는 것을 가정한다 그것은 추한하고 논리적으로 약간 잘못된 것입니다. 두 데이터베이스 서버에서 실행할 수있는 하나 개의 쿼리를 찾고이 힘 도움말 사람.
-
==============================
12.MSSQL 서버에 최신 버전의 업데이트 (177)
MSSQL 서버에 최신 버전의 업데이트 (177)
SELECT name FROM sys.Tables WHERE type_desc = 'USER_TABLE'
또는 모든 열을 얻기 위해 SELECT *.
-
==============================
13.아래의 데이터베이스 쿼리를 선택합니다 :
아래의 데이터베이스 쿼리를 선택합니다 :
use DatabaseName
지금
SELECT * FROM INFORMATION_SCHEMA.TABLES
이제 콘솔 아래에 생성 된 테이블을 볼 수 있습니다.
PFA.
-
==============================
14.예 오라클은 다음과 같습니다
예 오라클은 다음과 같습니다
select * from user_tables
당신은 단지 소유 객체, 그렇지 않으면 당신은 ALL_TABLES 또는 시스템 테이블을 포함 DBA_TABLES를 사용할 수있는 사용자 / 스키마에 로그인을하려면 때문입니다.
-
==============================
15.마이클 Baylon의 대답에서 구축, 나는 또한 스키마 정보를 포함하고 이것이 내가 자신의 쿼리를 수정하는 방법입니다 목록을 필요로했다.
마이클 Baylon의 대답에서 구축, 나는 또한 스키마 정보를 포함하고 이것이 내가 자신의 쿼리를 수정하는 방법입니다 목록을 필요로했다.
SELECT TABLE_SCHEMA + '.' + TABLE_NAME as 'Schema.Table' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG = 'dbName' ORDER BY TABLE_SCHEMA, TABLE_NAME
-
==============================
16.코드 아래의 오라클 DB (PL / SQL)에서 모두 우리의 DB에 테이블을 존재의 목록을 얻기 위해 노력.
코드 아래의 오라클 DB (PL / SQL)에서 모두 우리의 DB에 테이블을 존재의 목록을 얻기 위해 노력.
select * from tab;
과
select table_name from tabs;
모두 노력하고 있습니다. 의 시도하자 당신을 찾을 수 있습니다.
-
==============================
17.간단하게 MySQL의에서 SQL 아래이 모든 improtanat 정보를 얻을 수
간단하게 MySQL의에서 SQL 아래이 모든 improtanat 정보를 얻을 수
SELECT t.TABLE_NAME , t.ENGINE , t.TABLE_ROWS ,t.AVG_ROW_LENGTH, t.INDEX_LENGTH FROM INFORMATION_SCHEMA.TABLES as t where t.TABLE_SCHEMA = 'YOURTABLENAMEHERE' order by t.TABLE_NAME ASC limit 10000;
from https://stackoverflow.com/questions/3913620/get-all-table-names-of-a-particular-database-by-sql-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL은, 더 나은 NULL 또는 빈 문자열을 삽입하는? (0) | 2020.03.28 |
---|---|
[SQL] 두 테이블 사이의 수익률 차이에 SQL 쿼리 (0) | 2020.03.27 |
[SQL] DDL 및 DML은 무엇입니까? (0) | 2020.03.27 |
[SQL] 어떻게 mysqldump를에서 덤프 파일을 복원 할 수 있습니까? (0) | 2020.03.27 |
[SQL] 태그에 대한 데이터베이스 설계 (0) | 2020.03.27 |