Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10...

48
GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 – Introdução e Consultas Básicas Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/GES013 UFU/FACOM/BCC

Transcript of Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10...

Page 1: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

GES013 - Sistema de Banco de DadosSQL/DML no PostgreSQL

Parte 1 – Introdução e Consultas Básicas

Ilmério Reis da Silvailmerio arroba ufu.brwww.facom.ufu.br/~ilmerio/GES013UFU/FACOM/BCC

Page 2: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 2

SQL/DML

Def. A SQL/DML*(Data Manipulation Language) é um subconjunto da SQL usada para consultar, inserir, atualizar e excluir dados de tabelas do BD.

* Alguns autores separam as consultas em SQL/DQL (Data Query Language)

Page 3: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 3

SQL/DML - Principais Comandos

• INSERT – inserção de linhas;• DELETE – exclusão de linhas;• UPDATE – atualização de dados;• SELECT – consulta a tabelas;

OBS: serão mostradas características do padrão SQL implementadas no PostgreSQL

Page 4: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 4

SQL/DML - INSERT

INSERT INTO tabela [ ( coluna [, ...] ) ] { DEFAULT VALUES

|VALUES ( { expressão | DEFAULT } [, ...] ) [, ...]

| comando-select }

Page 5: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 5

SQL/DML - INSERT – Exemplo 1

INSERT INTO tabela VALUES (expressão [, ...] )

INSERT INTO employee

VALUES ('John', 'B', 'Smith', '123456789',DATE '1965-01-09', '731 Fondren, Houston, TX','M', 30000, '333445555', 5);

Compatibilidade de tipos:

employee (fname VARCHAR (15) NOT NULL,

minit CHAR, lname VARCHAR (15) NOT NULL,

ssn CHAR(9) PRIMARY KEY, bdate DATE,

address VARCHAR(30), sex CHAR CHECK (sex IN (’M’, ’F’)),

salary DECIMAL(10,2), superssn CHAR(9), dno INT NOT NULL)

Page 6: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 6

SQL/DML- INSERT - Exemplo 2

INSERT INTO tabela ( coluna [, ...] ) VALUES (expressão [, ...] )

INSERT INTO employee(fname, minit, lname, ssn, dno)

VALUES ('John', 'B', 'Smith', '123456789', 5);

Page 7: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 7

SQL/DML – INSERT – Exemplo 3

INSERT INTO tabela comando-select

INSERT INTO works_onSELECT ssn, pnumber, 0 FROM employee, project;

Page 8: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 8

SQL/DML– DELETE

DELETE FROM tabela [ [ AS ] alias ]

[ WHERE condição

| WHERE CURRENT OF cursor_name ]

DELETE FROM employee WHERE ssn = '123456789'

OBS: o uso de cursores será visto posteriormente

Page 9: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 9

SQL/DML– UPDATE

UPDATE tabela [ [ AS ] alias ]

SET {coluna = { expressão | DEFAULT }

| ( coluna [, ...] ) = ( { expressão | DEFAULT } [, ...] ) } [, ...]

[ WHERE condição

| WHERE CURRENT OF cursor_name ]

OBS: o uso de cursores será visto posteriormente

Page 10: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 10

SQL/DML– UPDATE – Exemplo 1

UPDATE employee SET address = 'Av. Joao Naves de Avila, 2121', salary = salary * 1.5WHERE ssn = '123456789'

Page 11: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 11

SQL/DML– UPDATE – Exemplo 2

UPDATE works_onSET (pno, hours) = (1, 10)WHERE essn='123456789';

Page 12: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 12

SQL/DML– SELECT

SELECT [ALL | DISTINCT] * | expressão [ AS nome_saida ] [, ...] FROM item_from [, ...] [ WHERE condição ] [ GROUP BY expressão [, ...] ] [ HAVING condição [, ...] ] [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ] [ ORDER BY expressão [ ASC | DESC | USING operador ] [ NULLS { FIRST | LAST } ] [, ...] ] [ FOR { UPDATE | SHARE } [ OF nome_tabela [, ...] ] [ NOWAIT ] [...] ]

Page 13: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 13

SQL/DML–Consultas básicas, aninhadas, com funções de agregação e recursivas

Considerando os diversos parâmetros do comando SELECT, para efeito didático, vamos dividir nosso estudo em:

consultas básicas: no WHERE não existe outro SELECT

consultas aninhadas: no WHERE existe outro SELECT

consultas com tabelas de junção e funções de agregação: tipos de junção, funções: máximo, soma, média, etc

consultas recursivas: tabelas temporárias e fecho transitivo.

Page 14: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 14

SQL/DML

CONSULTAS BÁSICAS

Page 15: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 15

SQL/DML–SELECT-FROM-WHERE

Formato de comando SELECT para consultas básicas:

SELECT lista-de-atributos FROM lista-de-tabelas WHERE condição

OBS:– condições sem cláusula SELECT;– os exemplos a seguir seguem a numeração de EN e estão

baseados no BD company;

Page 16: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 16

SQL/DML–SELECT-FROM-WHERE (Esquema Company)

Page 17: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 17

SQL/DML–SELECT-FROM-WHERE (Uma instância de Company)

Page 18: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 18

SQL/DML - Seleção/projeção

QO) Listar a data de nascimento e o endereço dos empregados com nome : John B Smith

Page 19: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 19

SQL/DML- Exemplo Q0

Q0) Listar a data de nascimento e o endereço dos empregados com nome : John B. Smith.

SELECT bdate, address

FROM employee

WHERE fname=’John’ AND minit=’B’ AND lname=’Smith’;

Page 20: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 20

SQL/DML– Seleção/projeção/junção

Q1) Listar o nome e endereço dos empregados que trabalham no departamento ’Research’

Page 21: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 21

SQL/DML – Exemplo Q1

Q1) Listar o nome e endereço dos empregados que trabalham no departamento ’Research’

SELECT fname, minit, lname, address

FROM employee, department

WHERE dno=dnumber AND dname= ‘Research’

Page 22: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 22

SQL/DML- Junção com duas condições

Q2) Para todo projeto localizado em ’Stafford’, listar o número do projeto, o número do departamento que o controla e o último nome, endereço e data de nascimento do gerente do departamento.

Page 23: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 23

SQL/DML- Exemplo Q2

Q2) Para todo projeto localizado em ’Stafford’, listar o número do projeto, o número do departamento que o controla e o último nome, endereço e data de nascimento do gerente do departamento.

SELECT pnumber, dnum, lname, address, bdate

FROM project, department, employee

WHERE plocation=’Stafford’ AND dnum=dnumber AND ssn=mgrssn

Page 24: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 24

SQL/DML-Ambiguidade de nomes de atributos

Suponha que DNUMBER e NAME são os nomes dos atributos DNO e LNAME em EMPLOYEE, respectivamente. Além disso, suponha que NAME é o nome do atributo DNAME em DEPARTMENT.

Então:

employee(fname, minit, name, ssn, bdate, address, sex, salary, superssn, dnumber)

department(name, dnumber, mgrssn, mgrstartdate)

Page 25: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 25

SQL/DML – Qualificando atributos

Q1a) Listar o nome e endereço dos empregados que trabalham no departamento ’Research’ considerando os esquemas abaixo

employee(fname, minit, name, ssn, bdate, address, sex, salary, superssn, dnumber)

department(name, dnumber, mgrssn, mgrstartdate)

OBS:

ALTER TABLE employee RENAME COLUMN lname TO name;

Page 26: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 26

SQL/DML- Exemplo Q1a

Q1a) Listar o nome e endereço dos empregados que trabalham no departamento ’Research’ considerando os novos esquemas

SELECT fname, minit, employee.name

FROM employee, department

WHERE employee.dnumber=department.dnumber AND department.name=’Research’

Page 27: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 27

SQL/DML – Apelidos de Tabelas

Q8) Para cada empregado, liste o seu primeiro e o seu último nome acompanhados do último nome de seu supervisor.

Page 28: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 28

SQL/DML – Exemplo Q8

Q8) Para cada empregado, liste o seu primeiro e o seu último nome acompanhados do último nome de seu supervisor.

SELECT e.fname, e.lname, s.lname

FROM employee AS e, employee AS s

WHERE e.superssn=s.ssn

Page 29: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 29

SQL/DML – Apelidos de tabelas

Q1b') Listar o nome e o endereço dos empregados que trabalham no departamento ’Research’ considerando as novas tabelas employee e department e usando apelidos

Page 30: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 30

SQL/DML - Exemplo Q1b

Q1b') Listar o nome e o endereço dos empregados que trabalham no departamento ’Research’ considerando as novas tabelas employee e department e usando apelidos

SELECT fname, minit, e.name, address

FROM employee e, department d

WHERE e.dnumber=d.dnumber AND d.name=’Research’

Page 31: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 31

SQL/DML-Exemplo Q1c–Omitindo WHERE e uso do * para consulta sem projeção

Qlc') Listar todos os valores de atributos de todos os empregados

SELECT * FROM employee

Page 32: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 32

SQL/DML-Ex. Q10b – Produto Cartesiano

Q1Ob) Listar o produto cartesiano de empregados e departamentos

SELECT *

FROM employee, department

Page 33: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 33

SQL/DML - Tabela x relação// multset ou bags x set // Cláusula DISTINCT

Q11a) Listar todos os salários distintos

SELECT DISTINCT salary

FROM employee

Page 34: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 34

SQL/DML – Cláusula UNION

Q4) Listar os números dos projetos que envolvam um

empregado cujo último nome é ’Wong’ sendo que o empregado deve ser trabalhador ou gerente do departamento que controla o projeto.

Page 35: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 35

SQL/DML – Exemplo Q4

Q4) Listar os números dos projetos que envolvam um empregado cujo último nome é ’Wong’ sendo que o empregado deve ser trabalhador ou gerente do departamento que controla o projeto.

(SELECT DISTINCT pnumber

FROM project, department, employee

WHERE dnum=dnumber AND msgrssn=ssn AND lname=’Wong’)

UNION

(SELECT DISTINCT pnumber

FROM works_on, employee

WHERE essn=ssn AND lname=’Wong’)

Page 36: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 36

SQL/DML – Cláusula LIKE

Q12) Listar o nome de todo empregado cujo endereço está em Houston, Texas

Page 37: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 37

SQL/DML – Exemplo Q12

Q12) Listar o nome de todo empregado cujo endereço está em Houston, Texas

SELECT fname, minit, lname

FROM employee

WHERE address LIKE ’%Houston%TX%’

Page 38: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 38

SQL/DML – Like usando underline _

Q12a) Listar o nome de todos os empregados nascidos na década de 50

Page 39: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 39

SQL/DML - Exemplo Q12a

Q12a) Listar o nome de todos os empregados nascidos na década de 50

SELECT fname, minit, lnameFROM employeeWHERE CAST(bdate AS TEXT) LIKE ’_ _ 5%’

Page 40: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 40

SQL/DML – Expressões

Q13) Listar o nome e os salários resultantes de um aumento de 10% para os funcionários do projeto ’Productx’

Page 41: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 41

SQL/DML – Exemplo Q13

Q13) Listar o nome e os salários resultantes de um aumento de 10% para os funcionários do projeto ’Productx’

SELECT fname, minit, lname, salary*1.1 AS NewSalary

FROM employee, project, works_on

WHERE ssn=essn AND pno=pnumber AND pname=’ProductX'

Page 42: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 42

SQL/DML – Cláusula BETWEEN

Q14) Listar todos os empregados no departamento 5 cujo salário está entre 30000 e 40000

Page 43: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 43

SQL/DML – Exemplo Q14

Q14) Listar todos os empregados no departamento 5 cujo salário está entre 30000 e 40000

SELECT *

FROM employee

WHERE dno=’5’ AND salary BETWEEN 30000 AND 40000

Page 44: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 44

SQL/DML – Cláusula ORDER BY

Q 15) Listar os empregados e projetos em que eles estão trabalhando, ordenados pelo departamento e, dentro de cada departamento, ordenado pelo último e primeiro nome

Page 45: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 45

SQL/DML – Exemplo Q15

Q 15) Listar os empregados e projetos em que eles estão trabalhando, ordenados pelo departamento e, dentro de cada departamento, ordenado pelo último e primeiro nome

SELECT dno, fname, lname, pno

FROM employee, works on

WHERE essn=ssn

ORDER BY dno, fname, lname

Page 46: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 46

SQL/DML e o PostgreSQL

EXERCÍCIOS DE IMPLEMENTAÇÃO

=> Lab – Exemplos de consultas simples no esquema company

=> Lab – Exercícios de Consultas – Parte 1

Page 47: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 47

Bibliografia

• [EN] Capítulos 4,5• [SK] Capítulos 3,4,5 • [RG] Capítulos 5• [IRS] Material de Apoio na página da disciplina

Page 48: Banco de Dados Distribuídosilmerio/GES013/estSbd7aSQL_DML_basicas.pdf · UFU/FACOM Página 10 SQL/DML– UPDATE – Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila,

UFU/FACOM Página 48

FIM – SQL/DML e o PostgreSQL

Parte 1