Criando banco e tabelas - Garantindo a integridade dos dados

Veja neste artigo fundamentos sobre a criação de tabelas, integridade dos dados (declarativa) e alguns exemplos práticos, para ajudar o entendimento sobre o assunto.

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:

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:

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:

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:

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:

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:

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.


Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados