Resumo : neste tutorial você aprenderá como usar a CREATE TABLE
instrução MySQL para criar uma nova tabela no banco de dados.
Introdução à instrução MySQL CREATE TABLE
A CREATE TABLE
instruçã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, comoINT
,VARCHAR
,DATE
, etc.constraints
: Estas são restrições opcionais , comoNOT NULL
, , e .UNIQUE
PRIMARY KEY
FOREIGN 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 EXISTS
opção.
No MySQL, cada tabela possui um mecanismo de armazenamento como InnoDB ou MyISAM. A ENGINE
clá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 TABLE
instruçã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 tasks
tabela possui quatro colunas:
- A
id
é uma coluna INT e serve como coluna de chave primária. - É
title
uma coluna VARCHAR e não pode ser NULL. - Os
start_date
eend_date
são a coluna DATE e podem ser NULL.
Para executar a CREATE TABLE
instrução:
Primeiro, faça login no servidor MySQL usando o comando mysql do seu terminal com uma conta que tenha CREATE
privilé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 test
banco de dados com o qual trabalhar:
USE test;
Linguagem de código: PHP ( php )
Depois disso, execute a CREATE TABLE
instruçã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 test
banco 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 tasks
que 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 checklists
com 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 checklists
possui 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 à id
coluna da tasks
tabela, portanto, utilizamos uma restrição de chave estrangeira para estabelecer esse relacionamento:
FOREIGN KEY (task_id)
REFERENCES tasks (id)
ON UPDATE RESTRICT
ON DELETE CASCADE
Linguagem 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 TABLE
a instrução para criar uma nova tabela.