CONSTRAINTS: MANUAL BÁSICO
- #SQL
Constraints são regras pré-definidas impostas às colunas de uma tabela. São usadas para controlar os dados que são inseridos, sendo úteis tanto para linhas quanto para colunas.
Elas determinam o tipo de dados que poderão ser inseridos, garantindo assim a integridade do banco de dados e contribuindo para que os dados ali armazenados possam ser agrupados e propiciem análises e utilização para diversos fins.
As constraints podem ser especificadas no momento da criação das tabelas, porém, caso seja necessário, estas regras podem ser adicionadas posteriormente, utilizando o comando `ALTER`.
Principais constraints no MySQL :
1. PRIMARY KEY
Define uma coluna (ou conjunto de colunas) como identificador exclusivo para cada linha da tabela.
Não permite valores nulos e não permite duplicatas.
CREATE TABLE employees (
id INT NOT NULL,
name VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
);
2. FOREIGN KEY
Estabelece uma relação entre duas tabelas, vinculando uma coluna em uma tabela a uma PRIMARY KEY (ou UNIQUE) em outra tabela.
Ajuda a manter a integridade referencial.
CREATE TABLE employees (
id INT NOT NULL,
department_id INT,
name VARCHAR(50),
PRIMARY KEY (id),
FOREIGN KEY (department_id) REFERENCES departments(id)
);
3. UNIQUE
Garante que todos os valores em uma coluna (ou combinação de colunas) sejam únicos.
Permite valores nulos, mas apenas um **NULL** por coluna.
CREATE TABLE users (
id INT NOT NULL,
email VARCHAR(100) NOT NULL,
UNIQUE (email)
);
4. NOT NULL
Garante que uma coluna não aceite valores nulos (**NULL**).
CREATE TABLE orders (
order_id INT NOT NULL,
product_name VARCHAR(100) NOT NULL
);
5. DEFAULT
Define um valor padrão para a coluna quando nenhum valor for especificado na inserção.
CREATE TABLE products (
id INT NOT NULL,
name VARCHAR(50),
price DECIMAL(10, 2) DEFAULT 0.00
);
6. CHECK (Introduzido no MySQL 8.0.16)
Restringe os valores que podem ser inseridos em uma coluna com base em uma condição lógica.
CREATE TABLE employees (
id INT NOT NULL,
age INT,
CHECK (age >= 18)
);
7. AUTO_INCREMENT
Usada para gerar valores únicos automaticamente para colunas, geralmente em conjunto com PRIMARY KEY.
CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT,
order_date DATE NOT NULL,
PRIMARY KEY (order_id)
);
8. INDEX
Não é exatamente uma "*constraint*", mas é usado para melhorar a performance de consultas.
Pode ser usado em colunas com **UNIQUE** ou **PRIMARY KEY**.
CREATE TABLE products (
id INT NOT NULL,
name VARCHAR(100),
price DECIMAL(10, 2),
INDEX (name)
);




Olá, pessoal da DIO Community,
Primeiramente, obrigada pelo feedback!
Utilizando as constraints , o que considerei mais complexo foi realizar a combinação de duas ou mais constraints. Caso não exista um adequado planejamento para criar estes relacionamentos, as constraints podem se comportar de maneira inesperada.
Um exemplo é a utilização das constraints NOT NULL e UNIQUE, onde se determina que cada valor deve ser único e nunca nulo, como no exemplo abaixo:
Neste caso apresentado, não é possível inserir um usuário sem fornecer um
email. Se for necessário cadastrar mais de um usuário com o mesmo e-mail, inviabilizará o cadastro.Parabéns pelo artigo, Kelly! A importância do uso de constraints é um tema essencial, e você conseguiu explicá-lo de forma clara e prática. Esse tipo de conteúdo é fundamental para quem está começando ou deseja aprimorar suas habilidades em modelagem de banco de dados.
Um dos grandes pontos fortes do seu artigo é como você abordou o conceito de constraints com exemplos básicos, facilitando o entendimento de sua aplicação no dia a dia. Além disso, enfatizar boas práticas no uso dessas restrições ajuda a evitar erros e a garantir a integridade dos dados, algo indispensável em qualquer projeto.
Na sua opinião, qual constraint você considera mais desafiadora de implementar corretamente e por quê?