3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso...
Transcript of 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso...
![Page 1: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/1.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 1
PROGRAMA
• 3.SQL Básico• 3.1 Criação de tabelas• 3.2 Queries simples• 3.3 Subqueries• 3.4 Agregação
![Page 2: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/2.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 2
3.SQL Básico
A linguagem SQL foi desenvolvida para o ambienterelacional, podendo ser adaptada a ambientes nãorelacionais;
A idéia original só previa o seu uso de formainterativa. Após sofrer alguns acréscimos,ela passou a ter capacidade de ser utilizadaem linguagens hospedeiras, tais como,COBOL, FORTRAN, C, etc...
![Page 3: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/3.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 3
3.SQL Básico
SQL – Structured Query Language• Fundamentos no modelo relacional de Codd• Sua primeira versão SEQUEL (Structured
English Query Language) – definida porChamberlin
• Tornou-se ANSI (American NationalStandard Institute) em 1982.
![Page 4: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/4.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 4
3.SQL Básico
Breve Histórico• SQL89
– Integrity Enhancement Feature (IEF)– Data Language Embedded SQL
• SQL92 (SQL2)– Grandes expansões; sinônimo de SQL
• SQL/CLI (95)• SQL3 (em andamento)
– recursão, triggers, objetos
![Page 5: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/5.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 5
AVISOSintaxe Simplificada!
![Page 6: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/6.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 6
3.1.Criação de Tabelas
CREATE TABLE
CREATE TABLE <table_name> ( <lista_colunas>)
<def_coluna>::= <nome> <tipo>
![Page 7: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/7.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 7
3.1.Criação de Tabelas
Tipos de Dados ANSI• Bit• Character• Date• Decimal• Double Precision• Float• Integer• Interval
• Numeric• Real• Smallint• Timestamp• Time• Varbit• Varchar
![Page 8: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/8.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 8
3.1.Criação de Tabelas
ExemploCREATE TABLE s_dept( id DECIMAL(7), name VARCHAR(25),
region_id DECIMAL(7))CREATE TABLE s_emp( id DECIMAL(7), name VARCHAR(25),
dept DECIMAL(7)salary DECIMAL(8,2)
)
![Page 9: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/9.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 9
Tabela Cliente
CREATE TABLE CLIENTE (CODIGO_CLIENTE SMALLINT NOT NULL UNIQUE,NOME CLIENTE CHAR(20),ENDERECO CHAR(30),CIDADE CHAR(15),CEP CHAR(8),UF CHAR(2),CGC CHAR(20),IE CHAR(20),PRIMARY KEY (CODIGO_CLIENTE)
);
3.1.Criação de Tabelas
![Page 10: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/10.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 10
Tabela Pedido
CREATE TABLE PEDIDO (NUM_PEDIDO INT NOT NULL UNIQUE,PRAZO_ENTREGA SNALLINT NOT NULL,CODIGO_CLIENTE SMALLINT NOT NULL,CODIGO_VENDEDOR SMALLINT NOT NULL,PRIMARY KEY (NUM_PEDIDO),FOREIGN KEY (CODIGO_CLIENTE) REFERENCES CLIENTE,FOREIGN KEY (CODIGO_VENDEDOR) REFERENCES VENDEDOR
);
3.1.Criação de Tabelas
![Page 11: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/11.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 11
Tabela Item do Pedido
CREATE TABLE ITEM_DO_PEDIDO (NUM_PEDIDO INT NOT NULL UNIQUE,CODIGO_PRODUTO SMALLINT NOT NULL UNIQUE,QUANTIDADE DECIMAL,FOREIGN KEY (NUM_PEDIDO) REFERENCES PEDIDO,FOREIGN KEY (CODIGO_PRODUTO) REFERENCES PRODUTO,PRIMARY KEY (NUM_PEDIDO,CODIGO_PRODUTO)
);
3.1.Criação de Tabelas
![Page 12: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/12.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 12
Tabela Vendedor
CREATE TABLE VENDEDOR (CODIGO_VENDEDOR SMALLINT NOT NULL UNIQUE,NOME_VENDEDOR CHAR(20),SALARIO_FIXO MONEY,FAIXA_COMISSAO CHAR(1),PRIMARY KEY (CODIGO_VENDEDOR)
);
3.1.Criação de Tabelas
![Page 13: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/13.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 13
Tabela Produto
CREATE TABLE PRODUTO (CODIGO_PRODUTO SMALLINT NOT NULL UNIQUE,UNIDADE CHAR(3),DESCRICAO_PRODUTO CHAR(30),VAL_UNIT MONEY,PRIMARY KEY (CODIGO_PRODUTO)
);
3.1.Criação de Tabelas
![Page 14: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/14.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 14
3.1.Destruição de Tabelas
DROP TABLE
DROP TABLE <nome>
![Page 15: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/15.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 15
3.1.Alteração de Tabelas
ALTER TABLE
ALTER TABLE <nome> ADD <def_coluna>
ALTER TABLE <nome> DROP <coluna>
![Page 16: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/16.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 16
3.1.População de Tabelas
INSERT INTO
INSERT INTO <nome>{ (lista_colunas) }VALUES ( <lista_valores> )
![Page 17: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/17.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 17
3.1.População de Tabelas
Exemplo
• Insere o Departamento de ComprasINSERT INTO s_deptVALUES ( 1, “Compras”, 1 )
![Page 18: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/18.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 18
3.2. Queries simples
SELECT
SELECT { ALL | DISTINCT } <lista_itens> FROM <lista_tabelas> WHERE <expressão_seleção>
![Page 19: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/19.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 19
3.2. Queries simples
Projeção
<lista_itens> contém algumas colunas
Seleção
<expressão_seleção> seleciona itens
![Page 20: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/20.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 20
3.2. Queries simples
Exemplos• Seleciona nomeSELECT nome FROM s_dept
• Seleciona tudoSELECT * FROM s_dept
• Seleciona nome de todos os Departamentos da região 3SELECT nome FROM s_deptWHERE region_id=3
• Seleciona o nome de todos os empregados da região 3SELECT s_emp.nome FROM s_emp, s_deptWHERE (s_dept.region_id=3 AND
s_emp.dept=s_dept.id)
![Page 21: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/21.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 21
3.2. Queries simples
Operadores IN e NOT IN
WHERE <nome da coluna> IN <valores>WHERE <nome da coluna> NOT IN <valores>
Listar os vendedores que são da faixa de comissão A e B
SELECT NOME_VENDEDOR FROM VENDEDORWHERE FAIXA_COMISSAO IN (‘A’,’B’)
![Page 22: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/22.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 22
3.2. Queries simples
Operadores IS NULL e IS NOT NULL
Mostrar os clientes que não tenham inscrição estadual
SELECT * FROM CLIENTE WHERE IE IS NULL
![Page 23: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/23.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 23
3.2. Queries simples
Ordenando os dados selecionados
SELECT <NOME_COLUNA> FROM <TABELA>WHERE <CONDICOES> ORDER BY<NOME_COLUNA> ASC ou <NOME_COLUNA> DESC
Mostrar em ordem alfabética a lista de vendedores e seus respectivossalários fixos
SELECT NOME_VENDEDOR, SALARIO_FIXO FROMVENDEDOR ORDER BY NOME_VENDEDOR
![Page 24: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/24.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 24
3.2. Queries simples
LIKE
WHERE <NOME_COLUNA> LIKE <VALOR>WHERE <NOME_COLUNA> NOT LIKE <VALOR>
% substitui uma palavra_ substitui um caracter
‘LAPIS%’ == ‘LAPIS PRETO’, ‘LAPIS CERA’, ‘LAPIS BORRACHA’‘BROCA N_’ == ‘BROCA N1’, ‘BROCA N2’, ‘BROCA N9’
![Page 25: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/25.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 25
3.2. Queries simples
Listar os nomes, cidades e estados de todos os clientes,ordenados por estado e cidade de forma descendente
SELECT NOME_CLIENTE, CIDADE, UF FROMCLIENTE ORDER BY UF DESC, CIDADE DESC
![Page 26: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/26.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 26
3.2. Queries simples - problemas
Listar todos os produtos com as respectivas descrições,unidades e valores unitários
SELECT DESCRICAO_PRODUTO, UNIDADE, VAL_UNIT FROMPRODUTO
Listar o nome do cliente com seu endereço e CGC
SELECT NOME_CLIENTE, ENDERECO, CGC FROM CLIENTE
![Page 27: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/27.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 27
3.2. Queries simples - problemas
Listar todo o conteúdo de vendedor
SELECT * FROM VENDEDOR
Listar o NUM_PEDIDO, o COD_PRODUTO e aquantidade dos itens do pedido com a quantidade igual a35
SELECT NUM_PEDIDO, CODIGO_PRODUTO, QUANTIDADEFROM ITEM_PEDIDO WHERE QUANTIDADE = 35
![Page 28: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/28.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 28
3.2. Queries simples - problemas
Listar os clientes que moram em NITEROI
SELECT NOME_CLIENTE FROM CLIENTE WHERE CIDADE =‘NITEROI’
Listar os produtos que tenham unidade igual a ‘M’ e valorunitário igual a R$ 1,05
SELECT DESCRICAO_PRODUTO FROM PRODUTO WHEREUNIDADE = ‘M’ AND VAL_UNIT = 1.05
![Page 29: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/29.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 29
3.2. Queries simples - problemas
Listar os clientes e seus respectivos endereços, que moremem São Paulo ou estejam na faixa de CEP entre 30077-000 e 30079-000
SELECT NOME_CLIENTE, ENDERECO FROM CLIENTEWHERE (CEP >= ‘30077000’ AND CEP <= ‘30079000’) ORCIDADE = ‘SÃO PAULO’
Listar todos os pedidos que não tenham prazo de entregaigual a 15 dias
SELECT NUM_PEDIDO FROM PEDIDO WHERE NOT(PRAZO_ENTREGA = 15)
![Page 30: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/30.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 30
3.2. Queries simples - problemas
Listar o código e a descrição dos produtos que tenham ovalor unitário na faixa de R$ 0,32 até R$ 2,00
SELECT CODIGO_PRODUTO, DESCRICAO_PRODUTO FROMPRODUTO WHERE VAL_UNIT BETWEEN 0.32 AND 2.00
Listar todos os produtos que tenham a sua unidadecomeçando por ‘K’
SELECT CODIGO_PRODUTO, DESCRICAO_PRODUTO FROMPRODUTO WHERE UNIDADE LIKE ‘K_’
![Page 31: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/31.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 31
3.2. Queries simples - problemas
Listar os vendedores que não começam por ‘JO’
SELECT CODIGO_VENDEDOR, NOME_VENDEDOR FROMVENDEDOR WHERE NOME_VENDEDOR NOT LIKE ‘JO’
Listar a descrição e o valor unitário de todos os produtosque tenham a unidade ‘KG’, em ordem crescente devalor unitário
SELECT DESCRICAO, VAL_UNIT FROM PRODUTO WHEREUNIDADE = ‘KG’ ORDER BY 2 ASC
![Page 32: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/32.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 32
3.2. Queries simples
UPDATE
UPDATE <tabela> SET <lista_atribuições> {WHERE <expressão_seleção>}
![Page 33: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/33.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 33
3.2. Queries simples
Exemplos• Duplica todos os saláriosUPDATE s_empSET salario=salario*2
• Duplica o salário de todos os “Marcos”UPDATE s_empSET salario=salario*2WHERE nome=“Marcos”
![Page 34: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/34.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 34
3.2. Queries simples - problemas
Alterar o valor unitário do produto parafuso de R$ 1.25para R$ 1.62
UPDATE PRODUTO SET VAL_UNIT = 1.62 WHEREDESCRICAO = ‘PARAFUSO’
Alterar o salário fixo de todos os vendedores em 27% maisuma bonificação de R$ 100,00
UPDATE VENDEDOR SET SALARIO_FIXO = (SALARIO_FIXO *1.27) + 100.00
![Page 35: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/35.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 35
PRÁTICA
Queries Simples
![Page 36: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/36.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 36
Prática: Queries simples
PRODUTO
OF
DETALHE
(1,n)
(1,n)(1,n)
(1,1)
IDNome
IDDueDate
IDTipo de operaçãoTempo
![Page 37: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/37.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 37
Prática: Queries simples
1.Representar o modelo E-R no modelo relacional2.Codificar a criação das tabelas3.Codificar a população das tabelas4.Executar as seguintes queries:
4.1.Quais são todos os produtos4.2.Quais são todas as OF?4.3.Quais são todas as OF de um dado produto?4.4.Quais são todos os detalhes de uma OF de um dadoproduto?
![Page 38: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/38.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 38
3.3.Subqueries
CONCEITO
Uma subquery é um SELECT inserido em umacláusula de outro comando SQL
SELECT { ALL | DISTINCT } <lista_itens> FROM <lista_tabelas> WHERE <expressão_seleção>
<expressão_seleção> ::= <expr> <operator> (SELECT ....)
![Page 39: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/39.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 39
3.3.Subqueries
CONCEITO(ii)
<expressão_seleção> ::= <expr> <operator> (SELECT ....)
<operator>::= [ >|=|>=|<|<>|<= ] | [ IN | NOT IN ]
![Page 40: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/40.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 40
3.3.Subqueries
Exemplo(i): Subquery retorna uma única linha
Obter todos os departamentos que se encontram namesma região que o departamento de Compras.
SELECT nome FROM s_deptWHERE region_id =
(SELECT region_id FROM s_deptWHERE nome = ‘Compras’)
![Page 41: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/41.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 41
3.3.Subqueries
Exemplo(ii): Subquery retorna várias linhas
Obter todos os funcionários de todos osdepartamentos que se encontram na mesma região
SELECT nome FROM s_empWHERE dept IN
(SELECT dept FROM s_deptWHERE region_id=3)
![Page 42: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/42.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 42
3.4.Agregações
Operadores de agregação
• Count• AVG• MIN• MAX• SUM
![Page 43: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/43.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 43
3.4.Agregações
Exemplo
• Determina o número de funcionáriosSELECT count(*) FROM s_emp;
• Determina o salário médioSELECT AVG(salary) FROM s_emp;
![Page 44: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/44.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 44
3.4.Agregações
Agrupamento
GROUP BY <critério_agrupamento>
Formação de grupos
Uso: junto com SELECT
![Page 45: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/45.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 45
3.4.Agregações
Exemplo
• Calcular o total de salários por departamentoSELECT dept, SUM(salary) FROM s_empGROUP BY dept
![Page 46: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/46.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 46
3.4.Agregações
Pertinência
HAVING <critério_pertinência>
Seleção baseada em alguma propriedade do grupo (ou seja,após o cálculo do GROUP BY)
Uso: junto com SELECT
![Page 47: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/47.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 47
3.4.Agregações
Exemplo
• Calcular o total de salários por departamento detodos os departamentos com folha superior ao deum dado departamento (no caso, o 32)
SELECT dept, SUM(salary) FROM s_empGROUP BY deptHAVING AVG(salary) >
(SELECT AVG(salary) FROM s_empWHERE dept = 32)
![Page 48: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/48.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 48
PRÁTICA
Subqueries e Agregações
![Page 49: 3.1 Criação de tabelas • 3.2 Queries simples • 3.3 ...sites.poli.usp.br/d/pmr2490/Curso SQL-2-PMR.pdfPrática: Queries simples 1.Representar o modelo E-R no modelo relacional](https://reader034.fdocumentos.com/reader034/viewer/2022042709/5f440330fa12035a23146167/html5/thumbnails/49.jpg)
EPUSP-PMR Prof. Dr. Marcos Tsuzuki 49
Prática: Subqueries e agregações
1.Executar as seguintes queries:1.Dados um produto, quantas OF há?2.Admitindo que cada OF tenha um campo “Duração”,qual é a duração média de uma OF?3.Quais são todas as OF com operaçãoTORNEAMENTO, agrupadas por Produto?