Linguagem de Consulta Estruturada SQL- DML



Documentos relacionados
Linguagem de Consulta Estruturada SQL- DML

Linguagem SQL Sub-linguagem DDL

Banco de Dados. Prof. Antonio

Structured Query Language (SQL)

Comandos de Manipulação

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

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

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

SQL Structured Query Language

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

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

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

SQL DML. Frederico D. Bortoloti

O que são Bancos de Dados?

PHP INTEGRAÇÃO COM MYSQL PARTE 1

EXERCÍCIOS PRÁTICOS. Banco de Dados

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

EXEMPLOS DE COMANDOS NO SQL SERVER

SQL DML CONSULTAS ENVOLVENDO MAIS DE UMA TABELA

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

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

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

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Definida pelo American National Standard Institute (ANSI) em 1986

Sistemas de Banco de Dados

SQL UMA ABORDAGEM INTERESSANTE

Introdução à linguagem SQL

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

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

Banco de Dados. Structured Query Language SQL. Prof. Walteno Martins Parreira Jr 1.

SQL. Prof. Márcio Bueno.

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

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

NOME SEXO CPF NASCIMENTO SALARIO

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada

Linguagem de Consulta - SQL

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

Introdução ao SQL Avançado

Pedro F. Carvalho OCP Oracle g LINGUAGEM SQL. São José do Rio Preto

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

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

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

Introdução ao SQL. Aécio Costa

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

Principais Comandos SQL Usados no MySql

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Treinamento sobre SQL

DML - SELECT Agrupando Dados

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha.

Curso PHP Aula 08. Bruno Falcão

Escrito por Sex, 14 de Outubro de :12 - Última atualização Seg, 26 de Março de :33

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Principais Instruções em SQL

Linguagem de Consulta - SQL

Bases de Dados. DML Data Manipulation Language Parte 1

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Programação SQL. Introdução

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

Exercícios de Lógica Exercícios de Fixação 08

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

Introdução ao SQL. O que é SQL?

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

IMPLEMENTAÇÃO DE BANCO DE DADOS

Banco de Dados. Maurício Edgar Stivanello

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

António Rocha Nuno Melo e Castro

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

Tarefa Orientada 16 Vistas

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

Linguagem de Consulta Estruturada (SQL)

SQL. Autor: Renata Viegas

SQL (Linguagem de Consulta Estruturada)

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

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

Tarefa Orientada 15 Manipulação de dados

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

DESENVOLVIMENTO DE SOFTWARE

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Programação SQL. INTRODUÇÃO II parte

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

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

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Linguagem SQL Parte I

ADMINISTRAÇÃO DE BANCO DE DADOS

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

A linguagem SQL

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

SQL. Hélder Antero Amaral Nunes

4.6. SQL - Structured Query Language

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 986, 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 DTL Data Transaction Language A DDL disponibiliza comandos que permitem criar e eliminar base de dados, tabelas e indices alem de disponibilizar comandos que eliminar todos os dados da tabela e alteram a estrutura da tabela A DML disponibiliza comandos que permitem manipular os dados das tabelas no banco de dados Principais comandos A DCL disponibiliza comandos que definem usuários e controla o acesso destes aos dados na base de dados. A DTL disponibiliza comandos que controlam transações a serem realizadas no banco de dados Principais comandos das sub-linguagens da SQL DML DDL DCL DTC Insert update delete select Create table Drop table Create database Drop database alter table truncate create index drop index Create user create role drop user drop role create view drop view grant revoke Start transaction commit rollback

COMANDOS DA DML 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_CHEFE =========================================================== desenvolvimento 00000.00 2 2 rede 200000.00 7 3 manutencao 80000.00 <null> Banco de dados Funcionarios FUNCIONARIO MATR NOME SALARIO COMISSAO ADMISSAO SEXO DEP_COD =============================================================================== ze 000.00 00.00 09-DEC-2000 M 2 ana 500.00 200.00 0-NOV-200 F 3 pedro 000.00 <null> 2-JAN-999 M 2 4 eva 2000.00 400.00 03-DEC-998 F 5 ivo 800.00 400.00 0-OCT-2000 M 3 6 sid 900.00 200.00 22-FEB-200 M 2 7 ines 500.00 400.00 0-NOV-2002 F 3 obs: o campo matr_chefe em DEPARTAMENTO tem a função de guardar a matricula do funcionario que é o chefe do departamento e o campo DEP_COD em funcionario tem a função de guardar o departamento de alocação do funcionario. - INSERT Permite inserir valores nas tuplas, linhas, de uma tabela de uma base de dados Sintaxe: INSERT INTO nome_da_tabela( coluna i,..., coluna j ) VALUES (valor_ coluna i,... valor_ coluna j ) Obs: Caso se deseje inserir um campo com valor nulo emprega-se 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 ) INSERT INTO FUNCIONARIO(matr, nome, comissao, admissao, admissao, sexo) VALUES (8,'zelupe',000.68,550,'3-2-200','M') INSERT INTO DEPARTAMENTO(cod, nome,orcamento) VALUES (4,'VENDAS',6000) 2

2 - UPDATE Permite modificar linhas existentes em uma tabela Sintaxe: UPDATE tabela SET COLUNAj = valor,..., COLUNAn = valor WHERE condição Mudar a o valor da comissão do funcionario de matr 02 para 00 UPDATE funcionario SET comissao = 00 WHERE matr = 02 Alterar para 00 reais, o valor da comissão, e para 000, o valor do salario, do funcionario de matr 04 3 - DELETE UPDATE funcionario SET comissao = 00, salario = 000 WHERE matr = 04 Permite eliminar linhas em uma tabela Sintaxe: DELETE FROM tabela WHERE condição Exemplo: Excluir todos os funcionarios com salario superior a 000 reais DELETE WHERE salário >000 4 SELECT Sintaxe Permite obter dados das tabelas contidas no base de dados. SELECT [atributo] { * tabela.* [tabela.]campo [AS alias ] [, [tabela.]campo 2 [AS alias 2 ] [,...]]} FROM expressãodetabelas [WHERE..condição. ] [GROUP BY... ] [HAVING... ] [ORDER BY... ] 3

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. campo, 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. alias, alias2 Os nomes a serem utilizados como cabeçalhos de coluna em lugar dos nomes originais de coluna em tabela. 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 cláusula where AND OR NOT Operadores aritméticos para formação da condição na cláusula 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 Descrição Entre a faixa de valores passada Use '%' para 0 ou mais caracteres Use '_' para ú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 4

campo i STARTING WITH value 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 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 Obter todos os dados de funcionario SELECT * OBS: o caracter * é empregado quando se deseja obter todos os campos, colunas, de uma tabela. SELECT funcionario.nome, funcionario.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 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 SELECT MATR é o mesmo que : SELECT ALL MATR Exemplo: 5

Diferenças: SELECT DISTINCT DET_COD obs: Esta consulta nos permite visualizar o codigo dos departamentos, sem repetição, nos quais existem funcionarios alocados. Caso não empregarmos o distinct teremos uma repetição desnecessário dos codigos que aparecem mais de uma vez na tabela. DEP_COD ========== 2 3 2 3 SELECT DET_COD DEP_COD ========== 2 3 SELECT DISTINCT DET_COD Obter o nome e salario dos funcionários com salario maior ou igual a 00 reais WHERE salario >= 000 Obter o nome e salário dos funcionários com salario entre 000 e 500 reais WHERE salario BETWEEN 000 AND 500 Obter o nome e salario dos funcionários com salario de 00 ou 500 ou 200 reias WHERE salário IN(000,500,2000) Obter o nome e salario dos funcionários com salario nulo WHERE salário IS NULL Obter o nome e salario dos funcionários cujo nome comece com a letra S WHERE nome LIKE S% Obter o nome, salario e a comissão dos funcionários com salario superior a 500 reais e comissão inferior a 200 reais, comissao 6

WHERE salário < 500 AND comissao <200 Obter o nome, salario e a comissão dos funcionarios com salario igual a 00 reais ou comissão igual a 00 reais, comissao WHERE salário = 00 OR comissao = 00 Obter o nome, salario dos funcionarios que não possuem comissão com valor de 00 reais WHERE NOT comissao = 00 Obter o nome, salario e a comissão dos funcionarios com comissão nula, comissao WHERE comissao is null Obter o nome, salario e a comissão dos funcionarios sua comissão adicionada com 00 reais seja menor do que seu salário, comissao WHERE salário > comissao + 00 Obter o nome e seus ganhos (salario + comissão) de todos os funcionarios que possuam comissão não nula + comissao WHERE comissao is not null Obter o nome e seus ganhos (salario + comissão), renomeando a coluna como total de ganhos, de todos os funcionarios que possuam comissão não nula + comissão AS total de ganhos WHERE comissao is not null 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. 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 7

Qual a media dos valores dos salarios pagos? SELECT AVG( salario) Qual o maior valor de salário pago? SELECT MAX( salario) Qual o menor valor de salário pago? SELECT MIN( salario) Qual o valor total gasto com salários? SELECT SUM( salario) Quantos funcionários de nomes distintos existem? SELECT COUNT( nome) Em quantos departamentos existem funcionarios alocados? 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. Obter o nome e salarios dos funcionários cujo salario seja superior a 000 ordene por nome do funcionario SELECT nome_fun, salário 8

WHERE salário > 000 ORDER BY nome Obter o nome e salarios dos funcionários cujo salario seja superior a 000 ordene de forma decrescente por salario SELECT nome_fun, salário WHERE salário > 000 ORDER BY salario DESC Obter o os codigos dos departametos e as quantidades de funcionarios alocadas neles ou SELECT dep_cod, count(dep_cod) GROUP BY dep_cod SELECT dep_cod, count(*) GROUP BY dep_cod Obter o os códigos dos departametos e as quantidades de funcionarios alocadas neles dos departamentos que possuam 3 ou mais funcionarios SELECT dep_cod, count(*) GROUP BY dep_cod HAVING count(*) < 3 (neste caso ocorre a seleção onde cada grupo de cód tenha mais de 0 funcionarios) Obter o os códigos dos departametos e as quantidades de funcionarios alocadas neles dos departamentos que cuja media salarial seja menor do que 000 reais SELECT dep_cod, count(*) GROUP BY dep_cod HAVING AVG(salario) < 000 (neste caso ocorre a seleção onde cada grupo de cód tenha como media salaria 000) 9