Para garantir a integridade dos dados em um sistema, criar restrições irá garantir informações íntegras pois as restrições em tabelas exige que as informações sejam validadas por determinadas regras antes de serem gravadas no banco, impedindo o armazenamento de dados inconsistentes.
Principais restrições:
🎯 Primary Key: Cria um índice interno para os campos e restringe valores duplicados. Atua como chave nos relacionamentos.
🎯 Not Null: Impede que valores nulos sejam atribuídos as colunas da tabela.
🎯 Check: Aplica restrições de limite de valores nas colunas, impedindo que dados diferentes dos definidos, sejam armazenados.
🎯 Default: Define um valor padrão para uma coluna que será usado quando nenhum valor é especificado durante a inserção de dados.
🎯 Unique Key: Exige que os valores das colunas sejam únicos sem precisar pertencer à chave primária. Se for o caso, pode aceitar valores nulos.
🎯 Foreign Key: Define uma relação entre duas tabelas, garantindo a integridade referencial entre elas.
Exemplo prático de algumas restrições em sqlserver:
CREATE TABLE dbo.Empregado (
matricula INT NOT NULL,
CPF VARCHAR(11) NULL,
nome VARCHAR(80) NOT NULL,
data_admissao DATE NOT NULL,
observacao TEXT NULL,
pais VARCHAR(50) DEFAULT 'Brasil' CHECK (pais IN ('Brasil', 'Itália', 'Inglaterra')),
sexo CHAR(1) CHECK (sexo IN ('F', 'M')),
email VARCHAR(100) UNIQUE,
PRIMARY KEY (matricula)
);
Para alterar uma restrição em uma tabela existente no SQL Server, você pode usar a declaração ALTER TABLE.
Ao criar a tabela pais estava com a restrição default, ou seja, se não tivesse input de nenhum dado, o próprio sgbd assume a palavra Brasil.
Após executar o comando abaixo, a coluna "pais" terá apenas a restrição UNIQUE. A restrição DEFAULT que estava previamente definida para a coluna "pais" será removida com a adição da restrição UNIQUE.
ALTER TABLE dbo.empregado
ADD UNIQUE (pais);