Consultar tipo de dado, PK e FK
- Amanda Nascimento
- 29 de nov. de 2023
- 2 min de leitura
Atualizado: 27 de mai.
Consultar tipo de dado em uma tabela:

SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'nomedatabela';
Saída:

Uma opção mais completa:

SELECT
c.name AS 'Nome da Coluna',
tp.name AS 'Tipo de Dado',
c.max_length AS 'Tamanho Máximo',
c.precision AS 'Precisão',
c.scale AS 'Escala',
c.is_nullable AS 'Permite Nulo',
c.is_identity AS 'É Identity',
ISNULL((
SELECT 'PRIMARY KEY'
FROM sys.key_constraints kc
INNER JOIN sys.index_columns ic ON kc.parent_object_id = ic.object_id
WHERE
kc.parent_object_id = c.object_id AND
kc.type = 'PK' AND
ic.column_id = c.column_id
), '') AS 'Constraint'
FROM
sys.columns c
INNER JOIN
sys.types tp ON c.user_type_id = tp.user_type_id
INNER JOIN
sys.tables t ON c.object_id = t.object_id
WHERE
t.name = 'NOME_DA_SUA_TABELA'
ORDER BY
c.column_id;
Chaves PK e FK
Termo | Significado | Onde é usado |
PK | Chave primária | Identifica de forma única |
FK | Chave estrangeira | Cria vínculo entre tabelas |
A chave primária (PK) é uma coluna (ou conjunto de colunas) que identifica de forma única cada registro em uma tabela.
Características:
Não pode conter valores nulos (NULL).
Os valores devem ser únicos (não podem se repetir).
Cada tabela pode ter apenas uma chave primária.
Geralmente é usada como referência por outras tabelas (através de chaves estrangeiras).
FK – Foreign Key (Chave Estrangeira)
A chave estrangeira é uma coluna (ou conjunto de colunas) que estabelece uma ligação entre duas tabelas. Ela faz referência à chave primária de outra tabela.
Características:
Garante a integridade referencial (os dados relacionados devem existir na tabela referenciada).
Pode aceitar valores nulos (dependendo da regra de negócio).
Uma tabela pode ter várias chaves estrangeiras.
Conceito | PK (Primary Key) | FK (Foreign Key) |
Função | Identificar registros de forma única | Relacionar tabelas através de uma referência |
Valores | Únicos e não nulos | Podem se repetir e podem ser nulos (em alguns casos) |
Número por tabela | Apenas uma | Várias |
Relacionamento | Não depende de outras tabelas | Depende de outra tabela |
Para saber conceitos sobre chaves, clique aqui e veja os posts relacionados.
Consultar chave primária de uma tabela
A chave primária é a identificação única de cada linha (registro) em uma tabela.
Regras:
Não pode ser nula (NULL)
Não pode ter valores repetidos
Cada tabela pode ter apenas uma chave primária
Opção 1


Opção 2

-- Chave Primária
SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'pfunc'
AND COLUMN_NAME IN (
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
TABLE_NAME = 'pfunc'
AND CONSTRAINT_NAME LIKE 'PK_%'
);
Saída:

Criar chave primária de uma tabela PK
CREATE TABLE funcionarios (
id INT PRIMARY KEY,
nome VARCHAR(100),
cargo VARCHAR(50)
);
Neste exemplo, id é a chave primária — cada funcionário tem um id único.
id como nome da coluna, INT como número inteiro, e PRIMARY KEY definindo esta coluna como chave primária. PK — Primary Key (Chave Primária).
Consultar chave estrangeira de uma tabela

-- Chaves Estrangeiras
SELECT
CONSTRAINT_NAME,
COLUMN_NAME,
TABLE_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
TABLE_NAME = 'pfunc'
AND CONSTRAINT_NAME LIKE 'FK_%';

Criar chave primária de uma tabela FK
CREATE TABLE departamentos (
id INT PRIMARY KEY,
nome VARCHAR(50)
);
CREATE TABLE funcionarios (
id INT PRIMARY KEY,
nome VARCHAR(100),
departamento_id INT,
FOREIGN KEY (departamento_id) REFERENCES departamentos(id)
);
Neste exemplo:
departamento_id em funcionarios é uma FK
Ela aponta para id da tabela departamentos
Isso garante que só existam funcionários ligados a departamentos válidos
A chave estrangeira é uma referência a uma chave primária de outra tabela. Ela cria relacionamentos entre tabelas.
Regras:
O valor da FK deve existir na tabela referenciada (ou ser NULL, se permitido)
Garante a integridade referencial