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>
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.
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.
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.
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...