Como criar tabelas no MySQL

Neste post vou tentar mostrar objetivamente como criar tabelas em um banco de dados através da linha de comando do cliente MySQL.
Dada a grande quantidade de parâmetros aceitos, a declaração CREATE TABLE é uma das mais complexas no MySQL. Por isto vou procurar simplificar através de exemplos práticos — já pressupondo que você tenha privilégios para criar novas tabelas e saiba como criar bancos de dados. Ao final do texto, vou mostrar como criar tabelas em um script PHP.
Comece por selecionar o banco de dados dentro do qual uma nova tabela será criada:

USE nome_do_banco;

Sintaxe de CREATE TABLE

De acordo com a documentação da Oracle, a sintaxe mais simplificada é esta aqui:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)

As partes da declaração que se encontram entre [] (colchetes) são opcionais:

  • TEMPORARY – indica que a tabela criada será temporária, o que significa que ela expira assim que a sua sessão no MySQL terminar. Use-a sempre que estiver fazendo testes.
  • IF NOT EXISTS – verifica a prévia existência da tabela e evita uma interrupção do script, causada por erro.

Os nomes das tabelas são sensíveis à caixa (case sensitive). Ou seja, tbl_name e Tbl_Name são dois nomes totalmente diferentes pro MySQL.
Uma tabela é composta por uma ou mais colunas, cada qual com suas definições. Vamos ver, daqui pra frente, algumas formas de definir este item durante a criação da tabela

Exemplos de criação de tabelas no MySQL

Vou começar pela criação de uma agenda telefônica, como esta que você usa no celular e é armazenável no cartão SIM, que contenha apenas strings (cadeias de caracteres) curtas – nome e telefone:

CREATE TABLE contatos (
nome VARCHAR(50) NOT NULL,
telefone VARCHAR(25) NOT NULL
)ENGINE=CSV;

Note que a engine escolhida foi a CSV. Leia mais sobre mecanismos de armazenamento (storage engines), para saber entender mais sobre o assunto.
Verifique se a tabela foi criada:

SHOW TABLES;

Mysql tutorial - Create Table - Show Tables
Podemos melhorar um pouco mais a tabela contatos, ao acrescentar mais alguns campos, como sobrenome dos contatos, DDD, data de nascimento e email. Antes de criar uma nova tabela, com o mesmo nome, vamos remover a anterior:

DROP TABLE contatos;

Agora, vamos criar a nova tabela:

CREATE TABLE IF NOT EXISTS contatos (
nome VARCHAR(20),
sobrenome VARCHAR(30),
ddd INT(2),
telefone VARCHAR(9),
data_nasc DATE,
email VARCHAR(30)
)ENGINE=MyISAM;

Note que acrescentamos alguns outros itens a esta declaração:

  • Usar IF NOT EXISTS é uma boa prática dentro de scripts (veremos mais sobre isto, mais afrente);
  • Ao final do código, optamos por um outro mecanismo de armazenamento

Saiba mais:

Campos vazios, numeração automática e chave primária

Vou fazer uma apresentação rápida de alguns parâmetros que podem ser usados para melhorar a usabilidade e, mesmo, a segurança das tabelas criadas.

NOT NULL

Comumente, o desenvolvedor, ao projetar o banco de dados, não deseja que certos campos sejam deixados em branco, pelo usuário. Para evitar que isto ocorra, usa-se o parâmetro NOT NULL – o sistema irá retornar um erro, caso o usuário não preencha os campos configurados com este parâmetro.

AUTO_INCREMENT

Quando se quer aplicar uma ação a um determinado registro, na tabela, é importante que se encontre exatamente aquele que se quer, mesmo que haja 10 pessoas registradas com o mesmo nome e sobrenome. Apagar um registro errado, por exemplo, pode ser fonte para uma grande dor de cabeça.
Ter um campo de identificação única para cada registro pode prevenir este tipo de erro. É aí que entra o parâmetro AUTO_INCREMENT que pode ser usado para criar um campo numérico com uma identificação única e automática dentro da tabela.

PRIMARY KEY

O parâmetro PRIMARY KEY é usado para definir uma coluna como chave primária e ajudar a identificar um registro em relação aos outros dentro da tabela. Os valores de uma chave primária têm que ser únicos e não podem ser nulos. Pense na palavra inglesa primary com o significado de principal.
Vamos ver estes conceitos aplicados ao exemplo da tabela de contatos:

DROP TABLE contatos;
CREATE TABLE IF NOT EXISTS contatos (
id INT(5) AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(20) NOT NULL,
sobrenome VARCHAR(30) NOT NULL,
ddd INT(2),
telefone VARCHAR(9) NOT NULL,
data_nasc DATE,
email VARCHAR(30)
)ENGINE=MyISAM;

Veja abaixo o resultado que eu obtive:

DROP TABLE contatos;
Query OK, 0 rows affected (0.14 sec)

CREATE TABLE IF NOT EXISTS contatos (
    -> id INT(5) AUTO_INCREMENT PRIMARY KEY,
    -> nome VARCHAR(20) NOT NULL,
    -> sobrenome VARCHAR(30) NOT NULL,
    -> ddd INT(2),
    -> telefone VARCHAR(9) NOT NULL,
    -> data_nasc DATE,
    -> email VARCHAR(30)
    -> )ENGINE=MyISAM;
Query OK, 0 rows affected (0.10 sec)

show tables;
+--------------------+
| Tables_in_primeiro |
+--------------------+
| contatos           |
+--------------------+
1 row in set (0.00 sec)

Evite mensagens de erros, usando IF NOT EXISTS

Note que, ao executar este código, ele irá criar uma tabela, com o nome contatos se ela já não existir. O que significa que o script retornará uma mensagem de erro, se você recarregar a página, logo após tê-lo executado:
script php mysql criar tabela comando create table
Se você mudar a linha 14, acrescentando o parâmetro opcional IF NOT EXISTS, tal como vimos no começo deste texto, a mensagem de erro não será exibida e o script prosseguirá normalmente. Veja como:

$sqlcriatabela = "CREATE TABLE IF NOT EXISTS contatos (nome VARCHAR(50), telefone VARCHAR(25));";

Mas, neste caso, isto não seria útil.

Faça o trabalho com o PHP

Até aqui, você aprendeu a criar novas tabelas e alguns parâmetros relacionados a este comando, dentro da linha de comando do cliente MySQL. Espero ter conseguido demonstrar que, embora seja complexa (pela quantidade de recursos) a declaração CREATE TABLE não é, de modo algum, complicada.
Se estiver interessado em realizar a tarefa através da linguagem de programação PHP, leia este post — onde a construção do script em PHP é explicado com bastante detalhamento.

Tipos de dados do MySQL e MariaDB

Tipos de dados são uma forma de classificar as informações que serão armazenados no banco de dados.
Entender os tipos de dados que podem ser armazenados no banco e a que situações se adequam é importante para projetar um banco de dados o mais eficiente possível. Veja, a seguir, alguns dos tipos de dados mais comuns no MySQL, acompanhado de uma breve descrição.

Antes de definir exatamente o tipo de dado que você deseja definir, vale a pena prestar atenção nas seguintes diretrizes, para ajudar a ter melhores resultados:

  • os tipos de valores que podem ser usados;
  • que tamanhos podem ter
  • as operações que podem ser realizadas;
  • seus significados;
  • se podem/serão indexados
  • como devem ser armazenados etc.

Tipos de dados numéricos no MySQL

O MySQL tem todos os tipos numéricos possíveis, o que inclui exatos, aproximados, inteiros, de ponto fixo, ponto flutuante etc. A lista, abaixo, mostra um resumo dos tipos de dados possíveis no MySQL:

  • TINYINT — número inteiro muito pequeno (tiny);
  • SMALLINT — número inteiro pequeno;
  • MEDIUMINT — número inteiro de tamanho médio;
  • INT — número inteiro de tamanho comum;
  • BIGINT — número inteiro de tamanho grande;
  • DECIMAL — número decimal, de ponto fixo;
  • FLOAT — número de ponto flutuante de precisão simples (32 bits);
  • DOUBLE — número de ponto flutuante de precisão dupla (64 bits);
  • BIT — um campo de um bit.

Tipos de dados em strings

Strings são cadeias de caracteres. No MySQL, uma string pode ter qualquer conteúdo, desde texto simples a dados binários – tais como imagens e arquivos. Cadeias de caracteres podem ser comparadas e ser objeto de buscas.

  • CHAR — uma cadeia de caracteres (string), de tamanho fixo e não-binária;
  • VARCHAR — uma string de tamanho variável e não-binária;
  • BINARY — uma string binária de tamanho fixo;
  • VARBINARY — uma string binária de tamanho variável;
  • BLOB — um BLOB (Binary Large OBject – OBjeto Grande Binário) pequeno;
  • TINYBLOB — um BLOB muito pequeno;
  • MEDIUMBLOB — um BLOB de tamanho médio;
  • LONGBLOB — um BLOB grande;
  • TINYTEXT — uma string não-binária e de tamanho bem reduzido;
  • TEXT — uma string não-binária e pequena;
  • MEDIUMTEXT — uma string de tamanho comum e não-binária;
  • LONGTEXT — uma string não-binária de tamanho grande;
  • ENUM — de acordo com o manual do MySQL, é uma string, com um valor que precisa ser selecionado de uma lista predefinida na criação da tabela;
  • SET — é um objeto que pode ter zero ou mais valores – cada um dos quais precisa ser escolhido de uma lista de valores predeterminados quando da criação da tabela.

Armazenamento de data e hora

Há várias opções para armazenar dados relacionados a data e hora. Se você quiser apenas armazenar o ano referente a um evento, pode usar o tipo YEAR. O tipo TIMESTAMP pode ser usado para acompanhar as mudanças ocorridas em um campo de uma tabela. Veja os tipos e suas descrições:

  • DATE — o valor referente a uma data no formato 'CCYY-MM-DD'. Por exemplo 1985-11-25 (ano-mês-dia). O 'CC' se refere aos dois dígitos do século (Century, em inglês);
  • TIME — um valor horário no formato 'hh:mm:ss' (hora:minutos:segundos);
  • TIMESTAMP — timestamp é uma sequência de caracteres ou informação codificada que identifica uma marca temporal ou um dado momento em que um evento ocorreu. No MySQL, ele tem o formato 'CCYY-MM-DD hh:mm:ss' – neste caso, seguem a padronização ISO 8601;
  • YEAR — armazena um ano no formato 'CCYY' ou 'YY';

Dados espaciais

O MySQL tem suporte a tipos de dados que correspondem às classes OpenGIS. Alguns destes carregam valores geométricos simples:

  • GEOMETRY
  • POINT
  • LINESTRING
  • POLYGON

O GEOMETRY pode armazenar qualquer tipo de valor geométrico. Os outros valores simples (POINT, LINESTRING e POLYGON) têm seus valores restritos aos tipos geométricos a que se referem.
Os outros, que seguem listados, carregam valores relativos a coleções/coletivos:

  • GEOMETRYCOLLECTION
  • MULTILINESTRING
  • MULTIPOINT
  • MULTIPOLYGON

Assim, GEOMETRYCOLLECTION pode armazenar coletâneas de objetos de qualquer tipo. Os outros tipos coletivos (MULTILINESTRING, MULTIPOLYGON e GEOMETRYCOLLECTION) restringem-se a cada forma geométrica particular.

Mecanismos de armazenamento no MySQL ou Storage Engines

Tutorial Mysql - Storage Types - Mecanismos de armazenamentoEntenda os tipos de tabelas do MySQL ou os mecanismos de armazenamento (storage engines) e conheça os mais comuns.
O MySQL suporta diversos tipos de tabelas ou mecanismos de armazenamento. Ao entender os recursos presentes em cada tipo, você poderá criar e usar tabelas com maior eficiência e melhorar a performance de seus bancos de dados.
Neste texto, vou abordar 8 tipos de tabelas MySQL e explicar suas características, seus recursos, vantagens e desvantagens, no sentido de te ajudar a obter máxima eficiência e melhor performance do banco de dados.
Os mecanismos de armazenamento de dados são componentes de software dos bancos de dados que permitem criar, ler, atualizar e apagar dados do sistema.

MyISAM

O MyISAM estende os recursos do antigo ISAM. É otimizado para compressão, velocidade e as tabelas neste formato são portáveis entre várias plataformas e sistemas operacionais.
As tabelas neste formato, padrão até a versão 5.5, podem ter até 256 TB de tamanho – o que é um tamanho considerável. As tabelas MyISAM podem ser convertidas para tabelas comprimidas e somente leitura (read-only).
Ao iniciar, o sistema de banco de dados verifica as tabelas deste tipo e pode encontrar e corrigir setores defeituosos nas tabelas.
Este tipo é plenamente apropriado a ambientes com intensa leitura de dados e pouca escrita – melhor ainda, com nenhuma escrita. Sua principal deficiência é não ter suporte a transações e chaves estrangeiras.
Leia mais: No artigo “vantagens e desvantagens do MyISAM“, são delineados mais detalhadamente os casos em que este mecanismo de armazenamento é mais indicado ou não.

InnoDB

Este é, atualmente, o mecanismo padrão do MySQL. A Oracle é a mantenedora e dona do InnoDB (após ter adquirido, em 2005, a empresa responsável pelo seu desenvolvimento, a finlandesa Innobase Oy).
O banco de dados MariaDB e o Percona Server usam um fork deste mecanismo, chamado XtraDB – que costuma incorporar os novos recursos do InnoDB, tão logo eles sejam disponibilizados pela Oracle.
Entre seus recursos, cito o suporte total ao ACID, à transações, chaves estrangeiras, commit, rollback etc. Têm ótima performance e as tabelas neste mecanismo podem chegar a 64 Terabytes.
Tal como o seu antecessor, o InnoDB também é portável entre diferentes plataformas. E o MySQL também faz checagem e reparos nas tabelas, ao ser iniciado.
Resumindo, o InnoDB tem suporte a:

  • transações SQL e XA
  • tablespaces
  • chaves estrangeiras
  • indíces FULLTEXT
  • operações espaciais
  • colunas virtuais

MERGE

Trata-se de uma tabela virtual, que combina múltiplas tabelas MyISAM, que têm estruturas similares, em uma só tabela. A palavra inglesa merge pode ser usada com o significado de junção, mistura. Também é conhecido como mecanismo MRG_MyISAM. Uma vez que não tem seus próprios índices, este mecanismo usa os dos seus componentes.
Ao fazer uso deste mecanismo de armazenamento, você pode melhorar a performance da junção de várias tabelas. O MySQL só vai permitir as operações de SELECT, DELETE, UPDATE e INSERT em tabelas MERGE.
Se você executar o comando de remoção de tabela DROP TABLE, só as especificações MERGE serão removidas – as tabelas envolvidas “na mistura” não serão afetadas pela operação.

MEMORY (HEAP)

Este storage engine, que já foi conhecido como HEAP, cria tabelas com propósitos específicos, cujo conteúdo fica armazenado na memória.
Uma vez que os dados ficam muito vulneráveis a problemas de hardware, como oscilações na rede elétrica, é seguro usar este mecanismo apenas para tabelas temporárias, com restrições de escrita (que não podem ser alteradas) e com dados emprestados de outras tabelas.
A principal vantagem deste mecanismo é a agilidade com que se pode manipular os seus dados.

ARCHIVE

É otimizado para inserção ágil e rápida de grande quantidade de dados em arquivos comprimidos e não indexados, para economizar espaço.
Os registros são comprimidos ou descomprimidos sob demanda, à medida em que são inseridos ou requisitados.
CSV Storage Engine Mecanismo tipo de armazenamento

CSV

O mecanismo de armazenamento CSV (Comma Separated Values — valores separados por vírgulas)armazena os dados em arquivos de texto, separando os registros com vírgulas. Este é o mecanismo usado em listas de contatos do cartão SIM do seu celular:

"Odair José","1136789890"
"Reginaldo Rossi","8198786543"

É um padrão que ocupa pouquíssimo espaço, por sua simplicidade e tem maior compatibilidade com aplicativos tais como planilhas eletrônicas (Excel, LibreOffice etc).

FEDERATED

Ao criar uma tabela de dados com o uso de um dos mecanismos de armazenamento padrão (MyISAM, CSV ou InnoDB), o arquivo conterá uma definição de seu conteúdo e dados. Uma tabela FEDERATED consiste de uma definição dos dados que armazena – contudo, os seus dados estão fisicamente armazenados em um servidor remoto.
As tabelas deste mecanismo, consistem, portanto de 2 elementos:

  • um servidor remoto com uma tabela de banco de dados, contendo uma definição da tabela (em formato .frm) e a tabela à qual está associada. O tipo de tabela pode estar em qualquer formato que este servidor suporte;
  • um servidor local com uma tabela contendo uma definição que corresponde à da tabela no servidor remoto. Não há um arquivo de dados no servidor local – há uma conexão para a tabela no servidor remoto.

Blackhole

O mecanismo “buraco negro” aceita dados, mas não os armazena. Ao tentar recuperar os dados “armazenados”, você receberá sempre uma resposta vazia. Pode ser usado em projetos de bancos de dados distribuídos, onde estes são automaticamente replicados, mas não armazenados localmente.
É comum ser usado para rodar testes de performance.

LEIA MAIS
  • O MyISAM — Aplicabilidade, vantagens e desvantagens deste mecanismo de armazenamento.
  • Tipos de dados — Conheça os tipos que você pode usar nas tabelas.

Conclusão

Os formatos padrão, InnoDB e MyISAM, acabam por ser as escolhas mais seguras na grande maioria dos casos. Se houver necessidade de fazer transações, escolha o InnoDB (padrão nas versões atuais do MySQL). Em casos fora do comum, um destes outros mecanismos que você conheceu pode ser o mais adequado.

5 formas de silenciar a câmera do seu celular Android

Silencie a câmera do seu celular sem recorrer ao root. Quaisquer que sejam os seus motivos, se você quer desativar o som do obturador da câmera do seu celular, vou explicar aqui, de forma genérica, por que às vezes é tão difícil conseguir uma coisa tão simples e como contornar estas dificuldades com algumas soluções de fácil aplicação.
samsung galaxy s5 preto vista parcial da câmera e sensores

Por que o som da câmera de alguns celulares não pode ser desligado?

Há basicamente 2 motivos para isto:

  • Alguns países têm leis que obrigam os fabricantes a manter o som do obturador da câmera ligado
  • Algumas operadoras, como a Sprint norte-americana têm uma “política de privacidade” neste sentido e, portanto, removem a opção de silenciar o obturador da câmera nos aparelhos que comercializam.

    “A Sprint adotou, nos últimos anos, a política de requerer que o som do obturador da câmera não possa ser desligado pelo usuário final. Esta política se deve a questões de preservação da privacidade das pessoas ao redor de quem está usando o aplicativo nativo de câmera de um dos nossos celulares. Este é um exemplo do nosso compromisso com a privacidade das pessoas com relação ao uso de dispositivos móveis.
    Esta especificação não afeta aplicativos de terceiros que o usuário vier a baixar e usar no lugar do software de câmera nativo do seu aparelho.”

Uma vez estabelecidas “as culpas” por seu aparelho ser tão indiscreto, existe situações em que é perfeitamente legítimo querer mais discrição:

  • Você quer tirar apenas uma ou outra selfie — mas não deseja que todo mundo fique olhando para você, a cada clique,
  • Fotos de um bebê ou um animal de estimação dormindo — que você não deseja perturbar,
  • etc.
Confira algumas dicas, para tirar selfies mais caprichadas.
Confira algumas dicas, para tirar selfies mais caprichadas.

Desabilite o som do obturador no menu de configurações

Se você ainda não tentou, ligue a câmera do seu aparelho, clique no botão do menu de configurações e procure por Shutter sound, se estiver usando um aparelho Android no idioma Inglês. Em português, esta opção deverá estar parecida com “som da câmera”, se houver.

Silenciar som da câmera no menu de configurações do Galaxy S3
Clique para ampliar

Se o seu aparelho não tiver restrições, a opção de desligar o som da câmera deve estar lá, próximo a “Armazenamento” (Storage).
android desligar reiniciar
Clique para ampliar

Ponha o smartphone no modo silencioso

Se a solução anterior não funcionou, tenho outra que é simples e (quase) sempre funciona: Ponha o aparelho no modo silencioso.
Uma das maneiras de fazer isto, é manter apertada a tecla para diminuir o volume do celular, até que ele vibre, indicando que está mudo. Outra é manter pressionada a tecla “Power”, até que o menu pop up apareça e, selecionar o ícone “Silenciar” (mute), no canto inferior esquerdo.
Agora, abra o aplicativo de câmera e experimente tirar uma foto. Na maioria dos aparelhos, esta dica soluciona o problema.

reprodutor de video android
Clique para ampliar

LEIA MAIS

Use a gravação de vídeo

Alguns aparelhos costumam emitir um som ao iniciar a gravação de vídeo. Outros não. Mesmo os que emitem, costumam ser bem mais discretos que “o obturador” da câmera.
Novos aparelhos, equipados com as novas versões do Android, permitem tirar screenshots de trechos das filmagens. Ou seja, depois de ter filmado toda a cena que você desejava fotografar, reproduza o filme e clique na pequena câmera – na parte superior central da tela de exibição – assim que a reprodução chegar ao ponto desejado. Você pode repetir este procedimento quantas vezes quiser.

Tire fotos, enquanto filma

Uma solução similar, é usar o recurso de tirar snapshots enquanto você está filmando, como o Dumitru mostra no video abaixo. No caso, ele demonstrou o uso do recurso em um Samsung Galaxy S3 (veja se o seu aparelho não tem recurso semelhante):

Silencie a câmera com aplicativos de terceiros

Tal como o recado da Sprint sugeria, lá em cima, recorra a aplicativos de terceiros. Você pode baixar um software que silencie sua câmera, como o Silent Camera, no Google Play.
Experimente outros, antes de decidir.

Baixe um outro aplicativo para substituir a câmera nativa

A qualidade destes aplicativos não chega a ser tão boa quanto o padrão que vem de fábrica. Ainda mais depois da última atualização do Android, que aprimorou o recurso. Mas, enfim, um destes apps de câmera pode quebrar o seu galho.

Remova ou renomeie o arquivo de som da câmera

android tirar som câmera obturador
Clique para ampliar
Remover é muito radical, certo? Se o seu aparelho já foi rooteado, você pode renomear os arquivos que reproduzem sons durante a sessão de foto. Isto já será o suficiente. Se, mais tarde, você quiser voltar tudo ao que era, basta devolver o nome original a cada arquivo.
Neste caso, dirija-se ao diretório:
system/audio/UI
Localize os arquivos de som, que costumam ser os seguintes:

Auto_focus.ogg
Auto_focus_error.ogg
camera_click.ogg
Camera_click_short.ogg
Shutter.ogg
Shutter_multiple.ogg
VideoRecord.ogg

Renomeie todos ou apenas os que você quiser. Assim, o arquivo Shutter.ogg pode ser renomeado para Shutter.ogg.bak.
Isto basta para impedir que o sistema encontre o arquivo de som e o reproduza.

LEIA MAIS:

Conclusão

De todas as soluções apresentadas aqui, minhas duas favoritas são: colocar o dispositivo no modo silencioso antes de tirar as fotos. A outra é rootear o seu aparelho e renomear o arquivo de som, como solução definitiva.
Para tirar selfies discretas, experimente o Candy Camera, que tem opção “mudo” para o obturador.
E você? Conte como conseguiu resolver o problema.

MySQL – Introdução prática

Neste breve tutorial vou te passar o básico do gerenciamento de banco de dados no MySQL. Vou mostrar como criar novos bancos de dados, exibir os que estão instalados no servidor e removê-los — da maneira mais direta e prática possível

Leia mais:

O que é um banco de dados relacional — Se você quiser ter um pouco mais de background teórico sobre bancos de dados, eu recomendo a leitura deste texto.

Como criar um banco de dados no MySQL

Esta é uma das atividades básicas de um administrador de banco de dados e tudo começa com esta tarefa – depois da instalação, claro.
Um banco de dados é um container, onde se armazenam informações dos mais variados tipos – contatos, vendedores, produtos, clientes etc. Qualquer tipo de informação que te ocorrer, pode ser organizada em um banco de dados.
Organização é a palavra. Por que os dados não são “jogados ao léu”, neste container. Um banco de dados é uma coleção de objetos que são usados para armazenar e manipular dados, tais como tabelas, views, gatilhos (triggers), stored procedures etc.
Contudo, a esta altura, eu não tenho o menor interesse em atropelar o aprendizado. Se você se encontra nesta página, é por que deseja entender o básico – que, no caso da gestão de banco de dados, começa pela criação de um. Veja como:

CREATE DATABASE [IF NOT EXISTS] NomeDoBancoDeDados;

Vamos analisar o comando CREATE DATABASE, dado acima:

  • O comando CREATE DATABASE faz o que o seu significado, em inglês sugere: cria um banco de dados;
  • Embora eu use letras maiúsculas para representar os comandos no MySQL, isto não é necessário. O interpretador do cliente MySQL não é sensível à caixa das letras;
  • O nome do seu banco de dados deve refletir com clareza o seu conteúdo.
  • Ainda sobre a nomenclatura dos bancos de dados, cabe ressaltar que aqui o MySQL é sensível às caixas de texto, sim. Ou seja, concessionaria é uma coisa, Concessionaria é outra;
  • Por último, NÃO ESQUEÇA de sempre concluir os comandos MySQL com um ponto-e-vírgula. Sem isto, o interpretador não entende que você terminou de dar um comando e vai continuar a espera de “algo mais”.

O parâmetro IF NOT EXISTS (se não existir) é opcional – aliás, tudo o que eu escrever entre [], são parâmetros opcionais. Quando presente, o MySQL verifica se o nome escolhido pro seu banco de dados já não está sendo usado – uma vez que não é possível ter 2 bancos de dados com o mesmo nome em um servidor MySQL, o sistema retornaria um erro.
Veja, neste outro exemplo, como criar o banco de dados concessionaria

CREATE IF NOT EXISTS concessionaria;

Experimente criar outros bancos de dados, com outros nomes. Não precisa se preocupar com a “bagunça”. Vou ensinar a removê-los depois.

Como listar os bancos de dados criados no servidor

O comando SHOW DATABASE, serve para mostrar todos os bancos de dados presentes no servidor MySQL. Você o pode usar para verificar os bancos que você criou ou ver os que já existem, antes de sair por aí a criar novos. Ele funciona assim:

SHOW DATABASES;

Não esqueça de usar ponto-e-vírgula para finalizar os comandos, sempre.
No meu exemplo, é possível ver dois bancos de dados criados com “o mesmo nome”:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ConCessionarIA     |
| concessionaria     |
| db1                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
7 rows in set (0.00 sec)

Os bancos de dados information_schema e mysql são padrões e “nascem” junto com a instalação do sistema.

Como selecionar um banco de dados para trabalhar

Antes de começar a trabalhar em um banco de dados, é necessário selecioná-lo. Isto se faz assim:

USE nome-do-banco;

Selecionar um banco de dados é sempre o primeiro passo, antes de fazer qualquer coisa com ele, seja renomear, fazer requisições, organizar suas tabelas etc.

Como remover um banco de dados no MySQL

Remover um banco de dados significa apagar, remover o banco em questão. Todos os dados e objetos relacionados a ele e contidos nele serão permanentemente eliminados. É uma ação que não pode ser desfeita e, portanto, precisa ser realizada com cuidado redobrado.
Veja, no exemplo que segue, como remover o banco de dados ConCessionarIA:

mysql> DROP DATABASE ConCessionarIA;
Query OK, 0 rows affected (0.07 sec)

Opcionalmente, você também pode usar o IF NOT EXISTS, aqui:

DROP DATABASE IF NOT EXISTS ConCessionarIA;

Foi fácil? Que tal fazer um curto exercício, para fixar o aprendizado?

Praticando

Para praticar o que você aprendeu aqui, você pode criar, exibir e remover bancos de dados:

  1. CREATE DATABASE IF NOT EXISTS animais;
  2. CREATE DATABASE IF NOT EXISTS plantas;
  3. SHOW DATABASES;
  4. DROP DATABASE IF NOT EXISTS animais;
  5. DROP DATABASE IF NOT EXISTS plantas;
  6. SHOW DATABASES;

Conclusão

Neste pequento tutorial, eu tentei mostrar 3 comandos básicos e iniciais para você começar a se inserir no mundo da administração de bancos de dados MySQL. Ou seja, agora você já sabe:

  • criar um banco de dados;
  • evitar erros decorrentes da duplicidade;
  • exibir os bancos de dados existentes no servidor e
  • remover um banco de dados, se ele existir.