Professor: Marcus Sampaio Monitor: Eduardo Santiago Moura

Slides:



Advertisements
Apresentações semelhantes
BANCO DE DADOS I Prof. Ricardo Santos.
Advertisements

Aula – Comandos SQL no MYSQL Prof. Francisco Olivar Junior
Ana Paula B. Barboza Ivana Xavier Rodrigues
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Álgebra Relacional Marcelo Mendes Manaus
Banco de Dados Prof. Antonio.
Banco de Dados Aula 10 – SQL - DDL
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Segurança Renata Viegas.
SQL Structured Query Language (continuação)
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Projeto e Organização de BD
Modelo Relacional + SQL
Visões Marilde Santos.
Maurício Edgar Stivanello
SGBD.
SGBD.
Sistema Gerenciador de Banco de Dados SGBD
Introdução à Engenharia da Computação
Oficina sobre banco de dados
Material III-Bimestre Wagner Santos C. de Jesus
Linguagem de Banco de Dados - SQL
Linguagem de Banco de Dados - SQL
Linguagem de Banco de Dados - SQL
Banco de Dados SQL 2 Profa. Ceça.
Banco de dados Profª Kelly Medeiros.
Bancos de Dados SQL Server 2012 SQL DML - Data Manipulation Language)
SQL Álvaro Vinícius de Souza Coêlho
BANCO DE DADOS UNIVERSIDADE ESTADUAL DE SANTA CRUZ
Design Patterns / Acesso ao banco de dados (java.sql)
Tipos de Linguagens do Banco de Dados
(Linguagem de Consulta Estruturada)
Modelo E-R no Rational Rose
SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
Sistemas de Informação Prof. Carlos Alberto Seixas Banco de Dados II /01 UNIESP
Desenvolvendo um script SQL
Linguagem SQL.
VIEW - VISÕES Professor Esp. Diego André Sant’Ana
A Linguagem SQL Por Hélio de Almeida Fonte: Wikipédia.
Introdução a linguagem SQL
Linguagem de Definição de Dados
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
Baseado no material do Professor Raul Paradeda
REVISÃO Comandos SQL - DML SELECT * FROM ?.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
SCC Bancos de Dados e Suas Aplicações
Banco de Dados I Linguagem SQL e Álgebra Relacional 4P/SI – 2010/02
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
Controle de Concorrência
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
Professor Me. Jeferson Bussula Pinheiro.
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
Linguagem de definição de dados - SQL
Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 4 SQL básica.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Kelyn Schenatto. Definição Linguagem de Consulta Estruturada (Structured Query Language); Desenvolvida inicialmente nos anos 70 nos laboratórios da IBM.
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
Tema 1: Conceitos fundamentais de banco de dados
Banco de Dados para Redes– Aula 02 Prof. Me. Ronnison Reges Vidal
MS-SQL Server Structure Query Language
Transcrição da apresentação:

Professor: Marcus Sampaio Monitor: Eduardo Santiago Moura Banco de dados II Professor: Marcus Sampaio Monitor: Eduardo Santiago Moura

Keyword, clause e statement Keyword: faz referência a um elemento SQL individual. Ex: SELECT, FROM. Clause: é uma parte de um statement SQL. Ex: SELECT employee_id, last_name, ... Statement: é uma combinação de duas ou mais clauses. Ex: SELECT * FROM employees

SQL Statements SELECT Recupera dados da base INSERT UPDATE DELETE MERGE Cria novas linhas, modifica linhas existentes e remove linhas de tabelas da base de dados, respectivamente. Conhecidas como data manipulation language (DML) CREATE ALTER DROP RENAME TRUNCATE Cria, modifica e remove estruturas das tabelas. Conhecidas como data definition language (DDL) COMMIT ROLLBACK SAVEPOINT Manipula as modificações feitas pelas DML statements GRANT REVOKE Concede ou remove direito de acesso a base de dados. Conhecidas como data control language (DCL)

Select Clause SELECT É uma lista de uma ou mais colunas * Seleciona todas as colunas DISTINCT Elimina duplicatas column | expression Seleciona o nome da coluna ou expressão alias Renomeia as colunas selecionadas FROM table Tabela contendo as colunas selecionadas

Expressões Aritméticas * / + - : podem ser usados em qualquer cláusula de um statement exceto na cláusula FROM, com a respectiva precedência.

Usando ALIAS Renomeia uma coluna, muito útil para cálculos.

Where Clause A cláusula WHERE pode comparar valores em colunas, valores literais, expressões aritméticas ou funç ões.

Comparison Conditions = Igual > Maior >= Maior igual < Menor <= Menor igual <> Diferente BETWEEN ... AND ... Entre dois valores (inclusive) IN (lista) Comparação com qualquer valor da lista LIKE Comparação com um padrão de caracter IS NULL Verifica se o valor é null

Comparison Conditions

Comparison Conditions % : denota zero ou mais caracteres _ : denota um caracter

Expressões Lógicas AND, OR e NOT

Order By Clause Ordena as linhas de maneira: ASC: ascedentes (ordem default) DESC: ordem descendente Podem ser ordenados colunas que não estão no SELECT

Single-row functions

Single-row functions Number functions: DUAL: é uma tabela dummy que pode ser usada para ver resultados de funções ou cálculos.

Single-row functions Date functions: MONTHS_BETWEEN Número de meses entre duas datas ADD_MONTHS Adiciona meses a data NEXT_DAY Próximo dia da data especificada LAST_DAY Último dia da data especificada ROUND Arredonda a data TRUNC Trunca a data

Single-row functions Date functions: SYSDATE: é uma função que retorna a data e hora corrente

Single-row functions Conversion functions: a conversão de tipos de dados pode ser feita de duas formas: Conversão Implícita (feita automaticamente pelo Oracle) Conversão Explícita Implícita De Para VARCHAR2 ou CHAR NUMBER DATE VARCHAR2

Single-row functions Explícita TO_CHAR com datas

Single-row functions Date Format Model Existem inúmeros outros formatos, favor consultar material YYYY Ano completo em números YEAR Nome do ano falado MM Valor do mês com 2 dígitos MONTH Nome do mês completo MON Abreviação do mês com 3 letras DY Abreviação do dia da semana com 3 letras DAY Nome do dia da semana completo DD Dia do mês numérico

Single-row functions Explícita TO_CHAR com números

Single-row functions Number Format Model Elemento Descrição Exemplo Resultado 9 Qtd de 9s indica o tamanho do número exibido 999999 1234 Exibe 0s iniciais 099999 001234 $ Exibe o $ inicial $999999 $1234 L Exibe o símbolo monetário local L999999 FF1234 . Coloca ponto na posição desejada 999999.99 1234.00 , Coloca vírgula na posição desejada 999,999 1,234 MI Menos na direita 9999999MI 1234- PR Coloca parentizador 999999PR <1234> EEEE Notação científica 99.999EEEE 1.234E+03 V Multiplica por 10 n vezes (n = num 9s depois do V) 9999V99 123400 B Exibe valores zero em branco, não 0 B9999.99

Single-row functions Explícita TO_NUMBER TO_DATE

Single-row functions General functions: NVL (expr1, expr2) Converte um valor null para um valor atual NVL2 (expr1, expr2, expr3) If expr1 é null, NVL2 retorna expressão expr2. If expr1 é null, retorna expr3. NULLIF (expr1, expr2) Compara as duas expressões e retorna null if forem iguais ou expr1 se diferentes COALESCE (expr1, ..., exprn) Retorna a primeira expressão not-null da lista

Single-row functions General functions:

Single-row functions Conditional functions:

Single-row functions Conditional functions:

Cartesian Products É formado quando: A condição de join é omitida A condição de join é inválida Todas as linhas das tabelas “casam”

Join Simple Join: Usualmente, na condição de join são usadas as colunas de chave primária e chave estrangeira A condição de join é especificada na cláusula Where Regra geral: para fazer join de n tabelas são necessárias no mínimo n-1 condições de join

Join Regra geral:

Equijoin Equijoin: quando a primary key de uma tabela é exatamente igual a foreign key da outra. Também chamado de simple join e inner join

Equijoin Equijoin:

Table Aliases Vantagens: Simplifica as consultas Aumenta performace (muitas vezes os nomes da tabelas são grandes e usando alias, o SQL fica menor usando menos memória)

Nonequijoin Nonequijoin: Quando não há colunas comuns nas tabelas envolvidas em um relacionamento Consiste em um relacionamente obtido com um operador que não é o de igualdade (=), como, por exemplo, o BETWEEN

Nonequijoin Nonequijoin:

Outerjoin Outerjoin: Quando deseja-se retornar linhas que não válidas na condição do join Declarado pelo operador (+), colocado no lado do join deficiente de informação Para retornar inclusive linhas faltantes da tabela1 Para retornar inclusive linhas faltantes da tabela2

Outerjoin Outerjoin: Restrições: O operador só pode aparecer em 1 lado da condição do join Na condição envolvendo o outerjoin não podem ser usado os operadores IN ou OR.

Outerjoin

Selfjoin Selfjoin: O nome do gerente de cada empregado?

Selfjoin Selfjoin: O nome do gerente de cada empregado?

Group Functions _ = default AVG ( [DISTINCT | ALL] n ) Média do valor de n, ignorando valores nulos COUNT ( {* | [DISTINCT | ALL] expr} ) Número de linhas, onde expr avalia alguma coisa diferente de null ( contando todas as linhas usando *, incluindo duplicatas e linhas com valores nulos) MAX ( [DISTINCT | ALL] expr ) Valor máximo da expr, ignorando valores nulos MIN ( [DISTINCT | ALL] expr ) Valor mínimo da expr, ignorando valores nulos STDDEV ( [DISTINCT | ALL] x ) Desvio padrão de x, ignorando valores nulos SUM ( [DISTINCT | ALL] n ) Soma dos valores de n, ignorando valores nulos VARIANCE ( [DISTINCT | ALL] n ) Variância de n, ignoranodo valores nulos

Group Functions Avg e Sum para tipos numéricos Max e Min para qualquer tipo de dados

Group Functions Count (*) retorna o nº de linhas da tabela Count (expr) retorna o nº de linhas com valores não-nulos da expr

Group Functions Group Functions ignoram valores nulos nas colunas, para forçar sua inclusão pode-se utilizar NVL

Group by Clause Objetivo: Dividir linhas da tabela em grupos menores Sintaxe: Todas as colunas do SELECT que não estiverem em Group Functions, deve ser declaradas no Group by

Group by Clause Order by: por default as linhas tem ordenação ascendente, mas podem ser modificados através da cláusula Order by

Group by Clause Illegal Queries: ao utilizar uma mistura de campos simples (colunas) e funções de agregação é obrigatório incluir os campos simples na cláusula do group by

Group by Clause Gropu by de múltiplas colunas

Having by Clause Objetivo: Restringir grupos Sintaxe: Apenas os grupos que satisfazerem a condição são retornados

Subquery A subquery (inner query) é executada primeiro que a query principal O resultado da subquery pode ser usado na query principal (outer query) Sintaxe:

Subquery Problema: Consulta Principal: Quais empregados tem o salário maior que o de Abel? Consulta Interna: Qual é o salário de Abel?

Types of Subqueries Single-row: consulta interna que retorna uma única linha do SELECT interno Multiple-row: consulta interna que retorna mais de uma linha do SELECT interno

Single-row Subqueries Operadores de comparação: = Igual > Maior >= Maior igual < Menor <= Menor igual <> Diferente

Single-row Subqueries

Having Clause with Subqueries O servidor Oracle executa as subqueries primeiro O servidor Oracle retorna o resultado para a cláusula HAVING da consulta principal

Multiple-row Subqueries Operadores de comparação: IN Igual a qualquer menbro da lista ANY Compara o valor com cada valor retornado da subquery ALL Compara o valor todos os valores retornados da subquery

Multiple-row Subqueries

Data Manipulation Language (DML) Um statement DML é executado quando: Adiciona-se uma linhas em uma tabela Modifica-se linhas existentes de uma tabela Remove-se linhas existentes de uma tabela Uma transação consiste de um coleção de statements DML que formam uma “unidade lógica de trabalho”

Insert Statement Sintaxe: Com essa sintaxe um único valor pode ser inserido por vez

Insert Statement Método implícito: omissão de colunas Método explícito: ao omitir as colunas, deve-se inserir NULL para colunas indesejadas Copiando valores:

Update Statement Sintaxe: Com essa sintaxe uma ou mais linhas podem ser inseridas por vez

Update Statement

Delete Statement Sintaxe: Exemplos:

Create Table Statement Sintaxe: Exemplo:

Data Types

Datetime Data Types TIMESTAMP: é uma extensão do tipo Date Armazena o ano, mês, dia, mais a hora, minuto e segundo

Alter Table Statement Usado: Adicionar uma nova coluna Modificar uma coluna existente Definir o valor default de uma coluna Drop de uma coluna CREATE TABLE, ALTER TABLE, DROP TABLE Constraints (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK)

Alter Table Statement

Drop Statement Atenção: Comentários (tabela ou colunas): Todos os dados e estruturas da tabela são deletados Qualquer transação pendente é “commitdada” Todos os índices são deletados Comentários (tabela ou colunas): Constraints (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK)

Constraints Definindo constraints: NOT NULL Especifica que a coluna não pode conter valores nulos UNIQUE Especifica que a coluna ou um conjunto de colunas contenham valores únicos para todas as linhas da tabela PRIMARY KEY Identifica únicamente cada linha da tabela FOREIGN KEY Estabelece uma chave de relacionamento entre colunas da referente tabela e da tabela referenciada CHECK Especifica que a condição deve ser verdadeira Constraints (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK)

Not Null Garante que valores nulos não são permitidos para a especificada coluna Constraints (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK)

Unique Garante que cada valor em uma coluna ou conjunto de colunas seja único Constraints (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK)

Primary Key e Check Constraints (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK)

Foreign Key Constraints (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK)

Foreign Key Constraints (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK)