Blog

Postado em em 14 de julho de 2023

Constraints no SQL – O que são e Por Que Você Deve Usá-las?

Nesta aula vamos aprender o que são constraints no SQL, vou te ensinar os tipos de constrains que temos e qual a função de cada uma.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala Impressionadores! Você já ouviu falar em Constraints? Sabe o que é isso, onde usar e qual a sua utilidade?

Hoje eu vou te explicar o que são Constraints e por que usar Constraints no SQL.

As Constraints nada mais são do que restrições de informações, podem ser restrições em bancos de dados ou em qualquer outro local.

Nessa aula eu vou te mostrar o que são as constraints, por que utilizá-las, quais os tipos existe e vou te mostrar como utilizá-las na prática. Dessa forma você vai aprender não só a teoria, mas a prática para que fique tudo mais claro.

Mas qual a utilidade disso?

Você provavelmente já foi preencher uma informação em algum site e dependendo da informação o site evita com que você coloque letras quando for inserir um número de telefone, por exemplo.

Isso já é um tipo de constraints, pois você evita com que aquela informação fique errada por ter caracteres que não deveriam estar lá.

Outro ponto é quando você vai cadastrar um CPF, por exemplo, a ideia é que não tenha outro igual ao seu cadastrado.

Caso tenha o sistema vai informar que já tem, então você provavelmente já fez esse cadastro.

Vou te mostrar outros tipos de restrições em bancos de dados que você já viu em vários lugares, só não sabia o nome.

Ainda vou te mostrar onde usar constraints. Você vai ver que é muito útil no registro do seu banco de dados para manter as informações corretas e evitar erros.

Assim vai conseguir fazer suas análises de forma correta sem nenhum problema.

O que são CONSTRAINTS?

São regras aplicadas ao banco de dados com que permitem que você configure as características de uma determinada coluna:

1- Se uma coluna aceita ou não valores nulos

2- Se uma coluna é ou não uma chave primária

E assim vai…

Por que usar CONSTRAINTS?

A princípio, quando criamos as tabelas do banco de dados, elas aceitam qualquer valor.

Por exemplo, se eu tenho uma coluna para armazenar a informação da placa de um carro, nada me impede de simplesmente não cadastrar essa informação.

Mas, será que isso faz sentido?

SE uma coluna que armazena a sigla do estado de uma loja, faria sentido alguém cadastrar o texto “Brasil”? Por este motivo utilizamos CONSTRAINTS para deixar o banco de dados menos sujeito a erros e mais confiável e robusto.

Esses erros podem ser ocasionados por diferentes fatores:

• Erro Humano

• Erros de Transferência

• Bugs e Virus

Quais tipos de CONSTRAINTS existem?

Existem vários tipos de constraints, e algumas das principais são:

O que são Constraints no SQL

NOT NULL

Vamos utilizar essa constraints quando na criação de uma tabela temos uma coluna que não pode aceitar valores nulos, então algum erro ou mensagem será gerado caso alguma coluna esteja nula.

UNIQUE

Essa constraints é usada quando não queremos ter valores repetidos em uma coluna.

CHECK

Verifica se os valores cadastrados em uma coluna atendem a uma lista de critérios estabelecidos para aquela coluna.

PRIMARY KEY e FOREIGN KEY

Essas restrições servem para especificar em um banco de dados quem serão as colunas de chave primária e quais serão as colunas de chave estrangeira.

Onde usar CONSTRAINTS?

Usamos as constraints no processo de criação do banco de dados, conhecido como CRUD

Exemplo: Banco de Dados para armazenar informações de aluguéis de carros.

Este banco de dados vai ter uma tabela para armazenar as informações do cliente, do carro e das locações que forem feitas.

CONSTRAINTS 3

Vamos observar o código de cada tabela para ver como ficam as restrições de cada coluna.

Clientes:

O que são Constraints no SQL

Observe que algumas colunas da tabela receberam restrições em relação a valores nulos (NOT NULL), tivemos também uma coluna classificada como chave primária e a coluna de CNH que só recebe valores únicos.

O mesmo ocorres nos códigos para as outras tabelas, cada um recebendo na coluna uma restrição apropriada para que a informação seja coletada de modo a evitar erros com os dados.

Carros:

O que são Constraints no SQL

Locações

CONSTRAINTS 1

Constraints no SQL – Como Usá-las na Prática

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala Impressionadores! Na aula de hoje eu quero te mostrar como utilizar constraints, na prática!

Eu já mostrei para vocês o que são as constraints e agora vou te mostrar na prática como elas funcionam.

Uma constraint nada mais é do que uma restrição, ou seja, vamos fazer restrições em dados para que o usuário só possa colocar um determinado tipo de informação, ou não deixar a informação vazia…

A ideia é que você especifique qual o tipo de informação vai ter, se pode deixar em branco, se tem opções específicas…

Isso tudo é para evitar problemas dentro da sua base de dados, dessa forma você não vai ter problemas na hora de fazer sua análise de dados e pode definir exatamente quais informações colocar em cada coluna.

Como Utilizar Constraints, na Prática?

Vamos fazer passo a passo para você entender a estrutura em que devemos usar as constraints, o primeiro passo é ter um banco de dados para fazer os exemplos.

Outro ponto é que estou usando o SQL Server para esse exemplo, se você quiser usar também e ainda não fez a instalação, vou deixar uma aula em que explico como fazer a instalação passo a passo também.

1. Crie uma tabela que armazena informações de CARROS:

— ID_CARRO, PLACA, MODELO, TIPO (‘Hatch’, ‘Sedan’, ‘SUV’). Utilize as constraints certas para cada coluna da tabela

Criando o banco de dados:

CREATE DATABASE Teste -> Selecione e execute

USE Teste -> Selecione e execute

--Criando a tabela de carros

CREATE TABLE Carro(

        id_carro INT NOT NULL, -> observe que colocamos na linha a coluna o tipo se número INT ou texto VARCHAR e o tipo da restrição

        placa VARCHAR(50) NOT NULL,

        modelo VARCHAR(50) NOT NULL,

        tipo VARCHAR(50) NOT NULL,

        CONSTRAINT carro_placa_un UNIQUE(placa), -> colocamos mais restrições organizadas aqui -> nome da constraint/qual a constraint(coluna)/

        CONSTRAINT carro_tipo_ck CHECK(tipo IN ('Hatch', 'Sedan', 'SUV')),

        CONSTRAINT carro_id_carro_pk PRIMARY KEY(id_carro)

)

Agora temos uma tabela muito mais robusta e menos suscetível a erros, selecione todo o código e execute a tabela. Observe que construindo as constraints acima usamos alguns filtros, se você não assistiu à aula explicando cada filtro vou deixar aqui o link para você.

Feito isso você já pode utilizar o Select.

CREATE TABLE Carro(

        id_carro INT NOT NULL, -> observe que colocamos na linha a coluna o tipo se número INT ou texto VARCHAR e o tipo da restrição

        placa VARCHAR(50) NOT NULL,

        modelo VARCHAR(50) NOT NULL,

        tipo VARCHAR(50) NOT NULL,

        CONSTRAINT carro_placa_un UNIQUE(placa), -> colocamos mais restrições organizadas aqui -> nome da constraint/qual a constraint(coluna)/

        CONSTRAINT carro_tipo_ck CHECK(tipo IN ('Hatch', 'Sedan', 'SUV')),

        CONSTRAINT carro_id_carro_pk PRIMARY KEY(id_carro)

)

SELECT * FROM Carro

Se você executar vai ver que a tabela ainda não tem nenhum valor, vamos inserir valores na tabela.

Inserindo valores na tabela

INSERT INTO Carro(id_carro, placa, modelo, tipo)

VALUES

        (1, 'ABC-1111', 'Chevrolet Onix', 'Sedan'),

        (2, 'DEF-2222', 'Hyundai HB20', 'Hatch'),

        (3, 'GHI-3333', 'Citroen Cactus', 'SUV')

SELECT * FROM Carro

Selecione e execute o código acima, com ele estamos inserindo informações na tabela.

Novamente se você quiser saber mais afundo sobre o comando INSERT INTO, clique no link da aula e aprenda com mais detalhes!

Resultado

constrain na pratica 2

Nós definimos que nenhuma das colunas da nossa tabela devem ter valores nulos (NOT NULL), como podemos conferir e ver se a regra está sendo aplicada?

Teste 1: Constraint NOT NULL

INSERT INTO Carro(id_carro, placa, modelo)

VALUES (4, ‘XXX-9999’, ‘Carro Teste’)

Observe que o teste não possui um dos valores, neste caso está faltando o valor da coluna Tipo e quando selecionarmos e rodarmos vai resultar em um erro.

A forma correta possui a coluna tipo e o valor correspondente a ela, ex:

INSERT INTO Carro(id_carro, placa, modelo, tipo)

VALUES (4, ‘XXX-9999’, ‘Carro Teste’, ‘SUV’)

Se a tabela tivesse sido criada sem o NOT NULL você não teria recebido a mensagem de erro e o valor iria ficar faltando, por este motivo utilizar as constraints deixa a tabela mais robusta e confiável.

Vamos fazer o mesmo teste tentando violar as constraints UNIQUE e CHECK

Teste 2: Constraint UNIQUE

INSERT INTO Carro(id_carro, placa, modelo, tipo)

VALUES (5, ‘XXX-2222’, ‘Renault Logan’, ‘Sedan’)

Essa constraint não permite valores repetidos, neste caso estamos tentando inserir na tabela um carro com uma placa igual a outro carro que já havíamos informado.

Novamente vamos ter um erro como resultado, os erros são muito claros de entender e isso é uma vantagem também:

constrain na pratica 3

Teste 3: Constraint CHECK

INSERT INTO Carro(id_carro, placa, modelo, tipo)

VALUES (6, ‘ZZZ-0000’, ‘Fiat Toro’, ‘4×4’)

Para testar a constraint CHECK vamos tentar adicionar um carro que não está a nossa lista de modelos permitidos (4×4).

Resultado

constrain na pratica 1

Conclusão – Constraints no SQL

Nessa aula eu te mostrei o que são as Constraints no SQL, como elas funcionam, qual a utilidade delas, quais são os tipos e ainda te mostrei como você pode utilizá-las na prática.

O nome constraints pode ser um pouco estranho, mas aposto que você já viu essas restrições em diversos lugares, até mesmo em sites onde você vai colocar um CPF, telefone, e-mail ou coisas do tipo.

Geralmente colocam restrições para que você insira as informações corretas, pois isso pode atrapalhar na hora da análise da base de dados.

Então se você reduzir o erro de entrada a sua base de dados vai ter menos erros e você garante que suas análises serão mais acertivas.

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador