MySQL I: Iniciando suas consultas

Tópicos:

  1. Criando o nosso banco e a tabela
  2. Inserindo na tabela
  3. Consultando os dados
  4. Atualizando dados
  5. Excluindo dados
  6. Alterando a tabela

Criando o nosso banco e a tabela

// -u indica o usuário root
// -p é porque digitaremos a senha. Como não há senha, pressione enter.
mysql -u root -p
create database controle_compras; // cria o banco de dados

use controle_compras; // use diz ao MySQL qual é o banco que queremos usar.
CREATE TABLE  COMPRAS (
    // PRIMARY KEY diz quem é a chave primária da tabela
    id int AUTO_INCREMENT PRIMARY KEY, // AUTO_INCREMENT automaticamente o número
    valor double, 
    data date, 
    observacoes varchar(255), 
    recebido boolean
);

CREATE TABLE FUNCIONARIOS (
    NOME VARCHAR(100) NOT NULL, // NOT NULLnão deixa ser salvo valores nulos 
    CARGO ENUM('DIRETOR', 'FUNCIONARIO') NOT NULL, // ENUM cria uma lista dos valores aceitáveis na coluna
    SALARIO DECIMAL(10,2) DEFAULT '10000' // DEFAULT seta o valor padrão definido
);

Inserindo na tabela

INSERT INTO COMPRAS (VALOR, DATA, OBSERVACOES, RECEBIDO) VALUES (
    100.0, 
    '2007-05-12', 
    'COMPRAS DE MAIO', 
    1
);

Consultando os dados

SELECT * FROM COMPRAS;

SELECT VALOR, DATA FROM COMPRAS;

// para projetar o valor
SELECT VALOR, VALOR * 3, DATA FROM COMPRAS;

// AS é usado para dar um apelido a coluna
SELECT VALOR, VALOR * 3 AS TRIPLO, DATA FROM COMPRAS;

Tipos de filtros

SELECT * FROM COMPRAS WHERE VALOR > 1000; // Maior

SELECT * FROM COMPRAS WHERE VALOR >= 1000; //Maior-ou-igual >= 

SELECT * FROM COMPRAS WHERE VALOR <= 1000; // Menor-ou-igual <= 

SELECT * FROM COMPRAS WHERE VALOR <> 1000; // Diferente <>

SELECT * FROM COMPRAS WHERE DATA IN ('2010-12-25', '2010-10-12', '2010-06-12'); // IN

SELECT * FROM COMPRAS WHERE valor NOT BETWEEN 200 AND 700; // NOT

SELECT * FROM COMPRAS WHERE valor BETWEEN 200 AND 700; // Between

SELECT * FROM COMPRAS WHERE VALOR > 1000 AND VALOR < 3000; // AND

SELECT * FROM COMPRAS WHERE VALOR > 1000 OR VALOR < 3000; // OR

SELECT * FROM COMPRAS WHERE (VALOR > 1000 AND VALOR < 3000) OR (DATA < '2010-02-12'); // AND + OR

SELECT * FROM COMPRAS WHERE VALOR IS NULL; // IS

SELECT * FROM COMPRAS WHERE VALOR IS NOT NULL; // IS + NOT

SELECT * FROM COMPRAS WHERE OBSERVACOES = 'COMPRAS DE JANEIRO'; // texto

SELECT * FROM COMPRAS WHERE OBSERVACOES LIKE 'COMPRAS%'; //texto + coringa

SELECT * FROM COMPRAS WHERE OBSERVACOES LIKE '%COMPRAS%'; // coringa + texto + coringa

Agrupando e ordenando dados

// para somar todos os valores da coluna
SELECT SUM(VALOR) FROM COMPRAS WHERE RECEBIDO = 1;

// para contar quantos valores existe na coluna
SELECT AVG(VALOR) AS MEDIA, SUM(VALOR) AS SOMA FROM COMPRAS WHERE DATA < '2010-01-01';

// para colocar um apelido na coluna
SELECT SUM(VALOR) AS SOMA FROM COMPRAS WHERE RECEBIDO = 1;

// para agrupar compras de acordo com o valor da coluna
SELECT SUM(VALOR) FROM COMPRAS GROUP BY RECEBIDO;

// ordenar de forma decrescente
SELECT RECEBIDO, SUM(VALOR) AS SOMA FROM COMPRAS GROUP BY RECEBIDO ORDER BY SOMA DESC;

//ordenar de forma crescente
SELECT RECEBIDO, COUNT(VALOR) AS TOTAL FROM COMPRAS GROUP BY RECEBIDO ORDER BY SOMA ASC;

Juntando mais de uma tabela JOIN

// COMPRADOR_ID aponta para um ID de COMPRADOR
SELECT * FROM COMPRAS JOIN COMPRADORES ON COMPRAS.COMPRADOR_ID = COMPRADORES.ID;

SELECT COMPRADORES.NOME, SUM(VALOR) 
    FROM COMPRAS INNER JOIN COMPRADORES ON COMPRAS.COMPRADOR_ID = COMPRADORES.ID
    GROUP BY COMPRADORES.NOME

Atualizando dados

UPDATE COMPRAS SET OBSERVACOES = 'compra emergencial' WHERE id = 34;

UPDATE COMPRAS SET OBSERVACOES = 'uma compra comum' WHERE DATA NOT BETWEEN '2010-01-05' AND '2010-06-25';

UPDATE COMPRAS SET 
    OBSERVACOES = 'entregue antes de 2011', 
    RECEBIDO = TRUE
    WHERE DATA BETWEEN '2009-07-01' AND '2010-07-01';

Excluindo dados

DELETE FROM COMPRAS WHERE id = 34;

DELETE FROM COMPRAS WHERE DATA < '2009-01-01';

DELETE FROM COMPRAS WHERE DATA BETWEEN '2009-03-05' AND '2009-03-20';

Alterando a tabela

ALTER TABLE COMPRAS MODIFY COLUMN OBSERVACOES TEXT NOT NULL; // NOT NULL

ALTER TABLE COMPRAS MODIFY COLUMN RECEBIDO TINYINT(1) DEFAULT '0'; // DEFAULT

ALTER TABLE COMPRAS ADD COLUMN FORMA_PAGT ENUM('CARTAO', 'BOLETO', 'DINHEIRO'); // ENUM

ALTER TABLE COMPRAS CHANGE FORMA_PAGT FORMA_PAGTO ENUM('CARTAO', 'BOLETO', 'DINHEIRO'); // CHANGE

ALTER TABLE COMPRAS ADD FOREIGN KEY (COMPRADOR_ID) REFERENCES COMPRADORES(ID); // FOREIGN KEY

results matching ""

    No results matching ""