Objetivo Possibilitar a obteno de conceitos bsicos emconsultas SQL; Abordar o uso dos principais comandos para desenvolver consultas simples e sub-consultas; Usar funes e operadores de conjunto de dados. Ementa Introduo ao banco de dados Oracle Recuperar dados usando a instruo SQL SELECT Retornar e classificar dados Usar funes de linha simples Usar funes de converso e expresso condicional Retornar dados agregados usando funes de grupo Retornar dados a partir de mltiplas tabelas Usar sub-consultas para resolver consultas Usar operadores de conjunto Agenda 1 Dia Introduo ao banco de dados Oracle Arquitetura de comunicao do banco de dados Entender estruturas relacionais Normalizar dados Comandos SQL Utilizar interface grfica Criar uma conexo com o banco de dados Criar esquema Recuperar dados usando a instruo SQL SELECT Introduzir as capacidades da instruo SQL SELECT Executar uma instruo SELECT bsica Exemplos e Exerccios Agenda 2 Dia Retornar e classificar dados Limitando as linhas que so retornadas por uma consulta Classificando as linhas que so retornadas por uma consulta Utilizando o & comercial para restringir e classificar linhas em tempo de execuo Usar funes de linha simples Descrever os tipos de funes disponveis em SQL Usar funes de caractere, nmero e data em instrues SQL Exemplos e Exerccios Agenda 3 Dia Usar funes de converso e condicional Usar funes de converso TO_CHAR, TO_NUMBER e TO_DATE Usar funes tratamento de valores nulos: NVL, NVL2, NULLIF e COALESCE Usar funes condicionais: DECODE e CASE Retornar dados agregados usando funes de grupo Apresentar as funes de grupo simples e aninhadas Criar grupo de dados usando a clusula GROUP BY Incluir ou excluir grupos de dados usando a clusula HAVING Exemplos e Exerccios Agenda 4 Dia Retornar dados a partir de mltiplas tabelas Escrever instrues SELECT para acessar dados usando equijoins, nonequijoins e self-join Escrever instrues SELECT para gerar produto cartesiano Usar sub-consultas para resolver consultas Definir sub-consultas Descrever os tipos de problemas que as sub- consultas podem resolver Listar os tipos de sub-consultas Escrever sub-consultas de linhas simples e mltiplas linhas Exemplos e Exerccios Agenda 5 Dia Usar operadores de conjunto Descrever os operadores de conjunto Usar os operadores de conjunto para combinar mltiplas consultas Controlar a ordem das linhas retornadas Exemplos e Exerccios Introduo ao banco de dados oracle Arquitetura de comunicao A figura representa o processo de comunicao entre o usurio e o SGBD Oracle. Estrutura relacional - Human Resources (Esquema: HR) Modelo Entidade Relacionamento Lgico Modelo Entidade Relacionamento Fsico Relacionamento Veja um exemplo de relacionamento entre employees e departments utilizando primary key e foreign key. Interface grfica (SQL Developer) Recuperar dados usando instrues SQL SELECT Objetivo: Listar a capacidade de uma instruo SQL SELECT; Executar uma expresso SELECT. Tpicos: Instruo SELECT bsica; Expresses aritmticas e valores nulos; Apelido (alias) de colunas; Operadores de concatenao e DISTINCT; Comando DESCRIBE Capacidade de uma instruo SQL SELECT Banco de dados relacionais cresceram a partir de um forte conceito matemtico definido como teoria relacional ou formalmente chamado de lgebra relacional; Os conceitos da teoria relacional de projeo, seleo e juno abrangem a capacidade da instruo SELECT. Projeo As consultas abaixo so utilizadas para demonstrar o uso do conceito de projeo. Seleo Veja nas figuras a diferena entre o retorno de todos os registros da tabela e a seleo do employee_id = 102. Juno Em complemento aos exemplos anteriores, visualize o resultado da juno entre as tabelas employees e departments. Instruo SQL As instrues SQL SELECT so ilimitadas combinaes de projeo, seleo e juno (projection, selection e join); A identao importante para manter a legibilidade do cdigo (cada clusula em uma linha); Cada instruo deve ser separada por ; ou / em especial quando houver a necessidade de escrever mais de uma instruo SQL. Instruo SQL (cont.) As palavras reservadas podem ser maisculas e/ ou minsculas (aconselha-se o uso em maiscula); As palavras reservadas no podem ser usadas como nome de coluna ou de objetos do banco de dados; As palavras SELECT e FROMso obrigatrias (mandatory). Instruo SELECT bsica Selecionando todas as colunas Instruo SELECT bsica Selecionando colunas especificas Expresses aritmticas Operadores de precedncia A tabela abaixo apresenta os operadores utilizados na expresso aritmtica da instruo SELECT, assim como o nvel de precedncia. Expresses aritmticas Operadores de precedncia A instruo abaixo calcula a quantidade de dias trabalhados pelo empregado em cada funo ocupada. Expresses aritmticas Operadores de precedncia Nas instrues abaixo possvel visualizar a diferena dos resultados apresentados com e sem o uso do (). Definindo dados nulo (NULL) NULL se refere a ausncia de dados; Zero e espao so diferentes de NULL, pois ocupamespao; Expresso aritmtica entre colunas comvalores nulos sempre retornam NULL; A existncia do NULL ignorada emconcatenao entre caracteres. Definindo valores nulos (Exemplos) Expresso aritmtica com NULL Concatenao entre caracteres Apelido (alias) de colunas O alias definido formalmente com a palavra AS (opcional); Pode ser um nome alternativo para uma coluna ou expresso; Existemalgumas regras para seu uso: O uso da permite que o apelido contenha espaos e preserva a estrutura da escrita; Se o apelido no estiver com este sempre aparecer emmaisculo (UPPERCASE). Apelido (alias) de colunas Expresso semalias Expresso com alias Operadores de concatenao Possibilita a unio entre caracteres de duas ou mais colunas; Retornar como resultado sempre uma expresso de caracteres; O tipo de dado determina a sada da consulta (visualizao), se este dado numrico o resultado ser a direita, se caracter ou data a esquerda. Operadores de concatenao Na instruo a seguir ocorre a concatenao entre coluna e caracteres, almdo uso de expresso aritmtica. Valores literal Todo dado do tipo numrico, data e caracteres pode ser um valor literal. Os tipos data e caractere devem estar entre . So utilizados na instruo SELECT. Valores literal O valor literal definido retornado para todas as linhas da consulta; Abaixo est sendo usado os valores literal Funo e Menor salrio concatenado comoutras colunas. Duplicidade de linhas - DISTINCT Possibilita a eliminao de registros duplicados. As colunas utilizadas na instruo DISTINCT influenciamo resultado gerado pela consulta. Duplicidade de linhas - DISTINCT Quando utilizar? Imagine que voc deseja identificar todos os job_id da tabela employees. Como pode ser visualizado, os registros esto duplicados. Como resolver? Duplicidade de linhas DISTINCT (cont.) Veja abaixo o resultado da consulta com o uso do comando DISTINCT. Duplicidade de linhas DISTINCT (cont.) Agora voc deseja saber quais so os job_id de cada departamento; Observe no exemplo o uso do DISTINCT com duas colunas na lista SELECT. Comando DESCRIBE (DESC) Permite visualizar a estrutura dos dados da tabela; O nome de uma tabela definido como: [nomeDoEsquema].nomeDaTabela; Comando DESCRIBE (DESC) Nas figuras abaixo possvel visualizar a estrutura da tabela das seguintes formas: com o uso do comando DESC e atravs da IDE. Se todos ns fizssemos as coisas de que somos capazes, literalmente espantaramos a ns mesmos. (Thomas Edison) Exerccios