ConstraintsSQL
Check Constraint é usado para especificar um predicado que cada tuple deve satisfazer em uma determinada relação. Ela limita os valores que uma coluna pode conter em uma relação.

  • O predicado na restrição de verificação pode conter uma subconsulta.
  • A restrição de verificação definida em um atributo restringe o intervalo de valores para esse atributo.
  • Se o valor sendo adicionado a um atributo de um tuple viola a restrição de verificação, a restrição de verificação é avaliada como falsa e a atualização correspondente é abortada.
  • A restrição de verificação é geralmente especificada com o comando CREATE TABLE em SQL.

Syntax:

CREATE TABLE pets( ID INT NOT NULL, Name VARCHAR(30) NOT NULL, Breed VARCHAR(20) NOT NULL, Age INT, GENDER VARCHAR(9), PRIMARY KEY(ID), check(GENDER in ('Male', 'Female', 'Unknown')) );

Note: A restrição de verificação no comando SQL acima restringe o GENDER a pertencer apenas às categorias especificadas. Se um novo tuple é adicionado ou um tuple existente na relação é atualizado com um GENDER que não pertence a nenhuma das três categorias mencionadas, então a atualização do banco de dados correspondente é abortada.

Query

Constraint: Somente estudantes com idade >= 17 anos podem se matricular em uma universidade.
Esquema para banco de dados de estudantes na universidade:

CREATE TABLE student( StudentID INT NOT NULL, Name VARCHAR(30) NOT NULL, Age INT NOT NULL, GENDER VARCHAR(9), PRIMARY KEY(ID), check(Age >= 17) );

Relação estudantil:

ID do estudante Nome Idade Gênero
1001 Ron 18 Male
1002 Sam 17 Male
1003 Geórgia 17 Feminino
1004 Erik 19 Desconhecido
1005 Cristina 17 Feminino

Explicação: Na relação acima, a idade de todos os alunos é maior que 17 anos, de acordo com a restrição mencionada na declaração de verificação no esquema da relação. Se, entretanto, a seguinte instrução SQL for executada:

INSERT INTO student(STUDENTID, NAME, AGE, GENDER) VALUES (1006, 'Emma', 16, 'Female');

Não haverá nenhuma atualização do banco de dados e como a idade < 17 anos.

Diferentes opções para usar a restrição de verificação:

  • Com alter: A restrição de verificação também pode ser adicionada a uma relação já criada usando a sintaxe:
    alter table TABLE_NAME modify COLUMN_NAME check(Predicate);
  • Dando um nome de variável para a restrição de verificação:As restrições de verificação podem receber um nome de variável usando a sintaxe:
    alter table TABLE_NAME add constraint CHECK_CONST check (Predicate);
  • Retirar restrição de verificação: A restrição de verificação pode ser removida da relação no banco de dados do servidor SQL usando a sintaxe:
    alter table TABLE_NAME drop constraint CHECK_CONSTRAINT_NAME;
  • Restrição de verificação de gota: A restrição de verificação pode ser removida da relação no banco de dados no MySQL usando a sintaxe:
    alter table TABLE_NAME drop check CHECK_CONSTRAINT_NAME;

Este artigo é contribuído por Mayank Kumar. Se você gosta do GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo usando contribute.geeksforgeeks.org ou enviar seu artigo por e-mail para [email protected]. Veja o seu artigo que aparece na página principal do GeeksforGeeks e ajude outros Geeks.

.

Deixe uma resposta

O seu endereço de email não será publicado.