Có một lệnh SQL sẽ liệt kê tất cả các bảng trong cơ sở dữ liệu và nhà cung cấp độc lập (hoạt động trên MSSQLServer, Oracle, MySQL) không?Liệt kê tất cả các bảng trong cơ sở dữ liệu
Trả lời
Tùy chọn gần nhất là truy vấn INFORMATION_SCHEMA
cho các bảng.
SELECT *
FROM INFORMATION_SCHEMA.Tables
WHERE table_schema = 'mydatabase';
INFORMATION_SCHEMA
là một phần của SQL chuẩn, nhưng không phải tất cả nhà cung cấp đều hỗ trợ. Theo như tôi biết, các nhà cung cấp RDBMS duy nhất hỗ trợ nó là:
- MySQL
- PostgreSQL
- Microsoft SQL Server 2000/2005/2008
Một số thương hiệu của cơ sở dữ liệu, ví dụ Oracle, IBM DB2, Firebird, Derby, vv có chế độ xem "danh mục" tương tự cung cấp cho bạn giao diện nơi bạn có thể truy vấn siêu dữ liệu trên hệ thống. Nhưng tên của các khung nhìn, các cột chúng chứa và mối quan hệ của chúng không khớp với chuẩn ANSI SQL cho INFORMATION_SCHEMA
. Nói cách khác, thông tin tương tự có sẵn, nhưng truy vấn bạn sẽ sử dụng để có được thông tin đó là khác nhau.
(chú thích: các khung nhìn danh mục trong IBM DB2 UDB cho hệ thống i khác với khung nhìn danh mục trong IBM DB2 UDB cho Windows/* NIX - rất nhiều cho các phổ trong UDB)
Một số các nhãn hiệu khác (ví dụ: SQLite) không cung cấp bất kỳ giao diện đáng tin cậy nào cho siêu dữ liệu.
Không. Họ đều thích làm theo cách riêng của họ.
Không, tiêu chuẩn SQL không hạn chế nơi tên bảng được liệt kê (nếu có), vì vậy bạn sẽ phải thực hiện các câu lệnh khác nhau (thường là các câu lệnh SELECT
trên bảng được đặt tên đặc biệt) tùy thuộc vào công cụ SQL xử lý.
Như Bill Karwin một cách chính xác chỉ ra, các INFORMATION_SCHEMA là một phần của tiêu chuẩn SQL-92. Một số nhà cung cấp có thể không hỗ trợ nó, nhưng nó là một phần của tiêu chuẩn. –
Nếu bạn là OK với việc sử dụng một cách tiếp cận phi SQL và bạn có một trình điều khiển ODBC cho cơ sở dữ liệu và nó thực hiện các SQLTables entry-point, bạn có thể có thể nhận được các thông tin mà bạn muốn!
pjjH
chi tiết về API tại địa chỉ: http://msdn.microsoft.com/en-us/library/ms711831.aspx
- 1. Psql liệt kê tất cả các bảng
- 2. Liệt kê thông tin về tất cả các tệp cơ sở dữ liệu trong SQL Server
- 3. Có thể liệt kê tất cả các khoá ngoại trong cơ sở dữ liệu không?
- 4. Làm thế nào để liệt kê tất cả các cơ sở dữ liệu MongoDB trong Node.js?
- 5. Tôi có thể liệt kê tất cả các bảng trong cơ sở dữ liệu bằng Squirrel SQL bằng cách nào?
- 6. Liệt kê tất cả các chỉ mục
- 7. Liệt kê tất cả các kho SVN
- 8. Liệt kê tất cả các bảng trong postgresql information_schema
- 9. Làm cách nào để liệt kê tất cả các trình kích hoạt của cơ sở dữ liệu trong sqlite?
- 10. Sql Truy vấn để liệt kê tất cả các khung nhìn trong cơ sở dữ liệu SQL Server 2005
- 11. Cách lấy danh sách tất cả các bảng trong hai cơ sở dữ liệu khác nhau
- 12. Xóa tất cả các hàng trong bảng khỏi bảng cơ sở dữ liệu SQLite
- 13. Liệt kê tất cả virtualenv
- 14. Cách xem tất cả các bảng trong cơ sở dữ liệu HSQLDB?
- 15. Đang cập nhật tất cả các bảng trong một cơ sở dữ liệu MySQL
- 16. cắt ngắn tất cả các bảng trong cơ sở dữ liệu mysql
- 17. SQL Server - Tạo Trigger đơn chạy cho TẤT CẢ các bảng trong cơ sở dữ liệu
- 18. Đổi tên tất cả các bảng trong cơ sở dữ liệu
- 19. Làm thế nào để xóa tất cả các bảng trong cơ sở dữ liệu MySQL?
- 20. PostgreSQL: Làm thế nào để liệt kê tất cả các kiểu dữ liệu có sẵn?
- 21. Liệt kê tất cả các bảng hiện đang được xuất bản để sao chép MS-SQL
- 22. Làm thế nào để liệt kê tất cả các bảng được xác định cho cơ sở dữ liệu khi sử dụng bản ghi hoạt động?
- 23. Liệt kê tất cả người dùng trong LDAP bằng PHP
- 24. Xóa dữ liệu khỏi tất cả các bảng trong MYSQL
- 25. Học thuyết tự động tạo tất cả các bảng cơ sở dữ liệu?
- 26. Chọn từ tất cả các bảng
- 27. Làm cách nào để liệt kê (hoặc xuất) mã cho tất cả các trình kích hoạt trong cơ sở dữ liệu?
- 28. Xóa tất cả trừ n trên cùng khỏi bảng cơ sở dữ liệu trong SQL
- 29. Mysql - tìm một bảng trong tất cả cơ sở dữ liệu
- 30. Đặt lại cơ sở dữ liệu (xóa tất cả), sau đó gieo một cơ sở dữ liệu
Tôi định trả lời và nói "Không, tuyệt đối không". Câu trả lời của bạn đã cứu tôi. Tôi đã học được điều gì đó mới hôm nay :) – wcm
Tôi đã thêm các liên kết vào tài liệu cho INFORMATION_SCHEMA trong các thương hiệu RDBMS tương ứng có hỗ trợ nó. –