Ao desenvolver um projeto de software, um dos aspectos mais importantes, fundamentais e intrínsecos é um esquema de banco de dados devidamente estruturado. É o equivalente a quando construir uma casa, você precisa garantir que os alicerces sejam colocados corretamente, caso contrário, as chances de construir uma casa de qualidade são drasticamente reduzidas.
Surpreendentemente mais fácil do que se poderia pensar, vamos aprender as várias facetas usadas para escrever um esquema de banco de dados bem arquitetado.
Sintaxe CREATE TABLE
Para começar, abra seu favorito editor de texto. A criação de um esquema de banco de dados não requer nada mais do que um arquivo de texto simples. Um banco de dados consiste em várias tabelas, cada uma consistindo em colunas, e a sintaxe CREATE TABLE é usada para criar uma única tabela. Aqui está um exemplo básico:
CRIAR usuários TABLE (
id INT NÃO NULO,
is_active TINY INT NOT NULL,
full_name VAR CHAR (100) NÃO NULO,
email VARCHAR (100) NOT NULL
);
Como você pode ver, isso criará uma tabela de banco de dados chamada
Comercial que consiste em quatro colunas. Esta deve ser uma instrução SQL bastante direta começando com CRIAR A TABELA, seguido pelo nome das tabelas do banco de dados e, entre parênteses, as colunas da tabela separadas por uma vírgula.Use os tipos de coluna corretos
Conforme mostrado acima, as colunas em que a tabela consistirá são separadas por vírgulas. Cada definição de coluna é composta pelas três mesmas partes:
COL_NAME TIPO [OPÇÕES]
O nome da coluna, seguido pelo tipo de coluna e, a seguir, quaisquer parâmetros opcionais. Entraremos nos parâmetros opcionais mais tarde, mas concentrando-nos no tipo de coluna, a seguir lista os tipos de coluna mais comumente usados disponíveis:
Para todos os efeitos, os tipos de coluna acima são tudo o que você precisa para escrever esquemas de banco de dados mySQL bem construídos.
Definir opções de coluna
Ao definir colunas, também existem várias opções que você pode especificar. Abaixo está outro exemplo do CRIAR A TABELA demonstração:
CRIAR usuários TABLE (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nome de usuário VARCHAR (100) NOT NULL UNIQUE,
status ENUM ('ativo', 'inativo') NÃO NULO DEFAULT 'ativo',
saldo DECIMAL (8,2) NÃO NULO PADRÃO 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
A descrição acima pode parecer um pouco assustadora, mas não se preocupe, é bastante simples. Detalhado, aqui está o que está acontecendo na declaração acima:
- Você deve sempre usar NOT NULL em todas as colunas possíveis para ajudar na velocidade e desempenho da tabela. Isso simplesmente especifica que a coluna não pode ser deixada vazia / nula quando uma linha é inserida.
- Sempre tente manter o tamanho da coluna tão pequeno quanto realisticamente possível, pois isso ajuda a melhorar a velocidade e o desempenho.
- O eu ia coluna é um número inteiro, é também a chave primária da tabela, o que significa que é única, e aumentará em um cada vez que um registro for inserido. Isso geralmente deve ser usado em todas as tabelas que você cria para que você possa referenciar facilmente qualquer linha única dentro da tabela.
- O status coluna é um ENUM e deve ter um valor de "ativo" ou "inativo". Se nenhum valor for especificado, uma nova linha começará com o status de "ativo".
- O Saldo coluna começa em 0 para cada nova linha e é um valor formatado com duas casas decimais.
- O data de nascimento coluna é simplesmente uma DATA, mas também permite um valor nulo, pois a data de nascimento pode não ser conhecida no momento da criação.
- Por último, o criado em coluna é um TIMESTAMP e o padrão é a hora atual quando a linha foi inserida.
O exemplo acima é um exemplo de uma tabela de banco de dados bem estruturada e deve ser usado como exemplo no futuro.
Uma das maiores vantagens de usar bancos de dados relacionais, como mySQL é o seu excelente suporte para restrições de chave estrangeira e cascateamento. Isso ocorre quando você vincula duas tabelas por uma coluna, formando um relacionamento pai-filho, de modo que, quando a linha pai é excluída, as linhas filho necessárias também são excluídas automaticamente.
Aqui está um exemplo:
CRIAR usuários TABLE (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nome de usuário VARCHAR (100) NOT NULL UNIQUE,
full_name VARCHAR (100) NÃO NULO,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) motor = InnoDB;
CRIAR pedidos de TABELA (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
ID do usuário INT NÃO NULO,
quantidade DECIMAL (8,2) NÃO NULO,
product_name VARCHAR (200) NOT NULL,
FOREIGN KEY (userid) REFERÊNCIAS usuários (id) ON DELETE CASCADE
) motor = InnoDB;
Você notará a cláusula FOREIGN KEY como a última linha. Esta linha simplesmente afirma que esta tabela contém linhas filhas que são vinculadas pelo ID do usuário coluna para sua linha pai, que é o eu ia coluna do Comercial tabela. O que isso significa é que sempre que uma linha é excluída do Comercial tabela, mySQL excluirá automaticamente todas as linhas correspondentes do ordens tabela ajudando a garantir a integridade estrutural em seu banco de dados.
Observe também o motor = InnoDB no final da declaração acima. Embora InnoDB agora seja o tipo de tabela mySQL padrão, nem sempre foi, então isso deve ser adicionado apenas para ficar no lado seguro, já que o cascateamento só funciona com tabelas InnoDB.
Projete com confiança
Agora você está no caminho certo para arquitetar esquemas de banco de dados mySQL sólidos e bem estruturados. Usando o conhecimento acima, você agora pode escrever esquemas bem organizados que fornecem desempenho e integridade estrutural.
Com seu esquema implementado, certifique-se de saber como usá-lo com esses comandos SQL essenciais.
Aprenda como usar junções SQL para agilizar consultas, economizar tempo e fazer você se sentir um usuário avançado de SQL.
- Não especificado
Assine a nossa newsletter
Junte-se ao nosso boletim informativo para dicas técnicas, análises, e-books grátis e ofertas exclusivas!
Mais um passo…!
Confirme o seu endereço de e-mail no e-mail que acabamos de enviar.