MySQL hiển thị các bảng có tên cột

Mặc dù cực kỳ mạnh mẽ với tư cách là một cơ sở dữ liệu quan hệ, SQL Server đôi khi có thể hơi khó khăn khi tìm kiếm thông tin cơ bản về chính hệ thống cơ sở dữ liệu đó

Để giảm bớt phần nào những vấn đề đau đầu này, chúng ta sẽ khám phá ngắn gọn cách tìm tất cả các bảng trong cơ sở dữ liệu có chứa một tên cột cụ thể

Chế độ xem danh mục máy chủ SQL

Một khái niệm cơ bản để hiểu về SQL Server là catalog views, là các bảng cơ sở dữ liệu hiệu quả (catalogs trong trường hợp này) hiển thị thông tin trên toàn hệ thống về Công cụ cơ sở dữ liệu SQL Server

Truy vấn thông tin hệ thống

Tất cả catalog views được truy cập thông qua câu lệnh SQL SELECT FROM một danh mục cụ thể trong không gian tên

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
0

Ví dụ, câu lệnh sau có thể được sử dụng để xem thông tin về tất cả các bảng cơ sở dữ liệu trong hệ thống thông qua danh mục

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
1

SELECT
  *
FROM
  sys.tables

Câu lệnh THÍCH và Ký tự đại diện

Trước khi tìm hiểu cách trích xuất tất cả các bảng có tên cụ thể, chúng ta nên khám phá ngắn gọn câu lệnh

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
2 làm gì, cũng như ký hiệu ký tự đại diện (
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
3) và cách chúng được sử dụng cùng nhau

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
2 được sử dụng trong một truy vấn để xác định xem một mẫu ký tự cụ thể (thường là các giá trị của một
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
5 đã chỉ định) có khớp với một chuỗi ký tự được định dạng hay không

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
2 cũng thường được sử dụng cùng với ký tự
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
3, đại diện cho ký tự đại diện khi cố gắng khớp mẫu. Khi một ký tự đại diện
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
3 xuất hiện trong chuỗi mẫu, điều đó cho biết rằng bất kỳ ký tự nào cũng có thể xuất hiện ở vị trí đó của chuỗi mẫu và vẫn được coi là khớp

Ví dụ: nếu chúng tôi muốn tìm tất cả các cuốn sách có

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
9 bắt đầu bằng “The” nhưng có thể chứa bất kỳ ký tự nào sau đó, chúng tôi sẽ sử dụng một câu lệnh như vậy

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'

Những độc giả tinh ý có thể nhận ra rằng mẫu trên không chỉ phù hợp với các tiêu đề có chữ “The” ở đầu mà còn phù hợp với bất kỳ tiêu đề nào có các từ chỉ bắt đầu bằng ba chữ cái “The”. Vì

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
3 ký tự đại diện khớp với bất kỳ ký tự nào, nếu chúng tôi chỉ muốn kiểm tra các tiêu đề có từ “The”, thì việc thêm khoảng trắng sẽ phù hợp hơn

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The %'

Chọn các bảng chứa tên cột

Với kiến ​​thức cơ bản của chúng ta về cả câu lệnh catalog views và câu lệnh

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
2, giờ đây chúng ta đã được trang bị để tra cứu tất cả các bảng trong hệ thống có chứa một tên cột cụ thể

SELECT
  sys.columns.name AS ColumnName,
  tables.name AS TableName
FROM
  sys.columns
JOIN sys.tables ON
  sys.columns.object_id = tables.object_id
WHERE
  sys.columns.name = 'ColumnName'

Chúng tôi cần kết hợp thông tin từ hai danh mục,

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
1 và
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The %'
4, vì vậy chúng tôi đang sử dụng câu lệnh
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The %'
5. Cả hai được liên kết bởi trường
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The %'
6, vì vậy chúng tôi
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The %'
5 trên trường đó

Từ đó, vấn đề đơn giản là chọn

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The %'
8 và
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The %'
9 trong kết quả của chúng tôi, và cuối cùng, tất nhiên, chỉ tra cứu các bản ghi trong đó
SELECT
  sys.columns.name AS ColumnName,
  tables.name AS TableName
FROM
  sys.columns
JOIN sys.tables ON
  sys.columns.object_id = tables.object_id
WHERE
  sys.columns.name = 'ColumnName'
0 bằng với chuỗi
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The %'
8 của chúng tôi

Tuy nhiên, truy vấn này sẽ chỉ tìm thấy kết quả khớp chính xác của tên cột. Nếu chúng tôi muốn tìm các kết quả khớp một phần, chúng tôi có thể sử dụng ký tự đại diện

SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
2 và
SELECT
  title,
  primary_author,
  published_date
FROM
  books
WHERE
  title LIKE 'The%'
3 thay thế

SELECT
  sys.columns.name AS ColumnName,
  tables.name AS TableName
FROM
  sys.columns
JOIN sys.tables ON
  sys.columns.object_id = tables.object_id
WHERE
  sys.columns.name LIKE '%ColumnName%'

Ở đó chúng tôi có nó. Một truy vấn đơn giản để tra cứu tất cả các bảng và các cột được liên kết với một tên cột cụ thể (hoặc tương tự) trong đó

Làm cách nào để tìm bảng có tên cột trong MySQL?

Làm cách nào để liệt kê tất cả các bảng chứa tên cột cụ thể trong MySQL? . CHỌN DISTINCT TABLE_NAME TỪ INFORMATION_SCHEMA. COLUMNS WHERE COLUMN_NAME IN('column1', 'column2') AND TABLE_SCHEMA = 'schema_name';

Làm cách nào tôi có thể lấy tất cả các bảng dựa trên tên cột trong SQL?

Truy vấn bên dưới có thể được chạy trong cơ sở dữ liệu trên SQL Server để liệt kê tất cả các bảng có chi tiết cột. CHỌN schema_name(tab. schema_id) dưới dạng schema_name, tab. đặt tên là table_name, col. cột_id, col. đặt tên là column_name, t. đặt tên là data_type, col

Làm cách nào để hiển thị các trường bảng trong MySQL?

Nếu muốn hiển thị thông tin các cột của một bảng từ cơ sở dữ liệu khác hoặc không có trong cơ sở dữ liệu hiện tại, chúng ta có thể sử dụng truy vấn sau. .
mysql> HIỂN THỊ CỘT TỪ tên_cơ sở dữ liệu. tên_bảng;
mysql> HIỂN THỊ CỘT TỪ tên_bảng TRONG tên_cơ sở dữ liệu;