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 cần hiểu về SQL Server là
SELECT
*
FROM
sys.tables
8, là các bảng cơ sở dữ liệu hiệu quả [trong trường hợp này là ______29] hiển thị thông tin trên toàn hệ thống về Công cụ cơ sở dữ liệu SQL ServerTruy vấn thông tin hệ thống
Tất cả
SELECT
*
FROM
sys.tables
8 được truy cập thông qua một câu lệnh SQL SELECT
title,
primary_author,
published_date
FROM
books
WHERE
title LIKE 'The%'
1 SELECT
title,
primary_author,
published_date
FROM
books
WHERE
title LIKE 'The%'
2 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%'
0Ví 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%'
1SELECT
*
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 đạ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 nhauSELECT
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ôngSELECT
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, nó 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ớpVí 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ậySELECT
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ì ký tự đại diện
SELECT
title,
primary_author,
published_date
FROM
books
WHERE
title LIKE 'The%'
3 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ơnSELECT
title,
primary_author,
published_date
FROM
books
WHERE
title LIKE 'The%'
3Chọ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
SELECT
*
FROM
sys.tables
8 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
title,
primary_author,
published_date
FROM
books
WHERE
title LIKE 'The%'
5Chú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%'
34, 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%'
35. Cả hai được liên kết bởi trường SELECT
title,
primary_author,
published_date
FROM
books
WHERE
title LIKE 'The%'
36, vì vậy chúng tôi SELECT
title,
primary_author,
published_date
FROM
books
WHERE
title LIKE 'The%'
35 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%'
38 và SELECT
title,
primary_author,
published_date
FROM
books
WHERE
title LIKE 'The%'
39 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
title,
primary_author,
published_date
FROM
books
WHERE
title LIKE 'The%'
50 bằng với chuỗi SELECT
title,
primary_author,
published_date
FROM
books
WHERE
title LIKE 'The%'
38 của chúng tôiTuy 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 từng phần, chúng tôi có thể sử dụng các 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
*
FROM
sys.tables
7Ở đó 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 đó