16. Verificações (CHECK)

Escrito por Uianes Luiz Rockenbach Biondo.
Última atualização em 04 out. 2023

Anteriormente, já foi demonstrada a utilização das restrições NOT NULL, UNIQUE, PRIMARY KEY e FOREIGN KEY. A restrição CHECK realiza uma verificação para determinados valores, ou seja, o CHECK limita os valores que determinado atributo pode receber. Sua sintaxe é a seguinte:

CHECK (condição)

Os tipos de operações que podemos realizar em "condição" são:

= Igual a
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
<> Diferente de

Ou seja, podemos determinar que determinado atributo somente será gravado no banco de dados se o valor for maior que, maior ou igual a, menor que, menor ou igual a, ou diferente de determinado número, ou data/hora. Podemos utilizar os operadores de igualdade e diferença para checar textos.

Exemplos de utilização na hora de criar uma tabela:

CREATE TABLE Aluno(
aluno_id INT(4) NOT NULL AUTO_INCREMENT,
idade INT(3) NOT NULL CHECK(idade > 0),
nota FLOAT NOT NULL CHECK(nota <= 10),
data_nascimento DATE NOT NULL CHECK(data_nascimento <= '2023-07-25'),
nome VARCHAR(100) NOT NULL CHECK(nome <> 'Uianes'),
PRIMARY KEY(aluno_id)
);

E para adicionar uma verificação em uma tabela já existe:

ALTER TABLE nomeTabela
ADD CONSTRAINT nomeCheck CHECK(atributo operador valor);

Exemplo:

ALTER TABLE Aluno
ADD CONSTRAINT testeIdade CHECK(idade >= 1);

E para adicionar várias restrições em uma tabela já existe:

ALTER TABLE nomeTabela
ADD CONSTRAINT checkNome CHECK(atributo1 operador valor1 AND atributo2 operador valor2);

Utilizamos "AND" para unir diferentes condições. Há uma parte específica mais adiante para falar sobre AND, OR e NOT.

Para apagar uma limitação é necessário que a restrição seja declarada através de CONSTRAINT com nome próprio, mesmo que seja somente para um atributo. Exemplo de criação:

ALTER TABLE nomeTabela
ADD CONSTRAINT checkNome CHECK(atributo1 operador valor1);

E para apagar:

ALTER TABLE nomeTabela
DROP CONSTRAINT checkNome;