Primeiramente vamos iniciar com a criação de tabelas, para dar inicio execute o o SQL Server Management Studio, conecte-se na instância e clique no botão NEW QUERY, na parte superior esquerda da ferramenta, como mostra a figura 1:

Management Studio mostrando o botão NEW QUERY

Figura 1. Janela do Management Studio mostrando o botão NEW QUERY.

Depois de abrir a janela NEW QUERY, entre com o comando a seguir e execute:

Listagem 1: Código para verificar a existência do banco.


IF DB_ID ('TESTE_BANCO') IS NULL
	CREATE DATABASE TESTE_BANCO

Resumidamente este código verificará se o banco de dados existe (‘TESTE_BANCO’) e em seguida é criado o banco.

Para comprovar a existência do banco, veja no OBJECT EXPLORER o banco criado, como mostra a figura 2:

Management Studio, OBJECT EXPLORER, mostrando o banco criado

Figura 2. Janela do Management Studio, OBJECT EXPLORER, mostrando o banco criado.

Vamos prosseguir, em depois criar o banco de dados, vamos entrar no contexto do banco usando o seguinte código:

Listagem 2: Código para entrar no contexto do banco.


USE TESTE_BANCO

Depois de executar o comando acima, poderemos dar inicio a criação de tabelas, vamos criar uma tabela simples, com poucos campos, para melhor entendimento, digite e execute o código abaixo:

Listagem 3: Código para criação de tabela.


IF OBJECT_ID ('CLIENTES', 'U') IS NOT NULL
DROP TABLE CLIENTES;

CREATE TABLE CLIENTES (
	COD INT NOT NULL,
	NOME VARCHAR (30),
	SOBRENOME VARCHAR (50),
	CPF INT NOT NULL
)
GO

Sobre o primeiro bloco de comandos da Listagem 3, vamos detalhar os comandos, IF chama a instrução OBJECT_ID, que verifica se a tabela clientes já existe, a função OBJECT_ID aceita o nome (CLIENTES) e o tipo de objeto (U) como entradas.

Agora vamos dar inicio aos conhecimentos voltados a integridade dos dados (declarativa), veremos aqui as CONSTRAINTS: Primary Key, Unique Key, Foreign Key, Check Constraints.

Primary Key

A constraint Primary Key (chave primaria), não permite valores nulos e impõe a exclusividade de linhas. Veja abaixo o exemplo de definição de uma Primary Key, vamos usar a tabela criada e modifica-la.

Listagem 4: Código alterando a tabela CLIENTES, Primary Key.


ALTER TABLE CLIENTES
ADD CONSTRAINT PK_CLIENTES
PRIMARY KEY (COD)

Para confirmar, expanda a pasta do banco, expanda a pasta TABLES e em seguida expanda pasta KEYS (TABELA CLIENTES), como mostra figura 3:

Management Studio, OBJECT EXPLORER, mostrando a chave primaria criada

Figura 3. Janela do Management Studio, OBJECT EXPLORER, mostrando a chave primaria criada.

Unique Constraints

A Constraint Unique, também impõe a exclusividade de linhas, porem, é um pouco parecida com a primary key, podem existir varias Unique Constraints na mesma tabela. Veja o código abaixo:

Listagem 5: Código alterando a tabela CLIENTES, Unique Constraint.


ALTER TABLE CLIENTES
ADD CONSTRAINT UNIQUE_CLIENTES_CPF
UNIQUE (CPF)

Para confirmar, expanda a pasta do banco, expanda a pasta TABLES e em seguida expanda pasta KEYS (TABELA CLIENTES), como mostra figura 4:

Management Studio, OBJECT EXPLORER, mostrando a chave exclusiva

Figura 4. Janela do Management Studio, OBJECT EXPLORER, mostrando a chave exclusiva.

Foreign Key

Uma Foreign key (chave estrangeira), impõe a integridade referencial, ela é definida em um conjunto de atributos em que é chamada de tabela de referencia e aponta para os atributos de chaves candidatas (primary key, unique constraint).

Agora vamos criar uma nova tabela, chamada PEDIDOS, veja o exemplo abaixo:

Listagem 6: Código de criação da tabela PEDIDOS.


CREATE TABLE PEDIDOS (
	COD_PED INT NOT NULL,
	COD_CLI VARCHAR (30),
	NOME_PROD VARCHAR (50),
	QTD INT NOT NULL
)
GO

Em seguida o código abaixo altera a tabela, incluindo a constraint Foreign Key:

Listagem 7: Código alterando a tabela PEDIDOS, Foreign Key.


ALTER TABLE PEDIDOS
ADD CONSTRAINT FK_COD_CLI
FOREIGN KEY (COD_CLI)
REFERENCES CLIENTES(COD);

Para confirmar, expanda a pasta do banco, expanda a pasta TABLES e em seguida expanda pasta KEYS (TABELA PEDIDOS), como mostra figura 5:

Management Studio, OBJECT EXPLORER, mostrando a chave estrangeira

Figura 5. Janela do Management Studio, OBJECT EXPLORER, mostrando a chave estrangeira.

Check Constraints

Uma Check Constraint (Constraint de verificação), como o próprio nome já diz, para inserir ou modificar dados, é necessário que alguns requisitos seja atendidos, obviamente se a tabela em questão utilizar a Check Constraint.

Vamos criar uma tabela de FUNCIONARIOS, por exemplo, apenas com três campos, veja o código abaixo:

Listagem 8: Código de criação da tabela de FUNCIONARIOS.


CREATE TABLE FUNCIONARIO (
	COD_FUNC INT NOT NULL,
	NOME VARCHAR (30),
	SALARIO MONEY NOT NULL
)
GO	

Em seguida iremos utilizar a Check Constraint, vamos impedir que no campo SALARIO seja inserido valores negativos.

Listagem 9: Código alterando a tabela FUNCIONARIO, Check Constraint.


ALTER TABLE FUNCIONARIO
ADD CONSTRAINT CHK_FUNCIONARIO_SALARIO
CHECK (SALARIO > 0);

Para confirmar, expanda a pasta do banco, expanda a pasta TABLES e em seguida expanda pasta CONSTRAINTS (TABELA FUNCIONARIOS), como mostra figura 6:

Management Studio, OBJECT EXPLORER, mostrando Constraint de Verificação

Figura 6. Janela do Management Studio, OBJECT EXPLORER, mostrando Constraint de Verificação.

Tente inserir dados com valores negativos ou o valor zero, o sistema de banco de dados (SGBD) não irá permitir.

Com isso finalizo este artigo, espero que ele tenha sido bem claro nos seus objetivos.

O vídeo Trabalhando com constraints mostra o uso de contraints usando o PL/SQL do Oracle.