Introdução ao CREATE TABLE no MySQL
A instrução CREATE TABLE é um comando essencial no MySQL usado para criar novas tabelas em um banco de dados. As tabelas são fundamentais para armazenar e organizar dados de forma estruturada, permitindo a criação de relações e a execução de consultas eficientes. Com o comando CREATE TABLE, você define a estrutura de uma tabela, especificando seus campos, tipos de dados, restrições e outras características.
Estrutura Básica da Sintaxe
A sintaxe básica da instrução CREATE TABLE é a seguinte:
CREATE TABLE [IF NOT EXISTS] table_name(
column1 datatype constraints,
column2 datatype constraints,
...
) ENGINE=storage_engine;
Nesta sintaxe de exemplo temos:
- 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: são restrições opcionais, como NOT NULL, UNIQUE, PRIMARY KEY e FOREIGN KEY.
- ENGINE: permite especificar o tipo de mecanismo de armazenamento de armazenamento da tabela, como InnoDB ou MyISAM.
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 opção IF NOT EXISTS.
No MySQL, cada tabela possui um mecanismo de armazenamento como InnoDB ou MyISAM. A cláusula ENGINE permite especificar o mecanismo de armazenamento da tabela.
Vejamos neste exemplo a criação da tabela Persons:
CREATE TABLE Persons(
PersonID INT PRIMARY KEY,
FirstName varchar(255),
LastName varchar(255),
Docnum varchar(255),
Email VARCHAR(255) NOT NULL,
Address varchar(255),
City varchar(255),
Birthday DATE,
Enabled BOOLEAN NOT NULL DEFAULT FALSE
) ENGINE=MyISAM;
Opcionalmente pode ser adicionada a verificação da existencia da tabela adicionando a instrução IF NOT EXISTS, como mostrado a seguir:
CREATE TABLE IF NOT EXISTS Persons(
PersonID INT PRIMARY KEY,
FirstName varchar(255),
LastName varchar(255),
Docnum varchar(255),
Email VARCHAR(255) NOT NULL,
Address varchar(255),
City varchar(255),
Birthday DATE,
Enabled BOOLEAN NOT NULL DEFAULT FALSE
) ENGINE=MyISAM;