Prévia do material em texto
Aula 6 — Constraints no SQL Server (Completa) Quando a gente cria uma tabela, não basta apenas definir os tipos de dados. Precisamos também dizer para o banco quais são as regras que os dados precisam seguir. Essas regras são chamadas de CONSTRAINTS. Pensa nas constraints como "guardinhas" que ficam vigiando os dados e impedem que a gente cometa erros bobos, como cadastrar um pedido para um cliente que não existe, deixar o campo de e-mail vazio, ou permitir preços negativos. 1. Tipos principais de CONSTRAINTS no SQL Server Nome Função PRIMARY KEY Define a chave primária FOREIGN KEY Garante integridade entre tabelas UNIQUE Garante que não haverá valores repetidos NOT NULL Campo obrigatório CHECK Cria regras de validação DEFAULT Define valores padrão 2. PRIMARY KEY (Chave Primária) Garante que cada registro da tabela será único. Nenhum valor pode ser nulo (automaticamente aplica NOT NULL). Só pode existir uma primary key por tabela. CREATE TABLE Clientes ( ClienteID INT PRIMARY KEY, Nome VARCHAR(100) NOT NULL ); 3. FOREIGN KEY (Chave Estrangeira) Liga uma tabela à outra. Garante que o valor existe na tabela referenciada. Evita registros órfãos. CREATE TABLE Vendas ( VendaID INT PRIMARY KEY, ClienteID INT, FOREIGN KEY (ClienteID) REFERENCES Clientes(ClienteID) ); Tradução simples: Só posso gravar uma venda para um ClienteID que já existe na tabela Clientes. 4. UNIQUE (Valor Único) Garante que os valores dessa coluna não se repitam. CREATE TABLE Clientes ( ClienteID INT PRIMARY KEY, Email VARCHAR(150) UNIQUE ); Agora o mesmo e-mail não pode ser cadastrado para dois clientes. Importante: Pode ter várias UNIQUE em uma mesma tabela. UNIQUE não implica NOT NULL (a menos que você coloque junto). 5. NOT NULL (Campo Obrigatório) Garante que o campo precisa ser preenchido. CREATE TABLE Clientes ( ClienteID INT PRIMARY KEY, Nome VARCHAR(100) NOT NULL ); Se tentar cadastrar um cliente sem nome, o SQL Server não deixa. 6. CHECK (Validação de valores permitidos) Permite criar regras personalizadas para os dados. CREATE TABLE Produtos ( ProdutoID INT PRIMARY KEY, Preco DECIMAL(10,2) CHECK (Preco >= 0) ); CREATE TABLE Enderecos ( EnderecoID INT PRIMARY KEY, Estado CHAR(2) CHECK (LEN(Estado) = 2) ); 7. DEFAULT (Valor padrão automático) Preenche automaticamente um valor caso o usuário não informe. CREATE TABLE Clientes ( ClienteID INT PRIMARY KEY, DataCadastro DATE DEFAULT GETDATE() ); 8. Combinando Constraints As constraints podem ser usadas juntas na criação da tabela: CREATE TABLE Cursos ( CursoID INT PRIMARY KEY, NomeCurso VARCHAR(100) UNIQUE NOT NULL, Preco DECIMAL(10,2) CHECK (Preco >= 0) NOT NULL, DataCadastro DATE DEFAULT GETDATE() ); 9. Por que isso é tão cobrado em entrevistas? Entende como proteger a qualidade do banco. Sabe como evitar problemas de integridade. Pensa em modelagem sólida, não só em “rodar query”. Mostra conhecimento de arquitetura de dados profissional. 10. Resumão Visual das CONSTRAINTS Constraint Função PRIMARY KEY Identifica cada linha de forma única FOREIGN KEY Liga tabelas entre si UNIQUE Não permite duplicatas NOT NULL Obriga preenchimento CHECK Valida regras específicas DEFAULT Preenche automaticamente um valor Prontinho! Agora você domina as principais regras de integridade de dados no SQL Server!