MySQL Básico - O comando CREATE TABLE - Criando tabelas

29/03/2006 14:40:00

Autor: Rondinely S. de Almeida


Serviços para Webmasters

Podemos manipular o banco de dados MySQL de diversas formas, entre elas com o utilitário de linha de comando mysql, que se encontra no diretório /bin da instalação do banco de dados. Outras formas seriam através de IDEs ou MySQL Management (Gerenciadores do MySQL). Recomendamos o uso junto ao PHP do phpMyAdmin como MySQL Management.

Mas para esta série de artigos vamos lançar mão do utilitário de linha de comando:

Acesse no prompt o diretório mysql/bin e execute mysql

Caso você tenha definido uma senha para o usuário root deve usar a seguinte linha de comando:


/mysql/bin/mysql -u root -p

Será solicitado a senha e depois o console do mysql será exibido.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 70 to server version: 4.0.20a-nt-max Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>

O primeiro passo é criar uma base de dados. A síntese do MySQL para criação de base de dados é a seguinte: CREATE DATABASE [IF NOT EXISTS] nome_bd.

No MySQL 5 tivemos uma pequena alteração, agora temos mais opções na criação: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [ create_specification [, create_specification ] ...]

Como nosso artigo tem o objetivo de abordar conceitos básicos, vamos estudar aqui apenas a sintese do MySQL 4 ou inferior.

O parâmetro opcional [IF NOT EXISTS] permite que executemos o comando de criação da base de dados sem termos a certeza de que a mesma já não existe. Caso a base de dados já exista, o comando é ignorado.

O nome da nova base de dados será determinado pelo parâmetro nome_db e deve seguir as regras de permissão de nomes do MySQL conforme tabela abaixo:

Identificador Tam. máx. (bytes) Caracteres permitidos
Banco de dados 64 Qualquer caractere que é permitido em um nome de diretório exceto ‘ / ' ou ‘ . '.
Tabela 64 Qualquer caractere permitido em um nome de arquivo, exceto ‘ / ' ou ‘ . '.
Coluna 64 Todos os caracteres.
Alias 255 Todos os caracteres.

Note que em adição ao mostrado acima, você não pode ter ASCII(0) ou ASCII(255) ou o caracter de citação (aspas) em um identificador. Por outro lado os identificadores podem ter nomes de palavras reservadas, neste caso temos que nos referencias a eles com o do caracter `.



 mysql> SELECT * FROM `select` WHERE `select`.id > 100;

Vamos então criar a nossa base de dados de exemplo. Vamos chama-lá de LOCADORA.

mysql> create database if not exists locadora;
Query OK, 1 row affected (0.03 sec) mysql>
Năo deixe de ver também:

O nome de uma base de dados no MySQL representa um diretório dentro do diretório de dados do MySQL.

Logo a base de dados que acabamos de criar ficará localizada em algo como: /mysql/data/locadora

Vamos agora dar uma olhada em todas as bases de dados a que temos acesso no MySQL. O comando que nos mostra isto é: SHOW DATABASES;

mysql> show databases;
+-------------------+
| Database |
+-------------------+
| locadora |
| test |
+-------------------+
2 rows in set (0.00 sec) mysql>

Neste exemplo temos duas base de dados disponíveis: locadora, que acabamos de criar; e test.

SHOW DATABASES Exibe os nomes das bases de dados de um determinado banco de dados.

Para podermos começar a trabalhar com nossa base de dados devemos avisar ao MySQL que vamos usá-la. O comando para isto é: USE nome_db;

mysql> use locadora;
Database changed
mysql>

A partir de agora todos os comandos executados afetarão a base de dados locadora.

USE Indica que iremos trabalhar com uma determinada base de dados.

Veremos agora como criar as tabelas, onde os dados serão armazanados.

A síntese de criação de tabelas do MySQL é a seguinte:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nome_tabela [(definição_create,...)] [table_options] [select_statement]

Novamente podemos nos valer do parâmetro opcional IF NOT EXISTS para executarmos o comando sem termos certeza da existencia ou não da tabela.

Para criarmos uma tabela bastariamos executar a seguinte parte da síntese: CREATE TABLE nome_tabela.

Mas é mais comum criarmos a tabela já acompanhada de seus campos (fields). Vamos criar no nosso exemplo a tabela filmes com os seguintes campos:

id - campo de identificação;
titulo - titulo do filme;
ano - Ano de produção;
diretor - diretor do filmes;

Para isto devemos executar o seguinte comando:

mysql> create table filmes (
-> id int(10) unsigned not null auto_increment,
-> titulo varchar(80) not null,
-> ano int(4) unsigned not null,
-> diretor varchar(80) not null,
-> primary key (id));
Query OK, 0 rows affected (0.14 sec) mysql>

Os campos são definidos da seguinte forma:

nome_campo tipo [ NULL | NOT NULL ] [ DEFAULT valor_padrão] [ AUTO_INCREMENT ]

No campo id por exemplo o tipo é int(10) com o modificador unsigned, ele não aceita valores nulos (not null) e é auto_increment, ou seja, seu valor é definido automaticamente, aumentando de 1 (um) em 1 (um) toda vez que um novo registro é adicionado. Para fazer uso desta funcionalidade é necessário adicionar o valor 0 ou null neste campo.

No campo titulo escolhemos o tipo varchar(80) o que significa que este campo aceita caracteres alfanuméricos num máximo determinado por nós de 80. O campo também não pode ser nulo.

Artigos relacionados

MySQL Básico - O comando DELETE - Excluindo dados : 19/07/2006
Neste artigo demonstraremos como excluir registros em tabelas no banco...

MySQL Básico - O comando UPDATE - Atualizando dados : 15/05/2006
Neste artigo demonstraremos como atualizar dados em tabelas no banco de...

MySQL Básico - O comando SELECT - Realizando consultas : 20/04/2006
Neste artigo demonstraremos como realizar consultas em uma tabela no banco...

MySQL Básico - O comando INSERT - Inserindo dados : 19/04/2006
Neste artigo demonstraremos como inserir dados em uma tabela MySQL, veremos...