MySQL CRIAR TABELA

Resumo : neste tutorial você aprenderá como usar a CREATE TABLEinstrução MySQL para criar uma nova tabela no banco de dados.

Introdução à instrução MySQL CREATE TABLE

A CREATE TABLEinstrução permite criar uma nova tabela em um banco de dados.

O seguinte ilustra a sintaxe básica da CREATE TABLE  instrução:

CREATE TABLE [IF NOT EXISTS] table_name(
   column1 datatype constraints,
   column1 datatype constraints,
) ENGINE=storage_engine;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • table_name: Este é o nome da tabela que você deseja criar.
  • column1, column2, etc.: Os nomes das colunas da tabela.
  • datatype: os dados de cada coluna, como INT, VARCHAR, DATE, etc.
  • constraints: Estas são restrições opcionais , como NOT NULL, , e .UNIQUEPRIMARY KEYFOREIGN KEY

Se você criar uma tabela com um nome que já existe no banco de dados, receberá um erro. Para evitar o erro, você pode usar a IF NOT EXISTSopção.

No MySQL, cada tabela possui um mecanismo de armazenamento como InnoDB ou MyISAM. A ENGINEcláusula permite especificar o mecanismo de armazenamento da tabela.

Se você não especificar explicitamente um mecanismo de armazenamento, o MySQL usará o mecanismo de armazenamento padrão que é o InnoDB.

InnoDB se tornou o mecanismo de armazenamento padrão a partir do MySQL versão 5.5. O mecanismo de armazenamento InnoDB oferece diversas vantagens de um sistema de gerenciamento de banco de dados relacional, incluindo suporte a transações ACID, integridade referencial e recuperação de falhas. Nas versões anteriores, o MySQL usava MyISAM como mecanismo de armazenamento padrão.

Exemplos de instruções MySQL CREATE TABLE

Vejamos alguns exemplos de criação de novas tabelas.

1) Exemplo básico de instrução CREATE TABLE

O exemplo a seguir usa a CREATE TABLEinstrução para criar uma nova tabela chamada tasks:

CREATE TABLE tasks (
    id INT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    start_date DATE,
    due_date DATE
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A taskstabela possui quatro colunas:

  • A idé uma coluna INT e serve como coluna de chave primária.
  • É titleuma coluna VARCHAR e não pode ser NULL.
  • Os start_datee end_datesão a coluna DATE e podem ser NULL.

Para executar a CREATE TABLEinstrução:

Primeiro, faça login no servidor MySQL usando o comando mysql do seu terminal com uma conta que tenha CREATEprivilégios:

mysql -u root -p

Ele solicitará a senha:

Enter password: ********

Em seguida, crie um novo banco de dados chamado test:

CREATE DATABASE test;

Se o banco de dados já existir, você pode eliminá-lo antes de executar a instrução acima:

DROP DATABASE test;

Em seguida, selecione o testbanco de dados com o qual trabalhar:

USE test;Linguagem de código:  PHP  ( php )

Depois disso, execute a CREATE TABLEinstrução:

CREATE TABLE tasks (
    id INT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    start_date DATE,
    due_date DATE
);Linguagem de código:  PHP  ( php )

Por fim, liste todas as tabelas do testbanco de dados:

SHOW TABLES;

Saída:

+----------------+
| Tables_in_test |
+----------------+
| tasks          |
+----------------+
1 row in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Mostra a tabela tasksque criamos.

2) Criando uma tabela com um exemplo de chave estrangeira

Suponha que cada tarefa tenha uma lista de verificação. Para armazenar os checklists de tarefas, você pode criar uma nova tabela checklistscom o seguinte nome:

CREATE TABLE checklists(
  id INT, 
  task_id INT, 
  title VARCHAR(255) NOT NULL, 
  is_completed BOOLEAN NOT NULL DEFAULT FALSE, 
  PRIMARY KEY (id, task_id), 
  FOREIGN KEY (task_id) 
      REFERENCES tasks (id) 
      ON UPDATE RESTRICT 
      ON DELETE CASCADE
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A tabela checklistspossui uma chave primária que consiste em duas colunas. Portanto, precisamos usar uma restrição de tabela para definir a chave primária :

PRIMARY KEY (id, task_id)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Além disso, task_idé a coluna de chave estrangeira que faz referência à idcoluna da taskstabela, portanto, utilizamos uma restrição de chave estrangeira para estabelecer esse relacionamento:

FOREIGN KEY (task_id) 
    REFERENCES tasks (id) 
    ON UPDATE RESTRICT 
    ON DELETE CASCADELinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Observe que você aprenderá mais sobre a restrição de chave estrangeira aqui .

Resumo

  • Use CREATE TABLEa instrução para criar uma nova tabela.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *