MySQL – Criação de Tabelas – CREATE TABLE – 07
Declaração CREATE TABLE – criando tabelas no MySQL
Para criar tabelas em um banco de dados, usamos a declaração CREATE TABLE. Veja a sintaxe abaixo:
CREATE TABLE [IF NOT EXISTS] nome_tabela ( coluna tipo_dados constraints coluna tipo_dados constraints coluna tipo_dados constraints ... );
Note que precisamos especificar, além do nome da tabela, os nomes das colunas que a comporão e também seus respectivos tipos de dados, além das eventuais constraints.
Tipos de Dados no MySQL
A tabela abaixo resume os tipos de dados mais comuns no MySQL, que podem ser usados na criação de tabelas, para estabelecer o tipo de cada coluna:
Tipo | Descrição |
INT | Inteiros entre -2,147,483,648 e 2,147,483,647 |
TINYINT | Números inteiros de -128 a 127 |
SMALLINT | Números inteiros de -32768 a 32767 |
MEDIUMINT | Números inteiros de -8388608 a 8388607 |
BIGINT | Números entre -9,223,372,036,854,775,808 e 9,223,372,036,854,775,807 |
DECIMAL(M,D) | Ponto decimal com M dígitos no total (precisão) e D casas decimais (escala); o padrão é 10,0; M vai até 65 e D até 30. |
FLOAT(M,D) | Ponto flutuante com precisão M e escala D; o padrão é 10,2; D vai até 24. |
CHAR(M) | String que ocupa tamanho fixo entre 0 e 255 caracteres |
BOOL / BOOLEAN | Valores binários 0 / 1; Na verdade, é um alias para o tipo TINYINT(1) |
VARCHAR(M) | String de tamanho variável, com até 65535 M caracteres. |
BLOB / MEDIUMBLOB/ TINYBLOB | Campo com tamanho máximo de 65535 caracteres binários; ‘Binary Large Objects’, são usados para armazenar grandes quantidades de dados, como imagens. |
MEDIUMTEXT | Permite armazenar até 16.777.215 caracteres. |
LONGTEXT | Permite armazenar até 4.294.967.295 caracteres. |
DATE | Uma data de 01/01/1000 a 31/12/9999, no formato YYYY-MM-DD |
DATETIME | Uma combinação de data e hora de 01/01/1000 00:00:00 a 31/12/9999 23:59:59, no formato YYYY-MM-DD HH:MM:SS |
TIME | Hora apenas, no formato HH:MM:SS |
YEAR(M) | Ano nos formatos de 2 ou 4 dígitos; Se forem 2 (YEAR(2)), ano vai de 1970 a 2069; para 4 (YEAR(4)), vai de 1901 a 2155. O padrão é 4. |
Vamos passar agora à criação de tabelas em nosso banco de dados db_biblioteca:
Criando tabelas no Banco de Dados
Primeiro vamos criar uma tabela para os livros, de nome tbl_livro. Usaremos o bloco de códigos a seguir:
USE db_Biblioteca; CREATE TABLE IF NOT EXISTS tbl_livro ( ID_Livro SMALLINT AUTO_INCREMENT PRIMARY KEY, Nome_Livro VARCHAR(70) NOT NULL, ISBN13 CHAR(13), ISBN10 CHAR(10), ID_Categoria SMALLINT, ID_Autor SMALLINT NOT NULL, Data_Pub DATE NOT NULL, Preco_Livro DECIMAL(6,2) NOT NULL );
Agora, vamos criar uma tabela para armazenar os dados dos autores:
CREATE TABLE tbl_autores ( ID_Autor SMALLINT PRIMARY KEY, Nome_Autor VARCHAR(50) NOT NULL, Sobrenome_Autor VARCHAR(60) NOT NULL );
Uma para armazenar as categorias de livros:
CREATE TABLE tbl_categorias ( ID_Categoria SMALLINT PRIMARY KEY, Categoria VARCHAR(30) NOT NULL );
E, por fim, criamos uma tabela para armazenar os dados das editoras:
CREATE TABLE tbl_editoras ( ID_Editora SMALLINT PRIMARY KEY AUTO_INCREMENT, Nome_Editora VARCHAR(50) NOT NULL );
As tabelas criadas ainda não estão relacionadas entre si. Mostraremos como realizar essa operação nas próximas lições.
Assista agora ao vídeo sobre criação de tabelas usando SQL:
Próximo: Auto Incremento de valores em colunas
Anterior: Constraints (Restrições), Primary Key (Chave Primária), Chave Estrangeira, Default, etc.
Cada aula, um novo aprendizado. Parabéns!!!
Obrigado Uhelliton!!!!!
Muito bom o seu material, está de parabéns!
Obrigado Jocimar!!!
Fábio, pf não pare com esse trabalho incrível! Ajuda muita gente! Parabéns!!
Pode deixar Alexandre, vamos continuar e expandir cada vez mais! Abraço!
Fábio eu usei o conteudo para adicionar os livros porem ele da erro dizendo que não tem o campo editora na tabela livro, pensei que pelo código iria direto para a tabela editora, me ajude
Luciano, poste aqui o código que você usou para criar as tabelas.
Bom dia, Fábio!
Tenho sempre acompanhado seus vídeos para finalidades diversas e sempre galgando êxito e atualmente me dedico no estudo para concursos públicos.
Na última prova que fiz me deparei com uma questão “devastadora” :-(.
Poderia me ajudar a compreendê-la??
Questão 02 da discursiva (pag. 15)
https://conhecimento.fgv.br/sites/default/files/concursos/analista_em_informaticampgons003_tipo_1.pdf