Fundamentos Essenciais de MySQL em 10 Dias

Instalação e Inicialização

Após a conclusão da instalação do MySQL, o serviço é iniciado automaticamente junto com o sistema operacional, não havendo necessidade de procedimentos manuais para ativação. Porém, caso precise controlar o serviço manualmente, execute os comandos a seguir no prompt de comando como administrador:

1 - net start mysql80  (iniciar o serviço)
2 - net stop mysql80   (encerrar o serviço)

Linguagem SQL

1. Sintaxe Geral do SQL

1). Instruções SQL podem ser escritas em uma única linha ou em múltiplas linhas, terminando sempre com ponto e vírgula.
2). Espaços em branco e indentação podem ser utilizados para melhorar a legibilidade das instruções.
3). Comentários:
    - Comentário de linha única: -- conteúdo ou # conteúdo
    - Comentário de múltiplas linhas: /* conteúdo */

2. Categorias do SQL

O SQL é dividido em várias categorias conforme sua finalidade dentro do sistema de banco de dados.

DDL - Definição de Dados

1. Operações com Bancos de Dados

1). Listar todos os bancos de dados existentes
    SHOW DATABASES;

2). Verificar qual banco está em uso atualmente
    SELECT DATABASE();

3). Criar um novo banco de dados
    CREATE DATABASE [IF NOT EXISTS] nome_banco
    [DEFAULT CHARSET conjunto_caracteres]
    [COLLATE regra_ordenação];

4). Remover um banco de dados
    DROP DATABASE [IF EXISTS] nome_banco;

5). Selecionar um banco para trabalho
    USE nome_banco;

2. Operações com Tabelas

Consulta de Estrutura de Tabelas

1). Listar todas as tabelas do banco atual
    SHOW TABLES;

2). Visualizar a estrutura de uma tabela específica
    DESC nome_tabela;

3). Ver a instrução SQL de criação da tabela
    SHOW CREATE TABLE nome_tabela;

Criação de Tabelas

CREATE TABLE nome_tabela (
    campo1  tipo_campo1 [COMMENT 'descrição do campo1'],
    campo2  tipo_campo2 [COMMENT 'descrição do campo2'],
    campo3  tipo_campo3 [COMMENT 'descrição do campo3'],
    ...
    campoN  tipo_campoN [COMMENT 'descrição do campoN']
) [COMMENT 'descrição da tabela'];

Exemplo prático:

CREATE TABLE tb_cliente (
    id INT COMMENT 'identificador único',
    nome VARCHAR(50) COMMENT 'nome completo',
    idade INT COMMENT 'idade em anos',
    sexo CHAR(1) COMMENT 'M ou F'
) COMMENT 'tabela de registro de clientes';

Tipos de Dados

Tipos Numéricos

Os tipos numéricos incluem valores inteiros e decimais para armazenamento de dados numéricos.

Tipos de Texto

Destinados ao armazenamento de cadeias de caracteres, variando entre tamanho fixo e variável.

Tipos de Data e Hora

Utilizados para registro de informações temporais como datas, horários e combinações keduanya.

Alteração de Estrutura

1). Adicionar um novo campo
    ALTER TABLE nome_tabela ADD nome_campo tipo(tamanho) [COMMENT 'descrição'];

2). Alterar o tipo de dado de um campo
    ALTER TABLE nome_tabela MODIFY nome_campo novo_tipo(tamanho);

3). Modificar o nome e tipo de um campo
    ALTER TABLE nome_tabela CHANGE nome_antigo nome_novo tipo(tamanho) [COMMENT 'descrição'];

4). Remover um campo existente
    ALTER TABLE nome_tabela DROP nome_campo;

5). Renomear a tabela
    ALTER TABLE nome_tabela RENAME TO novo_nome;

Exclusão de Tabelas

1). Excluir uma tabela permanentemente
    DROP TABLE [IF EXISTS] nome_tabela;

2). Remover todos os dados e recriar a estrutura
    TRUNCATE TABLE nome_tabela;

DML - Manipulação de Dados

1. Inserção de Registros

-- Visualizar dados existentes
SELECT * FROM cliente;

1). Inserir dados em campos específicos
    INSERT INTO nome_tabela (campo1, campo2, ...) VALUES (valor1, valor2, ...);
    OU
    INSERT INTO nome_tabela SET campo1 = valor1, campo2 = valor2;

2). Inserir dados em todos os campos
    INSERT INTO nome_tabela VALUES (valor1, valor2, ...);

3). Inserção em lote
    INSERT INTO nome_tabela (campo1, campo2, ...) VALUES (valor1, valor2, ...), (valor1, valor2, ...);
    INSERT INTO nome_tabela VALUES (valor1, valor2, ...), (valor1, valor2, ...), (valor1, valor2, ...);

2. Atualização de Registros

Sintaxe:
    UPDATE nome_tabela SET campo1 = valor1, campo2 = valor2 ... [WHERE condição];

Atenção: A cláusula WHERE é opcional. Quando omitida, todos os registros da tabela serão atualizados.

3. Remoção de Registros

Sintaxe:
    DELETE FROM nome_tabela [WHERE condição];

Notas importantes:
    - A condição WHERE é opcional. Sem ela, todos os registros serão removidos.
    - DELETE remove registros inteiros, não valores individuais. Para zerar um campo específico, utilize UPDATE definindo-o como NULL.

DQL - Consulta de Dados

1. Consultas Básicas

1). Selecionar campos específicos
    SELECT campo1, campo2, campo3 ... FROM nome_tabela;

2). Selecionar todos os campos
    SELECT * FROM nome_tabela;

3). Aplicar aliases aos campos
    SELECT campo1 [AS apelido1], campo2 [apelido2] ... FROM nome_tabela;

4). Eliminar registros duplicados
    SELECT DISTINCT lista_campos FROM nome_tabela;

2. Consultas com Condições

Sintaxe:
SELECT lista_campos FROM nome_tabela WHERE condições;

3. Funções de Agregação

Funções agregadas realizam cálculos sobre conjuntos de registros, retornando um único valor resumido.

4. Agrupamento de Resultados

Sintaxe:
SELECT lista_campos FROM nome_tabela [WHERE condição] GROUP BY campo_agrupamento [HAVING condição_filtro];

Diferença entre WHERE e HAVING:

  • WHERE: executa a filtragem antes do agrupamento, excluindo registros que não satisfazem a condição antes da formação dos grupos.
  • HAVING: executa a filtragem após o agrupamento, aplicando condições sobre os grupos já formados.
  • Limitações: WHERE não pode utilizar funções agregadas em suas condições, enquanto HAVING sim.

Pontos importantes:

  • Após GROUP BY, os campos selecionados devem ser exclusivamente funções agregadas ou o próprio campo de agrupamento.
  • Ordem de execução: WHERE → funções agregadas → HAVING.
  • Agrupamento múltiplo é suportado através da sintaxe: GROUP BY campoA, campoB.

5. Ordenação de Resultados

Sintaxe:
SELECT lista_campos FROM nome_tabela ORDER BY campo1 modo1, campo2 modo2;

Modos de ordenação:

  • ASC: ordem crescente (padrão)
  • DESC: ordem decrescente

Nota: Em ordenação múltipla, o segundo campo só é considerado quando o primeiro apresenta valores iguais.

6. Limitação de Resultados

Sintaxe:
SELECT lista_campos FROM nome_tabela LIMIT deslocamento, quantidade;

Observações:

  • O deslocamento inicial é zero. Fórmula: deslocamento = (página - 1) × registros_por_página.
  • LIMIT é uma característica específica do MySQL, podendo variar em outros bancos de dados.
  • Para a primeira página, o deslocamento pode ser omitido: LIMIT quantidade.

7. Ordem de Execução

A compreensão da sequência de processamento das cláusulas é fundamental para escrever consultas eficientes e corretas.

Publicado em 6-25 18:01