Você está na página 1de 102

BANCO DE DADOS

Prof. Leandro Reis Fonseca


INTRODUÇÃO À LIGUAGEM SQL
Introdução à Linguagem SQL

• SQL (Structured Query Language) é uma linguagem padrão de


consulta para sistemas de banco de dados. Utilizada também para
definição de estrutura de dados, modificação de dados no banco de
dados e especificação de restrições de segurança.

Sérgio de Sá Leitão Paiva Júnior e Ellen Polliana Ramos Souza. BANCO DE DADOS, 2014.
Introdução à Linguagem SQL

COMANDOS SQL:
• DDL – (Data Definition Language) – Linguagem de Definição de Dados:
fornece comandos para definir esquemas de relação, excluir relações
e modificar esquemas.
• DML – (Data Manipulation Language) – Linguagem de Manipulação de
Dados: Possui comandos para inserir, excluir e alterar dados no BD,
além de incluir uma linguagem de consulta.

Sérgio de Sá Leitão Paiva Júnior e Ellen Polliana Ramos Souza. BANCO DE DADOS, 2014.
COMANDOS DDL
(Linguagem de Definição de Dados)
Comandos DDL

• CREATE: CRIAR BANCO DE DADOS E TABELAS;

• DROP: REMOVER BANCO DE DADOS E TABELAS;

• ALTER: ALTERAR TABELAS (ADICIONAR CAMPOS, MODIFICAR CAMPOS,

ADICIONAR CHAVES PRIMÁRIA E ESTRANGEIRA, OUTROS);


Comandos DDL

• Para os exemplos da utilização da linguagem SQL iremos considerar o banco de


dados para uma loja representado pelo diagrama da figura 1.

Figura 1 – DER de uma loja


Acessando o MySQL
TROQUE O USUÁRIO ROOT PELO SEU USUÁRIO.
Criando o banco de dados
Listando os bancos de dados
Acessando o banco de dados
Listando tabelas
NESTE MOMENTO NÃO EXISTEM TABELAS A SEREM LISTADAS.
Criando tabela
Listando tabelas
Detalhes da tabela
Outros comandos DDL
Comandos DDL

DROP: usado para excluir um banco de dados ou excluir uma tabela.


• Ex.: DROP DATABASE [NOME_BANCO];
• Ex.: DROP TABLE [NOME_TABELA];

ALTER: usado para alterar a estrutura da tabela (adicionar campo, modificar campo, adicionar chave primária e estrangeira,
outros).
• Ex. (adicionar campo): ALTER TABLE [TABELA] ADD [NOVO_CAMPO] INT NOT NULL;
• Ex. (modificar campo): ALTER TABLE [TABELA] CHANGE [CAMPO] [CAMPO] FLOAT NOT NULL;
• Ex. (renomear campo): ALTER TABLE [TABELA] CHANGE [CAMPO_NOME_ANTIGO] [CAMPO_NOME_NOVO] FLOAT;
• Ex. (excluir campo): ALTER TABLE [TABELA] DROP [CAMPO];
• Ex. (definir campo como chave primária): ALTER TABLE [TABELA] ADD PRIMARY KEY ([CAMPO]);
• Ex. (definir campo como chave estrangeira):
• Parte 1: ALTER TABLE [TABELA] ADD INDEX ([CAMPO]);
• Parte 2: ALTER TABLE [TABELA] ADD FOREIGN KEY ([CAMPO]) REFERENCES [TABELA] ([CAMPO_CHAVE_PRIMÁRIA]);
COMANDOS DML
(Linguagem de Manipulação de Dados)
Comandos DML

• ISERT: INSERIR DADOS NA TABELA;

• DELETE: EXCLUIR DADOS DA TABELA;

• UPDATE: ATUALIZAR DADOS DA TABELAS;

• SELECT: EXIBIR DADOS DA TABELA;


Inserindo dados na tabela
Comandos DML

INSERT: usado para inserir dados na tabela.

• Ex.: INSERT INTO [TABELA](CAMPO1,CAMPO2) VALUES(VALOR1,’VALOR2’);

• Ex.: INSERT INTO [TABELA](CAMPO1,CAMPO2) VALUES(VALOR1,’VALOR2’), (VALOR3,’VALOR4’);


O CAMPO AUTO INCREMENTO NÃO É NECESSÁRIO SER INFORMADO NA
INSERÇÃO, POIS O PRÓPRIO SGBD (MYSQL) IRÁ INSERIR
AUTOMATICAMENTE NA TABELA E FARÁ ESSE CONTROLE.
Deletando dados da tabela
Comandos DML

DELETE: usado para excluir dados da tabela.

• Ex.: DELETE FROM [TABELA];

• Ex.: DELETE FROM [TABELA] WHERE [CAMPO] = X;

• Ex.: DELETE FROM [TABELA] WHERE [CAMPO] = X AND [OUTRO_CAMPO] = Y;

• Ex.: DELETE FROM [TABELA] WHERE [CAMPO] = X OR [OUTRO_CAMPO] = Y;


USANDO O COMANDO OS COMANDOS:
1. delete from item; (Apaga todos os dados da tabela item).
2. truncate item; (Apaga todos os da tabela item e zera o índice).

TENHA CUIDADO COM ESSES COMANDOS!


Atualizando dados da tabela
Comandos DML

UPDATE: usado para atualizar dados da tabela.

• Ex.: UPDATE [TABELA] SET [CAMPO] = ‘NOVO_VALOR’ WHERE [CAMPO] = X;

• Ex.: UPDATE [TABELA] SET [CAMPO] = ‘NOVO_VALOR’, [OUTRO_CAMPO] = ‘NOVO_VALOR’ WHERE [CAMPO] = X;
SE A CLÁUSULA WHERE NÃO FOR USADA PARA DELIMITAR O UPDATE, A
TABELA INTEIRA, NO CAMPO QUANTIDADE, SERÁ MODIFICADA.
Exibindo dados da tabela
Comandos DML

SELECT: usado para exibir dados da tabela.

• Ex.: SELECT * FROM [TABELA];

• Ex.: SELECT * FROM [TABELA] WHERE [CAMPO] = X;

• Ex.: SELECT [CAMPO1],[CAMPO2] FROM [TABELA] WHERE [CAMPO] = X;

• Ex.: SELECT * FROM [TABELA] WHERE [CAMPO] > X;

• Ex.: SELECT * FROM [TABELA] WHERE [CAMPO] > X AND [CAMPO] < Y;

• Ex.: SELECT * FROM [TABELA] WHERE [CAMPO] > X OR [CAMPO] < Y;

• Ex.: SELECT * FROM [TABELA] WHERE LIKE [‘%CAMPO%’];


O * (ASTERÍSTICO) NA CONSULTA REPRESENTA TODOS OS CAMPOS DA
TABELA.
Comandos DML

SELECT COM ORDENAÇÃO (ORDER BY)

• Ex.(ordem crescente): SELECT * FROM [TABELA] ORDER BY [CAMPO] ASC;

• Ex.(ordem decrescente): SELECT * FROM [TABELA] ORDER BY [CAMPO] DESC;


Comandos DML

SELECT COM JUNÇÃO DE TABELAS (INNER JOIN)

• Ex.: SELECT [TABELA1.CAMPO],[TABELA2.CAMPO] FROM [TABELA1] INNER JOIN [TABELA2] ON [TABELA2.CAMPO] =

[TABELA1.CAMPO];
Comandos DML

SELECT COM FUNÇÕES MATEMÁTICAS (AVG, MIN, MAX, SUM e COUNT) COM AGRUPAMENTO (GROUP BY)

• Ex.: SELECT AVG([CAMPO]) FROM [TABELA1];

• Ex.: SELECT MIN([CAMPO]) FROM [TABELA1];

• Ex.: SELECT MAX([CAMPO]) FROM [TABELA1];

• Ex.: SELECT SUM([CAMPO]) FROM [TABELA1];

• Ex.: SELECT COUNT([CAMPO]) FROM [TABELA1];


Comandos DML

SELECT COM FUNÇÕES MATEMÁTICAS (AVG, MIN, MAX, SUM e COUNT) COM AGRUPAMENTO (GROUP BY)

• Ex.: SELECT AVG([CAMPO]) FROM [TABELA1] GROUP BY [CAMPO];

• Ex.: SELECT MIN([CAMPO]) FROM [TABELA1] GROUP BY [CAMPO];

• Ex.: SELECT MAX([CAMPO]) FROM [TABELA1] GROUP BY [CAMPO];

• Ex.: SELECT SUM([CAMPO]) FROM [TABELA1] GROUP BY [CAMPO];

• Ex.: SELECT COUNT([CAMPO]) FROM [TABELA1] GROUP BY [CAMPO];


PROBLEMA 01:
FAÇA UMA NOVA CONSULTA QUE APRESENTE A QUANTIDADE TOTAL
VENDIDA POR PRODUTO.
RESPOSTA DO PROBLEMA 01.
PROBLEMA 02:
FAÇA UMA NOVA CONSULTA COM OS MESMOS CAMPOS EM ORDEM
CRESCENTE PELO CÓDIGO DA COMPRA.
RESPOSTA DO PROBLEMA 02.
PROBLEMA 03:
FAÇA UMA NOVA CONSULTA COM OS MESMOS CAMPOS EM ORDEM CRESCENTE
PELO CÓDIGO DA COMPRA E EXIBA DUAS CASAS DECIMAIS NO VALOR UNITÁRIO.
RESPOSTA DO PROBLEMA 03.
PROBLEMA 04:
FAÇA UMA NOVA CONSULTA COM OS MESMOS CAMPOS EM ORDEM CRESCENTE PELO CÓDIGO
DA COMPRA, EXIBA DUAS CASAS DECIMAIS NO VALOR UNITÁRIO E ACRESCENTE A COLUNA
DESCONTO, BEM COMO O VALOR TOTAL (SUBTOTAL – VALOR DE DESCONTO).
RESPOSTA DO PROBLEMA 04.
Outras funções nas consultas
CONSULTA COM FORMATAÇÃO DE DATA.
CONSULTA COM FORMATAÇÃO DE MOEDA.
CONSULTA EXIBINDO OS VALORES COMO FORAM INSERIDOS NA TABELA.
NELA CONSTAM NOMES TODOS MAIÚSCULOS E MINÚSCULOS.
CONSULTA EXIBINDO OS VALORES TODOS MAIÚSCULOS COM A FUNÇÃO
UPPER.
CONSULTA EXIBINDO OS VALORES TODOS MINÚSCULOS COM A FUNÇÃO
LOWER.
VIEW
VIEW

• Uma View (Exibição / Visão) é uma tabela virtual baseada no conjunto de resultados de uma consulta SQL
criada a partir de um conjunto de tabelas presentes no banco, que servem com tabelas-base, mostrando
sempre resultados atualizados.
Criando VIEW
VIEW PODE TER TAMBÉM INNER JOIN.
Atualizando VIEW
Excluindo VIEW
Renomeando VIEW
STORED PROCEDURES
Stored Procedures

• Stored Procedures (Procedimentos Armazenados) são rotinas definidas e armazenadas no banco de


dados, identificadas por um nome pelo qual podem ser invocadas.
• O uso de Procedures reduz o consumo de recursos diretamente feito pela aplicação WEB e transfere para o
servidor do banco de dados, diminuindo a quantidade de informações que precisam trafegar pela rede e
de requisições ao servidor.
Criando Stored Procedures
DELIMITER $$
COMO POR PADRÃO O MYSQL UTILIZA O DELIMITADOR “;” – PONTO E
VÍRGULA – PARA FINALIZAR INSTRUÇÕES, SE FAZ NECESSÁRIO ALTERAR
TEMPORARIAMENTE O DELIMITADOR PARA QUE AS ROTINAS SEJAM
CRIADAS.
BACKUP/RESTORE
BACKUP - MYSQLDUMP
TROQUE O USUÁRIO ROOT PELO SEU USUÁRIO.
RESTORE – MYSQL
TROQUE O USUÁRIO ROOT PELO SEU USUÁRIO.