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: