31.01.2025

Como limitar no MySQL?

Introdução

 

Chave primária

Uma das limitações da função de exibição para identificar valores na tabela - Chave primária. Ela representa uma lista de regras unificada e abstrata, que ajuda a criar relações com diferentes tabelas por meio do uso de chave estrangeira. Os valores devem ser exclusivos e não NULL. Por exemplo, imagine que temos uma loja on-line e precisamos numerar nossos clientes, que podem ter o mesmo nome, data de nascimento e outros dados pessoais. Nesse caso, usaremos essa limitação para identificar o cliente necessário:

CREATE TABLE client (
identificator INT NOT NULL AUTO_INCREMENT,
first_name VARCHAR(30) NOT NULL,
PRIMARY KEY (identifier, first_name)
);

Criamos a tabela clientcom as colunas identificator e first_name e, a seguir, escrevemos o parâmetro PRIMARY KEY e as colunas identificate para isso. Para testar como isso funciona, nosso gerente ou sistema adiciona dados com dois clientes:

INSERT INTO client (identificator, first_name) VALUES ('1', 'Loren');

E o segundo cliente pelo comando manual:

INSERT INTO client (identificator, first_name) VALUES ('2', 'Sara');

Vejamos o que obtemos no resultado dessa manipulação:

SELECT * FROM client;

Agora, todos os registros nessas colunas são identificadores e exclusivos. Se o nosso gerente tentar publicar novos dados com o mesmo nome ou ID, ele receberá uma mensagem de erro:

Screenshot №3 - Error message

É uma restrição importante nos sistemas e aplicativos modernos, onde precisamos salvar dados pessoais, informações sobre pagamentos bancários e outras informações confidenciais, o sistema deve funcionar corretamente! Se quiser remover a PRIMARY KEY, você precisa escrever:

ALTER TABLE client DROP PRIMARY KEY;

Esse comando exclui a chave de sua tabela!

UNIQUE & NOT NULL

Na próxima restrição, faça uma distinção com o método descrito acima. UNIQUE garante que todos os registros da coluna terão um valor exclusivo! Já criamos a tabela e agora precisamos modificá-la, adicionando um novo parâmetro:

ALTER TABLE client ADD COLUMN email VARCHAR (31) NOT NULL UNIQUE;

Verifique o formato da tabela usando o comando descrito anteriormente:

DESC client;

A primeira chave UNIQUE será transformada em PRIMARY KEY, se ainda não existir, devido à necessidade de identificar cada linha. Nesse caso, você precisa adicionar a primária conforme descrito acima ou criar outra coluna com a chave UNIQUE:

ALTER TABLE client ADD COLUMN email_reserv VARCHAR (31) NOT NULL UNIQUE;

E mostrar o formato na tabela:

DESC client;

Screenshot №4 - UNIQUE key

Como você pode ver acima, na primeira tabela a chave é PRIVATE, mas também adicionamos outra coluna e o valor da chave foi definido como UNIQUE. Dê uma olhada no nosso exemplo, gerente, e tente novamente adicionar a mesma coluna de e-mail que eles escrevem:

INSERT INTO client (id, email, email_reserv) VALUES ('1', 'email@mail.com', 'reserv_email@mail.com');

E a segunda linha duplicada:

INSERT INTO client (id, email, email_reserv) VALUES ('2', 'email@mail.com', 'reserv_email@mail.com');

Screenshot №5 - Duplicate row

Isso ajuda a salvar a integridade, evitar problemas no sistema e aumentar o desempenho do banco de dados.

Nos dois últimos métodos, não falamos sobre outra limitação - NOT NULL. A célula no banco de dados deve ter determinado tipo ou valor, mas há situações em que identificamos valores no processo de trabalho do sistema.

Importante agora! NULL não representa valor 0, é literalmente o vazio. Na comparação, você pode imaginar uma rolha, que tem propriedades próprias, mas não é um valor!

DEFAULT & CHECK

Continue e dê uma olhada nas limitações dos valores DEFAULT e CHECK. Eles executam funções que também são atribuídas com seus nomes. DEFAULT destina-se a gravar um valor preparado antecipadamente quando a célula no BD não recebe dados, o que ajuda a evitar problemas e a definir o valor padrão. CHECK representa uma lista de regras para filtrar a entrada de dados; se eles se enquadrarem nas regras, serão inseridos; de outra forma, serão negados. Em nossa loja, não podemos vender nosso produto para crianças e adolescentes, então precisamos adicionar uma regra de filtragem e, por padrão, o valor será dezoito:

ALTER TABLE client ADD COLUMN age INT CHECK (age BETWEEN 18 AND 65) DEFAULT 18;
DESC client;

Screenshot №6 - Format table

Para verificar as regras de filtragem aplicadas, podemos inserir dados e veremos o resultado:

INSERT INTO client (id, email, email_reserv) VALUES ('4', 'mail.com', 'mail.gg');
DESC client;

E mostre a entrada de dados pelo comando:

SELECT * FROM client

Screenshot №7 - DEFAULT

Na tabela, aparece a entidade com id quatro e a idade padrão indicada, o que ajuda a evitar o mesmo problema descrito acima do campo vazio, que pode afetar o sistema. Mas se não correspondermos aos parâmetros, o sistema não poderá adicionar a linha à tabela:

INSERT INTO client (id, email, email_reserv) VALUES ('4', 'mail.com', 'mail.gg', '5')

Screenshot №8 - Erro

Se criarmos um sistema ou programa de informações, poderemos identificar o problema pelo ID ou código de erro.

Conclusão

A imposição de limitações de dados em um sistema de gerenciamento de banco de dados é uma prática crucial para manter a qualidade dos dados, a segurança do sistema e a confiabilidade geral do sistema. Ao implementar essas limitações, você pode criar aplicativos robustos e seguros que gerenciam e protegem os dados com eficiência.