• Nenhum resultado encontrado

Programação em Banco de Dados. Dailton Trevisan

N/A
N/A
Protected

Academic year: 2021

Share "Programação em Banco de Dados. Dailton Trevisan"

Copied!
37
0
0

Texto

(1)

Programação em Banco de Dados

Dailton Trevisan prof@tontrevisan.com.br

(2)

Nossos objetivos...

Nossos objetivos...

SQL

– DISTINCT – TOP

– LIKE

– WILDCARD – IN

– BETWEEN – INSERT

– UPDATE – DELETE

(3)

PLANO DE ENSINO E PLANO DE ENSINO E

APRENDIZAGEM

APRENDIZAGEM

(4)

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.

(5)

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

(6)

Plano de Ensino e Aprendizagem

Plano de Ensino e Aprendizagem

(7)

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;

(8)

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

(9)

Banco de Dados

DISTINCT

Exemplo:

SELECT DISTINCT City FROM tbPersons;

City

San Francisco, CA

Las Vegas, NV

(10)

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.

(11)

Banco de Dados

SELECT TOP VS

LIMIT VS

ROWNUM

(12)

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;

(13)

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;

(14)

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;

(15)

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;

(16)

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%';

(17)

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

(18)

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]%';

(19)

Banco de Dados

Exemplos utilizando Caracteres WILDCARD:

SELECT * FROM Customers WHERE City LIKE '[a-c]%';

SELECT * FROM Customers

WHERE City LIKE '[!bsp]%';

(20)

Banco de Dados

WILDCARD

Fonte:

http://office.microsoft.com/en-us/access-help/like-operator-HP001032253.aspx

(21)

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,...);

(22)

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');

(23)

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;

(24)

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);

(25)

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';

(26)

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.

(27)

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

(28)

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.

(29)

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,...);

(30)

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

(31)

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

(32)

Banco de Dados

Sintaxe básica de atualização de dados :

UPDATE table_name

SET column1=value1, column2=value2,...

WHERE

some_column=some_value;

(33)

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

(34)

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

(35)

Banco de Dados

Sintaxe básica de deleção de dados :

DELETE FROM tabela WHERE coluna=valor;

(36)

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

(37)

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

Referências

Documentos relacionados

Este fluxo de trabalho demonstra como o método de pré-impressão do Xerox ® FreeFlow ® Core Cloud torna a automação mais simples de implementar e de manter.. Consulte ESv4-c01

Para obter mais informações sobre a imagem do Dell OS Recovery, consulte Como fazer download e usar a imagem do Dell OS Recovery no Microsoft Windows, em site Suporte Dell..

Este plano foi desenvolvido pela OSS para administrar cargos, carreiras e salários dos contratos geridos pelo Instituto sendo um instrumento que estabelece a estrutura de cargos da

Antes de la especifi cación verifi cada por la ley humana, (y de la ley divina positiva: la revelación de la Sagrada Escritura), la ley eterna y la ley natural rigen todo

Depois do 11/9, consciente da importância que os bin Ladens representavam para a Arábia Saudita e dos interesses dos Esta- dos Unidos na Arábia Saudita, o embaixa- dor do

Para apoyar y aumentar las ventas en los meses finales del año, el equipo de Lubricantes de Galp Energia España ha puesto en marcha a principios de Septiembre una nueva

Não obstante a diligência do Administrador e do Gestor em colocar em prática a Política de Investimento delineada, os investimentos do Fundo estão, por sua natureza, sujeitos

Justice of the Peace - Las Vegas Township - Department 3 Justice of the Peace - Las Vegas Township - Department 4 District Court Judge - District 15. County Commission