Comandos Essenciais de DDL e DML: Criar, Selecionar, Atualizar, Excluir

Aprenda os comandos principais de DDL e DML do MySQL: CREATE TABLE, INSERT, SELECT, UPDATE e DELETE.

Comandos Essenciais de DDL e DML: Criar, Selecionar, Atualizar, Excluir

Trabalhar com MySQL geralmente começa com duas tarefas: definir suas tabelas e manipular as linhas dentro delas. Os comandos essenciais de DDL e DML são como você faz isso de forma segura.

Comandos DDL definem objetos de banco de dados, como tabelas. Comandos DML inserem, leem, atualizam e excluem dados de tabelas. Os exemplos abaixo usam uma pequena tabela products para que você possa ver os comandos em contexto.

Linguagem de Definição de Dados (DDL): Criando Tabelas

Comandos DDL lidam com o esquema e a estrutura dos seus objetos de banco de dados. O comando DDL mais fundamental para armazenamento de dados é CREATE TABLE, que permite definir o modelo para seus dados.

Sintaxe do CREATE TABLE

A sintaxe básica para criar uma tabela envolve especificar o nome da tabela e, em seguida, definir suas colunas, incluindo seus tipos de dados e quaisquer restrições.

CREATE TABLE nome_da_tabela (
    coluna1 tipo_dado restricoes,
    coluna2 tipo_dado restricoes,
    coluna3 tipo_dado restricoes,
    ...
);

nome_da_tabela deve ser único dentro do banco de dados atual. Cada coluna precisa de um nome, um tipo de dado e restrições opcionais como NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY ou DEFAULT valor.

Exemplo do CREATE TABLE

Vamos criar uma tabela simples products para armazenar informações sobre itens em um inventário:

CREATE TABLE products (
    product_id INT AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(100) NOT NULL UNIQUE,
    category VARCHAR(50),
    price DECIMAL(10, 2) NOT NULL,
    stock_quantity INT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Neste exemplo:

  • product_id é um inteiro que incrementa automaticamente e serve como chave primária.
  • product_name é uma string obrigatória que deve ser única.
  • price é um número decimal obrigatório.
  • stock_quantity assume o valor padrão 0 se não for especificado.
  • created_at registra o timestamp quando a linha foi criada.

Linguagem de Manipulação de Dados (DML): Trabalhando com Dados

Comandos DML são usados para gerenciar os registros (linhas) dentro das suas tabelas de banco de dados. Eles são os comandos mais frequentemente usados para operações diárias de banco de dados.

Comando INSERT: Adicionando Novos Dados

O comando INSERT é usado para adicionar novas linhas de dados a uma tabela.

Sintaxe do INSERT

Existem algumas maneiras de usar o INSERT:

  1. Especificando valores para todas as colunas:

    INSERT INTO nome_da_tabela
    VALUES (valor1, valor2, valor3, ...);
    

    A ordem dos valores deve corresponder à ordem das colunas na definição da tabela.

  2. Especificando valores para colunas específicas:

    INSERT INTO nome_da_tabela (coluna1, coluna2, coluna3, ...)
    VALUES (valor1, valor2, valor3, ...);
    

    Esta é geralmente preferida por ser mais legível e menos propensa a erros se a estrutura da tabela mudar.

Exemplo do INSERT

Usando nossa tabela products:

-- Inserindo valores para todas as colunas (assumindo AUTO_INCREMENT para product_id)
INSERT INTO products (product_name, category, price, stock_quantity)
VALUES ('Laptop Pro', 'Eletrônicos', 1200.50, 50);

-- Inserindo valores para colunas específicas
INSERT INTO products (product_name, price)
VALUES ('Teclado Mecânico', 75.99);

-- Inserindo várias linhas de uma vez
INSERT INTO products (product_name, category, price, stock_quantity)
VALUES 
('Mouse Ergonômico', 'Eletrônicos', 25.00, 120),
('Luminária de Mesa', 'Casa e Decoração', 45.00, 75);

Comando SELECT: Recuperando Dados

O comando SELECT é a base da recuperação de dados. Ele permite consultar seu banco de dados e buscar dados específicos com base em vários critérios.

Sintaxe do SELECT

SELECT coluna1, coluna2, ...
FROM nome_da_tabela
WHERE condicao
ORDER BY nome_da_coluna [ASC|DESC]
LIMIT numero;
  • coluna1, coluna2, ...: As colunas que você deseja recuperar. Use * para selecionar todas as colunas.
  • FROM nome_da_tabela: A tabela que você está consultando.
  • WHERE condicao: (Opcional) Filtra as linhas com base em uma condição especificada. Condições podem envolver operadores de comparação (=, !=, >, <, >=, <=), operadores lógicos (AND, OR, NOT) e correspondência de padrões (LIKE).
  • ORDER BY nome_da_coluna [ASC|DESC]: (Opcional) Ordena o conjunto de resultados por uma ou mais colunas. ASC para ascendente (padrão), DESC para descendente.
  • LIMIT numero: (Opcional) Restringe o número de linhas retornadas.

Exemplos do SELECT

-- Selecionar todas as colunas de todos os produtos
SELECT *
FROM products;

-- Selecionar apenas o nome e o preço dos produtos
SELECT product_name, price
FROM products;

-- Selecionar produtos da categoria 'Eletrônicos'
SELECT *
FROM products
WHERE category = 'Eletrônicos';

-- Selecionar produtos com preço maior que 100, ordenados por preço decrescente
SELECT product_name, price
FROM products
WHERE price > 100
ORDER BY price DESC;

-- Selecionar os 5 produtos mais caros
SELECT product_name, price
FROM products
ORDER BY price DESC
LIMIT 5;

-- Selecionar produtos cujo nome começa com 'L'
SELECT *
FROM products
WHERE product_name LIKE 'L%';

Comando UPDATE: Modificando Dados Existentes

O comando UPDATE permite alterar registros existentes em uma tabela.

Sintaxe do UPDATE

UPDATE nome_da_tabela
SET coluna1 = valor1, coluna2 = valor2, ...
WHERE condicao;
  • nome_da_tabela: A tabela que contém os registros a serem atualizados.
  • SET coluna1 = valor1, ...: Especifica quais colunas atualizar e seus novos valores.
  • WHERE condicao: Crucial! Esta cláusula determina quais linhas serão atualizadas. Se omitida, todas as linhas da tabela serão atualizadas.

Exemplos do UPDATE

-- Aumentar o preço do 'Laptop Pro' em 50
UPDATE products
SET price = price + 50.00
WHERE product_name = 'Laptop Pro';

-- Atualizar a categoria e o estoque do 'Teclado Mecânico'
UPDATE products
SET category = 'Acessórios', stock_quantity = 100
WHERE product_name = 'Teclado Mecânico';

-- **AVISO**: Isso atualizaria o preço de TODOS os produtos para 10.00
-- UPDATE products
-- SET price = 10.00;

Dica: Sempre use uma cláusula WHERE ao atualizar para garantir que você modifique apenas os registros pretendidos. Teste sua cláusula WHERE com uma instrução SELECT primeiro para verificar se ela atinge as linhas corretas.

Comando DELETE: Removendo Dados

O comando DELETE é usado para remover linhas de uma tabela.

Sintaxe do DELETE

DELETE FROM nome_da_tabela
WHERE condicao;
  • nome_da_tabela: A tabela da qual remover as linhas.
  • WHERE condicao: Crucial! Esta cláusula especifica quais linhas excluir. Se omitida, todas as linhas da tabela serão excluídas.

Exemplos do DELETE

-- Excluir o produto com o nome 'Luminária de Mesa'
DELETE FROM products
WHERE product_name = 'Luminária de Mesa';

-- Excluir todos os produtos que estão fora de estoque (stock_quantity é 0)
DELETE FROM products
WHERE stock_quantity = 0;

-- **AVISO**: Isso excluiria TODOS os registros da tabela 'products'!
-- DELETE FROM products;

Aviso: Semelhante ao UPDATE, omitir a cláusula WHERE em uma instrução DELETE é uma operação destrutiva que removerá todos os dados da tabela. Use com extrema cautela.

Conclusão Principal

Entender e usar efetivamente os comandos DDL e DML é fundamental para o gerenciamento de banco de dados. CREATE TABLE permite definir a estrutura dos seus dados, enquanto INSERT, SELECT, UPDATE e DELETE capacitam você a popular, consultar, modificar e gerenciar esses dados.

Ao praticar esses comandos com cláusulas WHERE claras, especialmente para UPDATE e DELETE, você pode construir uma base sólida para trabalhar com bancos de dados MySQL e garantir a integridade e precisão dos seus dados. Lembre-se sempre de fazer backup dos seus dados antes de realizar operações potencialmente destrutivas.