Como criar banco de dados em MySQL (Criar MySQL Tabelas)

⚡ Resumo Inteligente

Criando um banco de dados em MySQL segue dois caminhos comprovados: executar uma instrução CREATE DATABASE ou gerar esquemas físicos a partir de um modelo ER por meio de MySQL Engenharia direta em bancada de trabalho. Ambas as abordagens produzem tabelas idênticas, prontas para produção.

  • 🗄️ Criação de banco de dados: Execute os comandos CREATE DATABASE movies ou CREATE SCHEMA, que MySQL trata como sinônimo.
  • 🛡️ Repetições Seguras: Adicione a condição IF NOT EXISTS para que um script repetido ignore a criação em vez de gerar um erro de nome duplicado.
  • 🌐 Conjunto de caracteres: Escolha utf8mb4 com utf8mb4_0900_ai_ci para dados multilíngues; latin1 com latin1_swedish_ci é adequado para esquemas legados somente em inglês.
  • 🧱 Criação de tabela: O comando CREATE TABLE define o nome de cada campo, o tipo de dados, a CHAVE PRIMÁRIA e o mecanismo de armazenamento, normalmente o InnoDB.
  • 🔢 Tipos de dados: Os tipos de coluna se dividem em famílias numéricas, de texto e de data ou hora, além de variantes ENUM, SET, BOOL e binárias.
  • ⚙️ Engenharia Avançada: MySQL O Workbench converte um modelo ER aprovado em scripts SQL executáveis ​​e os envia para um servidor em produção.

Etapas para criar banco de dados em MySQL

Um banco de dados em MySQL é um contêiner nomeado para tabelas, visualizações e objetos relacionados. Você pode criar um de duas maneiras:

1) Executando uma consulta SQL simples

2) Usando engenharia avançada em MySQL Workbench

As SQL iniciante, vamos examinar primeiro o método de consulta.

Como criar banco de dados em MySQL

Veja como criar um banco de dados em MySQL:

CREATE DATABASE é o comando SQL usado para criar um banco de dados em MySQL.

Imagine que você precisa criar um banco de dados com o nome “filmes”. Você pode criar um banco de dados em MySQL executando o seguinte comando SQL.

CREATE DATABASE movies;

Observação: você também pode usar o comando CREATE SCHEMA em vez de CREATE DATABASE.

A instrução funciona apenas uma vez. Executá-la novamente gera um erro, então vamos melhorar a consulta com mais parâmetros.

SE NÃO EXISTE

Uma única MySQL Um servidor pode hospedar vários bancos de dados. Quando várias pessoas compartilham esse servidor, você pode tentar criar um banco de dados com o nome de um banco de dados existente.

SE NÃO EXISTE instrui o MySQL O servidor verifica se já existe um banco de dados com o mesmo nome antes de criá-lo. O banco de dados só é criado se o nome estiver disponível; sem essa condição, MySQL lança um erro.

CREATE DATABASE IF NOT EXISTS movies;

Uma vez que o nome do banco de dados esteja seguro, a próxima decisão é como. MySQL deve armazenar e comparar o texto dentro dele.

Agrupamento e conjunto de caracteres

A conjunto de caracteres decide quais caracteres uma coluna pode armazenar, enquanto um colação é o conjunto de regras usadas na comparação e classificação. Ambos podem ser definidos em quatro níveis: servidor, banco de dados, tabela e coluna.

A ordenação que você escolher depende do conjunto de caracteres. Por exemplo, o conjunto de caracteres latin1 usa o latin1_swedish_ci colação, que é a ordem sueca que não diferencia maiúsculas de minúsculas.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci;

Para idiomas locais como árabe ou chinês, selecione o Unicode. utf8mb4 Conjunto de caracteres, que armazena todos os caracteres Unicode, incluindo emojis. MySQL 8.0, utf8mb4 é o conjunto de caracteres padrão e utf8mb4_0900_ai_ci a ordenação padrão.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

Você pode encontrar a lista de todos os agrupamentos e conjuntos de caracteres aqui..

Você pode visualizar a lista de bancos de dados existentes executando o seguinte comando SQL.

SHOW DATABASES;

Com o banco de dados configurado, você agora pode adicionar as tabelas que efetivamente armazenarão os registros.

Como criar uma tabela em MySQL

O comando CREATE TABLE é usado para criar tabelas em um banco de dados.

Criar tabela em MySQL

Como mostra o diagrama, cada tabela pertence a um banco de dados. As tabelas são criadas com o CRIAR TABELA declaração, que possui a seguinte sintaxe.

CREATE TABLE [IF NOT EXISTS] `TableName` (`fieldname` dataType [optional parameters]) ENGINE = storage Engine;

AQUI

  • O comando “CREATE TABLE” é responsável pela criação da tabela no banco de dados.
  • “[IF NOT EXISTS]” é opcional e só cria a tabela se nenhum nome de tabela correspondente for encontrado.
  • “`fieldName`” é o nome do campo e “data Type” define a natureza dos dados armazenados nele.
  • “[parâmetros opcionais]” são informações adicionais sobre um campo, como “AUTO_INCREMENT” ou NOT NULL.
  • O "mecanismo de armazenamento" gerencia a tabela, normalmente InnoDB, que suporta transações e chaves estrangeiras.

MySQL Exemplo de criação de tabela

Abaixo está uma MySQL Exemplo de como criar uma tabela em um banco de dados:

CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (
  `membership_number` INT AUTO_INCREMENT ,
  `full_names` VARCHAR(150) NOT NULL ,
  `gender` VARCHAR(6) ,
  `date_of_birth` DATE ,
  `physical_address` VARCHAR(255) ,
  `postal_address` VARCHAR(255) ,
  `contact_number` VARCHAR(75) ,
  `email` VARCHAR(255) ,
  PRIMARY KEY (`membership_number`) )
ENGINE = InnoDB;

Observação: o correto MySQL palavra-chave é AUTO_INCREMENT com um sublinhado. AUTOINCREMENT pertence a SQLite e gera um erro de sintaxe em MySQL.

Cada coluna contém um tipo de dado, portanto, escolha com cuidado: não subestime nem superestime o intervalo de dados esperado.

MySQL Tipos de dados

Os tipos de dados definem a natureza dos dados que podem ser armazenados em uma coluna específica de uma tabela.

MySQL tem 3 principais categorias de tipos de dados, a saber:

  1. Numérico
  2. Texto
  3. Data hora

Tipos de dados numéricos

Os tipos de dados numéricos são usados ​​para armazenar valores numéricos. É muito importante garantir que o intervalo dos seus dados esteja entre os limites inferior e superior do tipo de dados numérico escolhido.

TINYINT( ) -128 a 127 normais
0 a 255 NÃO ASSINADO.
PEQUENO( ) -32768 a 32767 normais
0 a 65535 NÃO ASSINADO.
MÉDIO( ) -8388608 a 8388607 normais
0 a 16777215 NÃO ASSINADO.
INT( ) -2147483648 a 2147483647 normais
0 a 4294967295 NÃO ASSINADO.
GRANDE( ) -9223372036854775808 a 9223372036854775807 normais
0 a 18446744073709551615 NÃO ASSINADO.
FLOAT Um pequeno número aproximado com um ponto decimal flutuante.
DOBRO( , ) Um número grande com um ponto decimal flutuante.
DECIMAL( , ) Um valor DOUBLE armazenado como uma string, permitindo um número decimal fixo. Ideal para armazenar valores monetários.

Tipos de dados de texto

Como o próprio nome da categoria de tipo de dados indica, estes são usados ​​para armazenar valores de texto. Certifique-se sempre de que o comprimento dos seus dados textuais não exceda o comprimento máximo da coluna.

CARACTERES( ) Uma seção fixa de 0 a 255 caracteres.
VARCHAR( ) Uma seção variável de 0 a 255 caracteres.
TEXTO MINÚSCULO Uma string com comprimento máximo de 255 caracteres.
TEXTO Uma string com comprimento máximo de 65535 caracteres.
BLOB Uma string com comprimento máximo de 65535 caracteres.
TEXTO MÉDIO Uma string com comprimento máximo de 16777215 caracteres.
MÉDIO BLOBO Uma string com comprimento máximo de 16777215 caracteres.
TEXTO LONGO Uma string com comprimento máximo de 4294967295 caracteres.
LOBO LONGO Uma string com comprimento máximo de 4294967295 caracteres.

Tipos de dados de data e hora

Os tipos de dados de data e hora armazenam valores de calendário e relógio em um formato fixo, o que mantém a classificação e a comparação confiáveis.

INFORMAÇÃO AAAA-MM-DD
DATETIME AAAA-MM-DD HH: MM: SS
TIMESTAMP AAAAMMDDHHMMSS
DE ESPERA HH: MM: SS

Outros tipos de dados

Além dos mencionados acima, existem outros tipos de dados em MySQL.

ENUM Para armazenar um valor de texto escolhido a partir de uma lista de valores de texto predefinidos.
SET Isto também é usado para armazenar valores de texto escolhidos em uma lista de valores de texto predefinidos. Pode ter vários valores.
BOOL Sinônimo de TINYINT(1), usado para armazenar valores booleanos
BINARY Semelhante ao CHAR; a diferença é que os textos são armazenados em formato binário.
VARBINÁRIO Semelhante ao VARCHAR; a diferença é que os textos são armazenados em formato binário.

Agora, vejamos uma consulta para criar uma tabela que utiliza todos os tipos de dados. Analise-a e identifique como cada tipo de dado é definido na consulta de criação de tabela abaixo. MySQL exemplo.

CREATE TABLE `all_data_types` (
    `varchar` VARCHAR( 20 )  ,
    `tinyint` TINYINT  ,
    `text` TEXT  ,
    `date` DATE  ,
    `smallint` SMALLINT  ,
    `mediumint` MEDIUMINT  ,
    `int` INT  ,
    `bigint` BIGINT  ,
    `float` FLOAT( 10, 2 )  ,
    `double` DOUBLE  ,
    `decimal` DECIMAL( 10, 2 )  ,
    `datetime` DATETIME  ,
    `timestamp` TIMESTAMP  ,
    `time` TIME  ,
    `year` YEAR  ,
    `char` CHAR( 10 )  ,
    `tinyblob` TINYBLOB  ,
    `tinytext` TINYTEXT  ,
    `blob` BLOB  ,
    `mediumblob` MEDIUMBLOB  ,
    `mediumtext` MEDIUMTEXT  ,
    `longblob` LONGBLOB  ,
    `longtext` LONGTEXT  ,
    `enum` ENUM( '1', '2', '3' )  ,
    `set` SET( '1', '2', '3' )  ,
    `bool` BOOL  ,
    `binary` BINARY( 20 )  ,
    `varbinary` VARBINARY( 20 )
) ENGINE = MYISAM;

Melhores práticas para criar um MySQL banco de dados

Algumas convenções mantêm seus scripts legíveis:

  • Use letras maiúsculas para palavras-chave SQL, por exemplo, “DROP SCHEMA IF EXISTS `MyFlixDB`;”
  • Termine todos os seus comandos SQL usando ponto e vírgula.
  • Evite usar espaços em nomes de esquemas, tabelas e campos. Em vez disso, use sublinhados para separar nomes de esquemas, tabelas ou campos.
  • Prefira o InnoDB ao MyISAM para novas tabelas, pois o InnoDB oferece suporte a transações, bloqueio em nível de linha e chaves estrangeiras.

O método de consulta está completo. A segunda rota acessa o mesmo banco de dados a partir de um modelo visual, em vez de SQL escrito manualmente.

Como Criar MySQL Diagrama ER da bancada de trabalho - Engenharia direta

MySQL Workbench tem utilitários que dão suporte à engenharia avançada. Engenharia avançada é o termo técnico que descreve o processo de traduzir um modelo lógico em uma implementação física automaticamente.

Nós criamos um Diagrama ER no nosso artigo Modelagem de ER Lição. Agora usaremos esse modelo ER para gerar os scripts SQL que criarão nosso banco de dados.

Criando o banco de dados MyFlix a partir do modelo MyFlix ER

Passo 1) Abra o modelo ER do banco de dados MyFlix. que você criou anteriormente.

Etapa 2) Selecione o engenheiro avançado

Clique no menu Banco de Dados e selecione Engenheiro Avançado.

Selecione o engenheiro de ponta em MySQL Workbench

Etapa 3) Opções de conexão

A próxima janela permite que você se conecte a uma instância de MySQL servidor. Clique na lista suspensa de conexões armazenadas e selecione host local. Clique em Executar.

Opções de conexão no assistente de engenharia avançada

Passo 4) Selecione as opções mostradas abaixo.

Selecione as opções mostradas abaixo no assistente que aparece. Clique em Avançar.

Opções de engenharia de ponta para o banco de dados MyFlix

Passo 5) Mantenha as seleções padrão e clique em Próximo.

A próxima tela mostra o resumo dos objetos em nosso diagrama EER. Nosso banco de dados MyFlix possui 5 tabelas. Mantenha as seleções padrão e clique em Avançar.

Resumo dos objetos no diagrama EER do MyFlix

Passo 6) Revveja o script SQL

A janela abaixo exibe uma pré-visualização do script SQL que cria nosso banco de dados. Salve o script em um arquivo *.sql ou copie-o para a área de transferência e clique em Avançar.

Pré-visualização do script SQL gerado

Etapa 7) Confirme o progresso

A janela abaixo aparece assim que o banco de dados é criado no local selecionado. MySQL Instância do servidor. As tabelas do modelo ER agora existem fisicamente no servidor.

janela de progresso de commit de engenharia direta

O banco de dados, juntamente com dados fictícios, está anexado. Usaremos este banco de dados nas próximas lições. Basta importá-lo em MySQL Ambiente de trabalho para começar.

Clique aqui para baixar MyFlixDB

Perguntas Frequentes

Não há diferença em MySQLCREATE SCHEMA é um alias para CREATE DATABASE, e ambos criam o mesmo objeto. Em outros sistemas, como OracleUm esquema e um banco de dados continuam sendo conceitos separados.

Execute o comando DROP DATABASE IF EXISTS movies; a partir do cliente ou de MySQL WorkbenchO comando exclui permanentemente o banco de dados e todas as tabelas dentro dele, portanto, faça um backup primeiro.

A conta precisa do privilégio CREATE em nível global. Os administradores o concedem com o comando GRANT CREATE ON *.* TO 'user'@'localhost';. Sem esse privilégio, o servidor retorna um erro de acesso negado.

Sim. Os assistentes de IA transformam uma descrição simples das suas entidades em scripts CREATE TABLE com chaves e tipos de dados. Sempre revise os tipos, comprimentos e restrições gerados antes de executar o script em um servidor de produção.

Os recursos de IA em clientes de banco de dados modernos leem o seu Diagrama ER ou consultar o histórico e sugerir correções de normalização, candidatos a índices e correções de tipos de dados. As sugestões aceleram as revisões de design, mas um humano ainda aprova cada alteração.

Resuma esta postagem com: