16. Verificações (CHECK)
Ú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;