Criando tabelas

All lectures for PT purposes
Nível 1 , Lição 184
Disponível

Criação significativa de tabelas

Nas aulas anteriores já conhecemos um pouco as consultas para criação de tabelas, agora é hora de nos aprofundarmos nisso.

A criação de uma tabela é muito parecida com a declaração de uma classe em Java e possui este padrão:

CREATE TABLE table_name (
	column1 datatype,
	column2 datatype,
	column3 datatype,
   ....
);

Por exemplo, vamos escrever uma consulta que cria uma tabela com usuários:

CREATE TABLE user (
	id INT,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Parece muito simples, porque muitas nuances não são indicadas aqui.

Primeiro, a tabela pode ter configurações adicionais.

E em segundo lugar, cada coluna pode ter configurações adicionais.

E começaremos com as configurações para criar colunas.

Chaves na mesa

Além do nome e tipo de dados, uma coluna de tabela também pode ter as seguintes configurações:

CHAVE PRIMÁRIA A coluna é a chave da tabela
CHAVE ÚNICA Todos os valores de coluna devem ser únicos.
Valor padrão Valor padrão
NÃO NULO A proibição de aceitar o valor NULL
INCREMENTO AUTOMÁTICO O SQL Server incrementará automaticamente o valor quando um novo registro for adicionado à tabela
GERADO campo calculado
ARMAZENAR Onde armazenar os dados: no disco ou na memória
COMENTE Comentário da coluna, por exemplo, título no idioma local

A seguir veremos alguns deles.

Primeiro, é PRIMARY KEY .

Na maioria das vezes, essa é uma coluna separada com o nome id e o tipo INT. Esta é a chamada "chave mestra" da tabela e todas as suas linhas possuem valores exclusivos para esta chave. É usado principalmente para que outras tabelas possam se referir aos registros de nossa tabela e apontar para seu registro específico.

A segunda é a CHAVE ÚNICA .

De certa forma, é semelhante à PRIMARY KEY, embora sua carga semântica seja completamente diferente. Se uma coluna tiver o atributo UNIQUE, todos os valores dessa coluna devem ser exclusivos. Um bom exemplo da diferença entre UNIQUE KEY e PRIMARY KEY é a lista de pessoas no escritório de passaportes.

O número de contribuinte é uma CHAVE PRIMÁRIA, é utilizada para facilitar a referência à pessoa certa a partir de outras tabelas.

O número do passaporte é uma CHAVE ÚNICA. Duas pessoas não podem ter o mesmo número de passaporte. No entanto, o número do passaporte pode ser alterado. Por exemplo, ao alterar o sobrenome. E o número do imposto ficará com você para sempre. Esta é a principal tarefa da PRIMARY KEY. Um exemplo de consulta especificando a PRIMARY KEY:

CREATE TABLE user (
	id INT PRIMARY KEY,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Configurações de tipo de dados

Existem atributos menos importantes, mas úteis.

valor PADRÃO

Ao inserir dados (adicionar uma nova linha) em uma tabela, você pode deixar de fora os valores de algumas colunas se elas tiverem um valor padrão. Nesse caso, o servidor SQL simplesmente definirá o valor da própria coluna.

A partir da versão 8 do MySQL, você pode especificar uma expressão como um valor.

NÃO NULO

Se você especificar o atributo NOT NULL para uma coluna ao criar uma tabela, o SQL Server garantirá que seja impossível armazenar um valor NULL nessa coluna. Por padrão, qualquer coluna pode ter um valor NULL, mesmo uma coluna INT. O que não é óbvio para um programador Java.

INCREMENTO AUTOMÁTICO

Geralmente é usado para id de coluna. Ao adicionar uma nova linha a uma tabela, você realmente deseja que o servidor SQL atribua um id para essa entrada. Quem melhor que o servidor sabe quantas linhas ele tem na tabela. Especialmente se solicitações de clientes diferentes forem para o mesmo servidor SQL.

Isso é exatamente o que o atributo AUTO_INCREMENT faz. Ao adicionar uma nova linha, simplesmente não passamos nada como id, e o SQL server irá especificar o ID correto para este registro: simplesmente pegará o ID do último registro existente e aumentará em 1. Este atributo só pode ser usado com tipos inteiros e números reais. E, claro, vamos dar um exemplo de criação dessa tabela:

CREATE TABLE user (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(100) NOT NULL,
	level INT DEFAULT 1,
	created_date DATE NOT NULL,
);
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION