Programação em Banco de Dados
Dailton Trevisan prof@tontrevisan.com.br
Nossos objetivos...
Nossos objetivos...
SQL
– DISTINCT – TOP
– LIKE
– WILDCARD – IN
– BETWEEN – INSERT
– UPDATE – DELETE
PLANO DE ENSINO E PLANO DE ENSINO E
APRENDIZAGEM
APRENDIZAGEM
Plano de Ensino e Aprendizagem Plano de Ensino e Aprendizagem
Ementa
Linguagem de Consulta (SQL): comandos de inserção, alteração, consulta e estrutura. Stored Procedures e Triggers.
Processamento e otimização de consulta. Gerenciamento de transações.
Controle de concorrência. Recuperação de falhas.
Segurança e integridade de dados. Análise comparativa dos SGBDs comerciais. Tópicos avançados: banco de dados distribuídos,
datawarehouse, datamining.
Objetivos
Aplicação da linguagem SQL através de comandos de inserção, alteração, consulta. Aplicação de Stored Procedures e Triggers.
Conhecimentos de segurança e integridade de dados e tópicos avançadas em banco de dados.
Plano de Ensino e Aprendizagem Plano de Ensino e Aprendizagem
C
Conteúdo Programático
1. Linguagem de Consulta (SQL):
comandos de inserção, alteração, consulta e estrutura.
Funções de agregação Extensões da linguagem Stored Procedures e Triggers.
2. Processamento e otimização de consulta Controle de concorrência:
Problemas de concorrência Bloqueio
Seriabilidade
Níveis de isolamento Recursos de SQL
3. Recuperação de falhas:
Gerenciamento de transações
4. Segurança e integridade de dados.
5. Análise comparativa dos SGBDs comerciais.
6. Tópicos avançados:
banco de dados distribuídos datawarehouse
datamining
Plano de Ensino e Aprendizagem
Plano de Ensino e Aprendizagem
Banco de Dados
A palavra reservada DISTINCT deve ser usada para retornar apenas valores diferentes/distintos de uma tabela, ou seja irá ignorar qualquer valor duplicado.
Sintaxe:
SELECT DISTINCT coluna FROM table_name;
Banco de Dados
DISTINCT
Exemplo:
SELECT DISTINCT City FROM tbPersons;
PersonID LastName FirstName Address City
1 Leite Jonatas 40, Bush St San Francisco, CA
2 Bellini Gustavo 943, O´farrell San Francisco, CA 3 Santos Caren 4, Las Vegas Blv Las Vegas, NV
Banco de Dados
DISTINCT
Exemplo:
SELECT DISTINCT City FROM tbPersons;
City
San Francisco, CA
Las Vegas, NV
Banco de Dados
A cláusula SELECT TOP é usada para retornar um número específico de linhas.
Pode ser muito útil em tabelas grandes, com milhares de registros. Retornar uma grande quantidade de registros pode ocasionar
problemas de desempenho.
É bastante utilizado em paginação de dados.
Banco de Dados
SELECT TOP VS
LIMIT VS
ROWNUM
Banco de Dados
SELECT TOP vs LIMIT vs ROWNUM SQL Server / MS Access Sintaxe:
SELECT TOP number|percent column_name(s)
FROM table_name;
SQL Server / MS Access Exemplo:
SELECT TOP 10 PersonId FROM tbPersons;
SELECT TOP 50 PERCENT * FROM Customers;
Banco de Dados
SELECT TOP vs LIMIT vs ROWNUM MySQL Sintaxe:
SELECT column_name(s) FROM table_name
LIMIT number;
MySQL Exemplo:
SELECT PersonId
FROM tbPersons LIMIT 10;
Banco de Dados
SELECT TOP vs LIMIT vs ROWNUM ORACLE Sintaxe:
SELECT column_name(s) FROM table_name
WHERE ROWNUM <= number;
ORACLE Exemplo:
SELECT *
FROM tbPersons
WHERE ROWNUM <=10;
Banco de Dados
O operador LIKE é usado em uma cláusula
WHERE para realizar uma busca atraves de uma expressão especifica em uma coluna.
SQL LIKE Syntax:
SELECT coluna(s) FROM tabela
WHERE coluna LIKE expressão;
Banco de Dados
SQL LIKE Exemplos:
SELECT * FROM Customers WHERE City LIKE 's%';
SELECT * FROM Customers WHERE City LIKE '%s';
SELECT * FROM Customers
WHERE City LIKE '%ão Pa%';
SELECT * FROM Customers
WHERE City NOT LIKE '%ão Pa%';
Banco de Dados
Caracteres WILDCARD podem ser utilizados para substituir qualquer outro caracter em uma String.
SIMBOLO REPRESENTA
% Qualquer cadeia com nenhum ou
vários caracteres
_ Um caracter qualquer
[charlist] Conjuntos e intervalos de
caracteres para corresponder
[!charlist] Negação do conjunto de
caracteres e intervalos
Banco de Dados
Exemplos utilizando Caracteres WILDCARD:
SELECT * FROM Customers
WHERE City LIKE 'S_o Paulo';
SELECT * FROM Customers
WHERE City LIKE 'São _____';
SELECT * FROM Customers WHERE City LIKE '[bsp]%';
Banco de Dados
Exemplos utilizando Caracteres WILDCARD:
SELECT * FROM Customers WHERE City LIKE '[a-c]%';
SELECT * FROM Customers
WHERE City LIKE '[!bsp]%';
Banco de Dados
WILDCARD
Fonte:
http://office.microsoft.com/en-us/access-help/like-operator-HP001032253.aspx
Banco de Dados
O operador IN permite uma busca em uma LISTA de valores na clausula WHERE.
SQL IN Syntax:
SELECT coluna(s) FROM tabela
WHERE coluna IN
(valor1,valor2,...);
Banco de Dados
Exemplos utilizando operador IN:
SELECT * FROM tbPersons WHERE PersonId IN (2, 3, 7);
SELECT * FROM Customers WHERE City IN ('Paris','London','Los Angeles');
Banco de Dados
O operador BETWEEN é usando quando se precisa recuperar as linhas onde os valores estão em um intervalo especificado.
SQL BETWEEN Syntax:
SELECT coluna(s) FROM tabela
WHERE coluna BETWEEN valor1 AND valor2;
Banco de Dados
Exemplos utilizando operador BETWEEN:
SELECT * FROM Produtos
WHERE preco BETWEEN 10 AND 20;
SELECT * FROM Produtos
WHERE preco NOT BETWEEN 10 AND 20;
SELECT * FROM Produtos
WHERE (preco BETWEEN 10 AND 20) AND NOT CategoriaID IN (1,2,3);
Banco de Dados
Exemplos utilizando operador BETWEEN:
SELECT * FROM Produtos
WHERE NomeProduto BETWEEN 'C' AND 'F';
SELECT * FROM Pedidos
WHERE DataPedido BETWEEN
'01/08/2013' AND '25/08/2013';
Vamos praticar...
Considerando a tabela tbPersons no slide a seguir, faça uma seleção para cada:
1- Selecione o ID de número 6.
2- Selecione somente ID´s entre 3 e 20.
3- Selecione pessoas de sobrenomes homonimos “Santos”.
4- Selecione Nomes e Sobrenomes por ordem alfabética.
5- Selecione somente os Sobrenomes sem repetição.
6- Selecione os 10 primeiros registros da tabela.
7- Selecione todos nomes que comecem com a Letra "G".
8- Selecione todos os nomes que NÃO comecem com a letra "A".
9- Selecione todos nacidos de 01/01/1990 a 31/12/1994.
10- Selecione pessoas que morem na California.
OBS: Utilize apelidos para todas as tabelas.
Vamos Praticar...
tbPersons
PersonID LastName FirstName Address City
DtBirthday
2 Santos Jonatas
40, Bush St San
Francisco, CA
10/07/199 2
6 Bellini Gustavo
943, O
´farrell
San
Francisco, CA
18/09/198 2
7 Santos Caren
4, Las Vegas Blv
Las Vegas,
NV 09/10/199
4
Vamos praticar...
1- SELECT * FROM tbPersons WHERE PersonId = 6;
2- SELECT * FROM tbPersons WHERE PersonId >= 3 AND PersonId < 21;
3- SELECT * FROM tbPersons WHERE LastName = 'Santos' OR LastName Like 'Santos';
4- SELECT FirstName, LastName FROM tbPersons ORDER BY FirstName, LastName;
5- SELECT DISTINCT(LastName) FROM tbPersons;
6- SELECT * FROM tbPersons LIMIT 10;
7- SELECT * FROM tbPersons WHERE FirstName LIKE 'G
%';
8- SELECT * FROM tbPersons WHERE FirstName NOT LIKE 'A%';
9- SELECT * FROM tbPersons WHERE DtBirthday BETWEEN '01/01/1990' AND '31/12/1994';
10- SELECT * FROM tbPersons WHERE City LIKE '%, CA';
OBS: Sem apelidos para melhor visualização no SLIDE.
Banco de Dados
Sintaxe básica de inclusão de dados :
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...);
É possível incluir sem informar as colunas, como no exemplo abaixo:
INSERT INTO table_name
VALUES (value1, value2, value3,...);
Banco de Dados
Exemplo de Sintaxe INSERT:
INSERT INTO TbPersons (ID, Lastname, Firstname, Adress, City) Values
(4,‘Teodoro da Silva’, ‘Ailton’, ‘Rua 1, no 40’, ‘Campinas’);
ID LASTNAME FIRSTNAME ADRESS CITY
1 Leite Jonatas 40, Bush St San Francisco, CA 2 Bellini Gustavo 943, O´farrell Los Angeles, CA
3 Santos Caren 4, Las Vegas
Blv
Las Vegas, NV
Vamos praticar...
Insira os seguintes dados da tabela “tbClientes”:
Jb Computadores de Nova Odessa-SP que possui faturamento de R$13.000,00
4fun Shows e Eventos de São Paulo-SP que possui faturamento de R$100.000,00
OBS: Utilize um campo ID maior que o ultimo da tabela.
ID CLIENTE FATURAMENTO CIDADE UF
1 AP Informatica R$ 50.000,00 Campinas SP
3 Miami R$10.000,00 Sumaré SP
7 Doni R$ 90.000,00 Contagem MG
Banco de Dados
Sintaxe básica de atualização de dados :
UPDATE table_name
SET column1=value1, column2=value2,...
WHERE
some_column=some_value;
Banco de Dados
Exemplo utilizando a tabela tbPersons:
UPDATE TbPersons
SET Address=‘Av. Brasil', City=‘Rio de Janeiro' WHERE LastName=‘Santos' AND FirstName=‘Caren';
ID LASTNAME FIRSTNAME ADRESS CITY
1 Leite Jonatas 40, Bush St San Francisco, CA 2 Bellini Gustavo 943, O´farrell Los Angeles, CA
3 Santos Caren 4, Las Vegas
Blv
Las Vegas, NV
Vamos praticar...
Atualize os seguintes dados da tabela “tbClientes”:
O faturamento do Cliente Doni, caiu para R$40.000,00 e deve ser atualizado.
O Cliente Miami, mudou de endereço. Agora esta em Manaus-AM
ID CLIENTE FATURAMENTO CIDADE UF
1 AP Informatica R$ 50.000,00 Campinas SP
3 Miami R$10.000,00 Sumaré SP
7 Doni R$ 90.000,00 Contagem MG
20 Xok Eletronicos R$ 6.000,00 Belo
Horizonte
MG
Banco de Dados
Sintaxe básica de deleção de dados :
DELETE FROM tabela WHERE coluna=valor;
Banco de Dados
Exemplo utilizando a tabela tbPersons:
DELETE FROM TbPersons
WHERE LastName=‘Bellini’
DELETE FROM TbPersons WHERE ID=2
ID LASTNAME FIRSTNAME ADRESS CITY
1 Leite Jonatas 40, Bush St San Francisco, CA 2 Bellini Gustavo 943, O´farrell Los Angeles, CA
3 Santos Caren 4, Las Vegas
Blv
Las Vegas, NV
Vamos praticar...
Apague os seguintes dados da tabela “tbClientes”:
Todos os clientes do estado de MG
Clientes com faturamento maior ou igual a R$50.000,00
Apagar o cliente Miami
ID CLIENTE FATURAMENTO CIDADE UF
1 AP Informatica R$ 50.000,00 Campinas SP
3 Miami R$10.000,00 Sumaré SP
7 Doni R$ 90.000,00 Contagem MG
20 Xok Eletronicos R$ 6.000,00 Belo
Horizonte
MG