Linguagem de Consulta Estruturada SQL- DML

Documentos relacionados
Linguagem de Consulta Estruturada SQL- DML

SQL DML CONSULTAS ENVOLVENDO MAIS DE UMA TABELA

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

ANÁLISE E PROJETO DE BANCO DE DADOS

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

Linguagem SQL Comando SELECT Agrupamento de Resultados

IMPLEMENTAÇÃO DE BANCO DE DADOS

SQL (Tópicos) Structured Query Language

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

BCD29008 Banco de dados

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

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

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

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

Linguagem SQL Sub-linguagem DDL

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

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

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

Rápida revisão do Modelo Relacional

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

TLBD II Instruções SQL

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

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

Prof. Fabiano Taguchi

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

BANCO DE DADOS PARA NINJAS

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

Banco de Dados. Professora: Luciana Faria

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

Manipulação de Dados com SQL

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

Sumário SELECT + FROM

Bancos (Bases) de Dados

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

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

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

Banco de Dados. Prof. Antonio

Page 1. Prof. Constantino Jacob

Manipulando a base de dados

Structured Query Language (SQL)

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

Curso de Banco de Dados. Prof. Rone Ilídio

Oracle Database: Fundamentos de SQL e PL/SQL

SQL. Prof. Roger Cristhian Gomes

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

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

SQL-99: Esquema de BD EMPRESA

Marcelo Henrique dos Santos

Banco de Dados I Introdução SQL

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

Comandos de Manipulação

Revisão + Visões + Sub-Consultas + JOINS

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

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

A linguagem SQL

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

Banco de Dados II. Aula do dia 10/03. Revisão. SQL Estudado até o dia 03/03/2011

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

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

PSI Linguagem de Manipulação de dados. Módulo 14

SQL - Consultas

Consultas SQL. Andre Noel

Oracle Database 11g: Introdução à Linguagem SQL Novo

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

SQL DML. Frederico D. Bortoloti

SQL Structured Query Language

Preparação. Na página do curso, fazer download do arquivo LabAula.txt; No EasySQL,

Definida pelo American National Standard Institute (ANSI) em 1986

STRUCTURED QUERY LANGUAGE (SQL)

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

Projeto de Banco de Dados

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução

Unidade 5 05/11/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

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

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

Ordenação de tuplos order by

BANCO DE DADOS. SQL Select. Engenharia da Computação. Aula 20. Vamos considerar a tabela EMP para os exemplos a seguir. SELECT colunas FROM tabelas;

SQL. Prof. Márcio Bueno.

Linguagem de Consulta - SQL

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

ACH2025. Laboratório de Bases de Dados. SQL Oracle Visão geral SELECT. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Múltiplas Tabelas. Disciplina de Banco de Dados

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

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

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

SQL Artigo e Resumo.

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

Introdução ao PostgreSQL

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

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

Introdução à linguagem SQL

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Transcrição:

Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas de desenvolvimento de bancos de dados relacionais. Sua vantagem sobre modelos de dados anteriores é que as operações realizadas sobre os dados são especificadas numa linguagem não procedural e conjuntos de dados são manipulados com um único comando. Isto faz com que os programadores não tenham de navegar por uma estrutura complexa de banco de dados, reduzindo a quantidade de código necessário para acessar os dados. SQL tornou-se padrão depois de 1986, quando o American National Standards Institute (ANSI), definiu a SQL como linguagem padrão para os bancos de dados relacionais. Desde então, o SQL já sofreu diversas atualizações oficiais. O novo padrão SQL chama-se SQL3, nesta versão a mais importante é a adição de características de orientação a objetos na linguagem.. Atualmente este padrão é utilizado para o acesso a diversos bancos de dados relacionais, tais como Oracle, DB2, SQL Server, Sybase, Mysql, Postgresql, Interbase, Firebird etc. Os comandos da SQL podem ser agrupados em três categorias: DML Data Manipulation Language DDL Data Definition Language DCL Data Control Language COMANDOS DA DML 1 - INSERT Permite inserir valores nos campos que compõem as tabelas de uma base de dados INSERT INTO nome_da_tabela( coluna i,..., coluna j ) VALUES (valor_ coluna i,... valor_ coluna j ) Caso se deseje inserir um campo com valor nulo empregasse o termo NULL para o valor da coluna Caso se deseje inserir todos os campos pode-se omitir o nome das colunas, desde que a inserção seja feita na mesma ordem na qual os campos foram criados pelo comando Create Table INSERT INTO nome_da_tabela VALUES (valor_ coluna i,... valor_ coluna j ) Ex: INSERT INTO FUNCIONARIO(matri, ome, comissao, comissao_variavel, admissao, admissao, sexo) VALUES (1,'ze',1000,500,0.02,'3-2-2001','M') INSERT INTO DEPARTAMENTO(cod, nome,orcamento) VALUES (3,'MANUTENCAO',80000) 2 - COMMIT Grava as alterações de uma transação permanente no Banco de Dados. COMMIT 3 - ROLLBACK Desfaz as alterações de uma transação confirmadas por meio de commit ROLLBACK 1

Considere a instância de banco de dados abaixo, do banco de dados funcionários, composto das tabelas funcionário e departamento: DEPARTAMENTO COD NOME ORCAMENTO MATR ======== ================ =================== ================ 1 desenvolvimento 100000.00 2 2 rede 200000.00 7 3 manutencao 80000.00 <null> FUNCIONARIO MATR NOME SALARIO COMISSAO ADMISSAO SEXO DEP_COD =================================================================================== 1 ze 1000.00 100.00 09-DEC-2000 M 1 2 ana 1500.00 200.00 10-NOV-2001 F 1 3 pedro 1000.00 <null> 21-JAN-1999 M 2 4 eva 2000.00 400.00 03-DEC-1998 F 1 5 ivo 1800.00 400.00 10-OCT-2000 M 3 6 sid 900.00 200.00 22-FEB-2001 M 2 7 ines 1500.00 400.00 01-NOV-2002 F 3 obs: o campo matr em DEPARTAMENTO tem a função de guardar a matricula do chefe do departamento e o campo DEP_COD em funcionario tem a função de guardar o departamento de alocação do funcionario. 4 SELECT Sintaxe Permite obter informações de uma ou mais tabelas do banco de dados. SELECT [atributo] { * tabela.* [tabela.]campo 1 [AS alias 1 ] [, [tabela.]campo 2 [AS alias 2 ] [,...]]} FROM expressãodetabelas [WHERE..condição. ] [GROUP BY... ] [HAVING... ] [ORDER BY... ] Parte Descrição Atributo Um dos atributos a seguir: ALL, DISTINCT. Você utiliza o atributo para restringir o número de campos retornados. Se nenhum for especificado, o padrão será ALL * Especifica que todos os campos da tabela ou tabelas especificadas estão selecionados. Tabela O nome da tabela contendo os campos a partir dos quais os campos são selecionados. campo1, campo2 Os nomes dos campos contendo os dados que você deseja recuperar. Se você incluir mais de um campo, eles serão recuperados na ordem listada. alias1, alias2 Os nomes a serem utilizados como cabeçalhos de coluna em lugar dos nomes originais de coluna em tabela. 2

Expressão de tabelas O nome da tabela ou tabelas contendo os dados que você deseja recuperar. Operadores relacionais para formação da condição na cláusula Where Expressão para formação da condição campo i = value campo i < value campo i > value campo i <= value campo i >= value campo i!< value campo i!> value campo i <> value campo i!= value Igual a Menor que Maior que Menor ou igual a Maior ou igual a Não menor que Não maior que Diferente de Não igual a Descrição Operadores lógicos para formação da condição na clausula where AND NOT OR Operadores aritméticos para formação da condição na clausula where + - / * Outros Operadores para formação da condição na cláusula Where Expressão para formação da condição campo i Between value AND value campo i Like value campo i IN (value, value,...value) campo i IS NULL campo i IS NOT NULL campo i CONTAINING value campo i STARTING WITH value Descrição Entre a faixa de valores passada Use '%' para 0 ou mais caracteres Use '_' para 1 único caractere Um dos elementos da lista Testa se o valor é nulo (ausência do valor) Testa se o valor é não nulo Procura em string case insentitive Procura em string case sentitive Obs: Os operadores aritméticos podem ser usados na cláusula Select Comparações com string são caso sensitivo no padrão SQL-ANSI String em comparações devem ser colocadas entre (aspas) Precedência na formação da cláusula Where 3

Os operadores relacionais possuem maior precedência do que os operadores lógicos Todos os operadores relacionais possuem a mesma precedência. O operador lógico and possui maior precedência do que o operador or Operadores de igual precedência são calculados da esquerda para a direita Exemplos: SELECT * OBS: o caracter * é empregado quando se deseja obter todos os campos, colunas, de uma tabela. SELECT funcionário.nome, funcionário.salario OBS: neste caso a referência ao campo é feita descrevendo-se o nome da tabela e o nome do campo, separado por ponto. Isto é empregado quando se deseja obter informações de mais de uma tabela, com uma tabela não é necessário empregar este recurso. SELECT f.nome, f.salario FROM funcionário f OBS: Neste caso foi empregado um alias para a tabela funcionario Atributos permitidos na cláusula Select SELECT [ALL DISTINCT] ALL é o default seu emprego faz com que colunas iguais apareçam no resultado de uma consulta DISTINCT seu emprego faz com que caso haja colunas iguais em um resultado de uma consulta elas sejam eliminadas Exemplos: SELECT COD é o mesmo que : SELECT ALL COD SELECT DISTINCT COD WHERE salario >= 1000 WHERE salario BETWEEN 1000 AND 1500 4

WHERE salário IN(1000,1500,2000) WHERE salário IS NULL WHERE nome LIKE S%, comissao WHERE salário < 500 AND comissao <100, comissao WHERE salário = 100 OR comissao = 100 WHERE NOT comissao = 100, comissao WHERE comissao is null, comissao WHERE salário > comissao + 100 + comissao + comissão AS total de ganhos Funções Permitem efetuar transformação sobre colunas especificadas. De modo que os valores NULL são ignorados nos cálculos efetuados pelas funções. Exemplos: Funções disponíveis: AVG(coluna) retorna a media dos valores da coluna especificada MAX(coluna) retorna o valor máximo da coluna especificada MIN(coluna) retorna o valor mínimo da coluna especificada SUM(coluna) retorna o soma dos valores da coluna especificada COUNT(coluna) retorna o total de tuplas, da coluna especificada, que satisfazem a cláusula WHERE SELECT AVG( salário) 5

SELECT MAX( salário) SELECT MIN( salário) SELECT SUM( salário) SELECT COUNT( nome) SELECT COUNT( dep_cod) SELECT COUNT( matri), SUM( salário), MIN( salário), MAX( salário), AVG(salário) SELECT COUNT(*) (retorna o total de tuplas da relação) Ordenação e agrupamento de resultados Estão disponíveis as seguintes cláusulas: Order by coluna i, coluna j,...,coluna n tem a função de ordenar os resultados segundo os campos especificados nesta cláusulas. O default e uma ordenação ascendente ASC, é possível ordenar de forma descendente usando DESC Group By coluna i, coluna j,...,coluna n tem a função de agrupar os resultados quando se emprega funções agregadas a cláusulas Select e um uma outra coluna sem função agregada. Having condição tem a função de especificar a condição em caso de agrupamentos usando Group By, substitui o where quando se emprega o group by. Os campos que compõem o having não precisam fazer parte do select. Exemplos: SELECT nome_fun, salário WHERE salário > 100 ORDER BY nome_fun SELECT nome_fun, salário WHERE salário > 100 ORDER BY salario DESC SELECT count(cod_fun), cod GROUP BY cod SELECT cod, count(*) 6

GROUP BY cod SELECT cod, count(*) GROUP BY cod HAVING count(*) <10 (neste caso ocorre a seleção onde cada grupo de cód tenha mais de 10 funcionarios) SELECT cod, count(*) GROUP BY cod HAVING AVG(salario) < 1000 (neste caso ocorre a seleção onde cada grupo de cód tenha como media salaria 1000) CONSULTAS ENVOLVENDO MAIS DE UMA TABELA As consultas envolvendo informações de mais de uma tabela podem ser realizadas por encadeamento ou join. Consultas Encadeadas - Sub-Consultas Permite que uma consulta seja feita sobre o resultado de uma outra consulta. Usada quando se deseja informações de uma tabela porém, a condição deve ser expressa com campos de outra tabela. Sintaxes possíveis: SELECT colunai,, colunan FROM tabelas WHERE colunaj = (SELECT colunaj FROM tabelas WHERE condições) SELECT colunai,, colunan FROM tabelas WHERE colunaj IN (SELECT colunaj FROM tabelas WHERE condições) SELECT colunai,, colunan FROM tabela1 WHERE colunaj OPERADOR DE COMPARAÇÃO ALL (SELECT colunaj FROM tabela2 WHERE condições) SELECT colunai,, colunan FROM tabela1 WHERE EXISTS (SELECT * FROM tabela2 7

Exemplos: WHERE coluna <relação> tabela1.colunai) EXISTS Verifica se um valor existe e ou está presente em pelo menos uma linha no retorno do SubQuery(*). Está clausula pode conter também NOT EXISTS. SELECT cod_fun, nome_fun WHERE cod = (SELECT cod WHERE cod_fun = 03 ) SELECT nome_fun, salario WHERE salario IN (SELECT salario WHERE cod = D1 ) SELECT nome_fun, salario WHERE salario > ALL (SELECT salario WHERE cod = D1 ) Apelidando tabelas É possivel determinar alias para as tabelas em uma consulta. Para isto basta colocar o apelido a ser usado após o nome da tabela na cláusula From SELECT apelido1.campo1_tab1, apelido1.campo n _tab1,... apelido2. campo k _tab2 FROM tab1 apelido1, tab2 apelido2 WHERE apelido1. campo j _tab1 = apelido2. campo l _tab2 AND apelido2. campo t _tab2 = xxxxx xx AND apelido1.campo m _tab1 = y Exemplo: SELECT f.nome, f.salario, d.nome f, departamento d WHERE f.cod = d.cod AND d.nome = rede AND f.sexo = F Consultas com Join Usada quando se deseja informações de mais de uma tabela. SELECT tabela1.coluna i,, tabela2.coluna n FROM tabelas1 JOIN tabela2 ON tabela1.coluna j, = tabela2.coluna k [WHERE condição(ões)] OBS: nem todos os SGBD aceitam o termo JOIN neste caso deves-se empregar a sintaxe abaixo 8

Que é o mesmo do que: Exemplos: SELECT tabela1.coluna i,, tabela2.coluna n FROM tabelas1, tabela2 WHERE tabela1.coluna j, = tabela2.coluna k [AND condição(ões)] SELECT funcionario.nome_fun, funcionario.salario_fun, departmento.nome_dep JOIN departamento ON funcionario.cod_dep = departamento.cod SELECT * JOIN departamento ON funcionario.cod = departamento.cod WHERE departamento.nome = rede Que é o mesmo que: SELECT *, departamento WHERE funcionario.cod = departamento.cod AND departamento.nome = rede SELECT funcionario.nome, funcionario.salario, departamento.nome, departamento WHERE funcionario.cod = departamento.cod AND departamento.nome = rede AND funcionario.sexo = F Que é o mesmo que: SELECT f.nome, f.salario, d.nome f, departamento d WHERE f.cod = d.cod AND d.nome = rede AND f.sexo = F 5 - UPDATE Permite modificar linhas existentes em uma tabela UPDATE tabela SET COLUNAj = valor,..., COLUNAn = valor WHERE condição Exemplo UPDATE funcionario SET comissao = 100 WHERE cód_fun = 02 UPDATE funcionario SET comissao = 100, salario = 1000 WHERE cód_fun = 02 9

6 - DELETE Permite eliminar linhas em uma tabela DELETE FROM tabela WHERE condição Exemplo: DELETE WHERE salário >1000 1