GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas

Documentos relacionados
GBC043 - Sistemas de Banco de Dados SQL/DML no PostgreSQL. Ilmério Reis da Silva ilmerio@facom.ufu.br UFU/FACOM/BCC

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 2 Consultas Aninhaas

L Q S m e g a u g n Li A

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

A Linguagem SQL. Introdução a Banco de Dados DCC 011

GES013 Sistema de Banco de Dados. Modelo Relacional (R) Ilmério Reis da Silva ilmerio arroba ufu.br UFU/FACOM

Oscar Luiz Monteiro de Farias 1. Bancos de Dados. Mestrado em Engenharia de Computação área de concentração Geomática

DCC011 Introdução a Banco de Dados

GES013 - Sistema de Banco de Dados SQL DDL e Implementação no PostgreSQL

Processamento e Otimização de Consultas

DCC011 Introdução a Banco de Dados

DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados

BANCO DE DADOS II Conceitos Básicos. COTEMIG Gerson Borges

A Linguagem SQL. Introdução a Banco de Dados DCC 011

GBC043 Sistemas de Banco de Dados. Modelo Relacional (R) Ilmério Reis da Silva UFU/FACOM

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

Modelo de Dados Relacional

DCC011 Introdução a Banco de Dados

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

IMPLEMENTAÇÃO DE BANCO DE DADOS

GBC043 - Sistemas de Banco de Dados SQL DDL e Implementação no PostgreSQL

SQL-99: Esquema de BD EMPRESA

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Álgebra Relacional. Programa. Modelos de Dados. LCs relacionais formais. Introdução

SQL DCC011. SQL gerenciar tabelas e dados. Programa. Introdução. Introdução

Introdução ao PostgreSQL

ANÁLISE E PROJETO DE BANCO DE DADOS

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Banco de Dados. Professora: Luciana Faria

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

SQL. Prof. Roger Cristhian Gomes

Rápida revisão do Modelo Relacional

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

GBC043 Sistemas de Banco de Dados

Utilizando o Postgres - comandos SQL para a manipulação de dados

Banco de Dados I Introdução SQL

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL PostgreSQL. I Criação de Tabelas. Disciplina: Banco de Dados e suas Aplicações Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

GES013 - Sistema de Banco de Dados Funções e Gatilhos no PostgreSQL

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Discussão exercício aula 18. SQL Linguagem de Manipulação de Dados. Discussão exercício aula 18. Discussão exercício aula 18 SQL.

SQL-99: Definição de esquema, restrições básicas e consultas

SQL (Tópicos) Structured Query Language

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

Bancos (Bases) de Dados

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

Marcelo Henrique dos Santos

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

MySql. Introdução a MySQL. Andréa Garcia Trindade

SQL DML. Frederico D. Bortoloti

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Fundamentos de Banco de Dados Postgre com Sql

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

A linguagem SQL

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

Revisão de Bancos de Dados

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BCD29008 Banco de dados

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Apresentação Modelo e SQL. André Luiz Montevecchi

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

Linguagem de Consulta Estruturada (SQL)

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

Roteiro. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

GBC043 Sistemas de Banco de Dados Álgebra e Cálculo Relacional. Ilmério Reis da Silva UFU/FACOM

Comandos de Manipulação

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

GES013 Sistema de Banco de Dados Normalização de Relações em Projeto de BD (1FN a FNBC)

Linguagem SQL Sub-linguagem DDL

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Bases de Dados 2005/2006. Aula 5

Banco de Dados SQL. João Eduardo Ferreira Osvaldo Kotaro Takai

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Structured Query Language (SQL) Aula Prática

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

Transcrição:

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

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)

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 pelo PostgreSQL

UFU/FACOM Página 4 SQL/DML - INSERT INSERT INTO tabela [ ( coluna [,...] ) ] { DEFAULT VALUES VALUES ( { expressão DEFAULT } [,...] ) [,...] comando-select }

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) UFU/FACOM Página 5

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

UFU/FACOM Página 7 SQL/DML INSERT Exemplo 3 INSERT INTO tabela comando-select INSERT INTO works_on SELECT ssn, pnumber, 0 FROM employee, project;

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

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

UFU/FACOM Página 10 SQL/DML UPDATE Exemplo 1 UPDATE employee SET address = 'Av. Joao Naves de Avila, 2121', salary = salary * 1.5 WHERE ssn = '123456789'

UFU/FACOM Página 11 SQL/DML UPDATE Exemplo 2 UPDATE works_on SET (pno, hours) = (1, 10) WHERE essn='123456789';

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 ] [...] ]

SQL/DML Consultas básicas, aninhadas, com funções de agregação e recursivas UFU/FACOM Página 13 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.

UFU/FACOM Página 14 SQL/DML CONSULTAS BÁSICAS

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;

SQL/DML SELECT-FROM-WHERE (Esquema Company) UFU/FACOM Página 16

SQL/DML SELECT-FROM-WHERE (Uma instância de Company) UFU/FACOM Página 17

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

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 ;

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

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

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.

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

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)

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;

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

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.

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

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

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

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

UFU/FACOM Página 32 SQL/DML-Ex. Q10b Produto Cartesiano Q1Ob) Listar o produto cartesiano de empregados e departamentos SELECT * FROM employee, department

SQL/DML - Tabela x relação// multset ou bags x set // Cláusula DISTINCT UFU/FACOM Página 33 Q11a) Listar todos os salários distintos SELECT DISTINCT salary FROM employee

UFU/FACOM Página 34 SQL/DML Cláusula UNION Q4) Listar os números de projetos que envolvam um empregado cujo último nome é Smith sendo que o empregado deve ser trabalhador ou gerente do departamento que controla o projeto.

SQL/DML Exemplo Q4 Q4) Listar os números de projetos que envolvam um empregado cujo último nome é Smith 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= Smith ) UNION (SELECT DISTINCT pnumber FROM works_on, employee WHERE essn=ssn AND lname= Smith ) UFU/FACOM Página 35

UFU/FACOM Página 36 SQL/DML Cláusula LIKE Q12) Listar o nome de todo empregado cujo endereço está em Houston, Texas

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%

UFU/FACOM Página 38 SQL/DML Like usando underline _ Q12a) Listar o nome de todos os empregados nascidos na década de 50

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, lname FROM employee WHERE CAST(bdate AS TEXT) LIKE 5%

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

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'

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

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

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

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

SQL/DML e o PostgreSQL EXERCÍCIOS DE IMPLEMENTAÇÃO => Lab Exemplos de consultas simples no esquema company => Lab - Lista de exercícios Parte 1 UFU/FACOM Página 46

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

FIM SQL/DML e o PostgreSQL Parte 1 UFU/FACOM Página 48