如何在 SQL 中搜索列名?
在 SQL 中,有时我们需要使用前缀搜索表中的列名。对于本文,我们将使用 Microsoft SQL Server 作为我们的数据库和 Select 关键字。
第 1 步:创建数据库。为此,请使用以下命令创建一个名为 GeeksForGeeks 的数据库。
询问:
CREATE DATABASE GeeksForGeeks
输出:
第 2 步:使用 GeeksForGeeks 数据库。为此,请使用以下命令。
询问:
USE GeeksForGeeks
输出:
第 3 步:在 GeeksForGeeks 数据库中创建 EVALUATION 表。该表有 6 列,即 STUDENT_NAME、STUDENT_ID、ENGLISH_MARKS、ENGLISH_PERCENTAGE、SCIENCE_MARKS、SCIENCE_PERCENTAGE,其中包含学生的姓名和 id、他们在英语科目中的分数和百分比以及他们在科学科目中的分数和百分比。
询问:
CREATE TABLE EVALUATION(
STUDENT_NAME VARCHAR(10),
STUDENT_ID INT,
ENGLISH_MARKS INT,
ENGLISH_PERCENTAGE INT,
SCIENCE_MARKS INT,
SCIENCE_PERCENTAGE INT);
输出:
第 4 步:描述表 EVALUATION 的结构。
询问:
EXEC SP_COLUMNS EVALUATION;
输出:
第 5 步:要查找具有共同前缀的表和列名,我们需要运行如下查询。以下查询通过将列名与提供的前缀进行比较来搜索数据库中的所有列。然后,生成的表和列按表名列出并排序。我们使用WHERE LIKE和ORDER BY等关键字来实现这一点。以下查询搜索名称以“ STUDENT ”开头的列。
句法:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'PREFIX%'
ORDER BY TABLE_NAME;
询问:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'STUDENT%'
ORDER BY TABLE_NAME;
注意:返回的所有列的名称中都有前缀“ STUDENT ”。
输出:
第 6 步:以下查询搜索名称以“ ENGLISH ”开头的列。
询问:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'ENGLISH%'
ORDER BY TABLE_NAME;
注意– 返回的所有列的名称中都有前缀“ ENGLISH ”。
输出:
第 7 步:以下查询搜索名称以“ SCIENCE ”开头的列。
询问:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'SCIENCE%'
ORDER BY TABLE_NAME;
注意– 返回的所有列的名称中都有前缀“ SCIENCE ”。
输出: