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



Documentos relacionados
Comandos de Manipulação

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

Á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. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

SQL. Prof. Márcio Bueno.

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

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

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

Introdução ao SQL. Aécio Costa

SQL DML. Frederico D. Bortoloti

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

SQL DDL. Frederico D. Bortoloti

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

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (

Structured Query Language (SQL) Aula Prática

SQL. Autor: Renata Viegas

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

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

Linguagem SQL Sub-linguagem DDL

A linguagem SQL

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

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

Linguagem de Consulta - SQL

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

SQL (Structured Query Language)

Definida pelo American National Standard Institute (ANSI) em 1986

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

SQL (Structured Query Language)

SQL (Structured Query Language)

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Linguagem SQL. Comandos Básicos

Banco de Dados. Prof. Antonio

Comandos DDL. id_modulo = id_m odulo

SQL Structured Query Language

PHP INTEGRAÇÃO COM MYSQL PARTE 1

SQL (Structured Query Language)

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

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

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

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

Programação SQL. Introdução

Linguagem de Consulta Estruturada (SQL)

Banco de Dados. Maurício Edgar Stivanello

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

EXEMPLOS DE COMANDOS NO SQL SERVER

Structured Query Language (SQL)

Linguagem de Consulta Estruturada SQL- DML

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

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

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

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

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Linguagem SQL (Parte II)

SQL (Linguagem de Consulta Estruturada)

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Projeto e Implementação

SQL. Banco de Dados I. Componentes de SQL

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

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

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

BANCO DE DADOS Parte 4

SQL - Criação de Tabelas

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

SQL (STRUCTUREDQUERY LANGUAGE)

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina

Engenharia de Computação / Engenharia de Produção. Banco de Dados Prof. Maria das Graças da Silva Teixeira

Prof.: Clayton Maciel Costa

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

DML - SELECT Agrupando Dados

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

Rápida revisão do Modelo Relacional

SQL: Definição de tabelas, Modificações à Base de Dados

Linguagem SQL (Parte I)

EXERCÍCIOS PRÁTICOS. Banco de Dados

Banco de Dados I SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

Tarefa Orientada 16 Vistas

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Tarefa Orientada 15 Manipulação de dados

Projeto de Banco de Dados

4.6. SQL - Structured Query Language


Linguagem SQL Parte I

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

NOME SEXO CPF NASCIMENTO SALARIO

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

O que são Bancos de Dados?

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

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

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)

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

Transcrição:

Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de SGBD relacional SQL1 - padrão ANSI em 1986. SQL2 - padrão revisado em 1992. SQL3 - em andamento (conceitos de orientação a objetos - inclui objetos espaciais) Compreende: Linguagem de consulta (QL) Recuperação de dados Linguagem de definição de dados (DDL) Criação e remoção de esquema Definição de visões Linguagem de manipulação de dados (DML) Baseada em álgebra e cálculo relacional Inserção, remoção e modificação de tuplas no BD Linguagem de manipulação de dados embutida Linguagens hospedeiras como Cobol, Pascal e C Autorização de acesso Restrições de integridade Controle de transações SQL utiliza os termos Tabela, Linha e Coluna para representar Relação, Tupla e Atributo. Componentes de um esquema Tabelas, visões, domínios, restrições de integridade e autorização de acesso. Catálogo Coleção de esquemas-sql em um ambiente. Esquemas em um mesmo catálogo podem compartilhar elementos. Definição de Tabelas Colunas são especificadas como tendo um tipo básico (ou domínio) associado. Podem apresentar restrições e/ou valores default. Exemplo: CREATE TABLE APARELHOS (NumAp INTEGER NOT NULL, Tipo CHAR (15), Idade INTEGER, Dono CHAR (20), PRIMARY KEY (NumAp), FOREIGN KEY (Tipo) REFERENCES TIPOS );

Definição de Esquemas em SQL (cont.) Principais Cláusulas: NOT NULL é requerido para colunas obrigatórias. Atributos da chave primária não podem ser nulos. PRIMARY KEY - especifica um ou mais atributos da chave primária. UNIQUE - especifica chaves alternativas FOREIGN KEY - integridade referencial Observação: Colunas são ordenadas pela sua ordem de definição (linhas não tem ordenação) Definição de domínios CREATE DOMAIN TIPO-NOME AS CHAR(20); CREATE DOMAIN TIPO-NUM AS INTEGER; CREATE TABLE TÉCNICOS ( NumTec TIPO-NUM NOT NULL, Nome TIPO-NOME, Cargo TIPO-NOME, PRIMARY KEY (NumTec) ); DROP TABLE TIPOS CASCADE Elimina tabela e mantém integridade referencial. ALTER TABLE TIPOS ADD Prazo-Médio DATE; Altera esquema de uma tabela existente. Estrutura básica: [ <lista de colunas> <lista de tabelas> <condição>] Uma consulta típica: A1,A2,A3,...,A n R1,R2,R3,...,R n P é equivalente em álgebra relacional a: A1,A2,A3,...,An (σ P (R1xR2xR3x...xR n )) Exemplos de Comandos SQL Seleção de tuplas (inclui todos os atributos) Obter os aparelhos do tipo Lavadora. * APARELHOS Tipo = Lavadora Obter o nome de todos os técnicos. Nome TÉCNICOS

Seleção com projeção Obter o número, tipo e idade de todos os aparelhos cujos donos são Paulo ou Pedro. NumAp,Tipo, Idade APARELHOS dono = Pedro OR dono = Paulo Seleção com Junção Obter os nomes dos técnicos com experiência em secadora Nome TÉCNICOS, EXPERIÊNCIA NumTec = NumTecnico AND Tipo = Secadora Obter o número dos aparelhos da categoria 2 NumAp TIPOS, APARELHOS Tipos.Tipo = Aparelhos.Tipo AND Categoria = 2 Uso de Aliases Permite associar um nome de variável para cada relação, simplificando os comandos SQL. Liste o nome dos técnicos e sua experiência em aparelhos da categoria 1 C.Nome, E.AnosExp, T.Tipo TECNICOS C, TIPOS T, EXPERIENCIA E T.Tipo = E.Tipo AND E.NumTecnico = T.NumTec AND T.Categoria = 1 Permite relacionar uma mesma relação 2 vezes. Liste os donos de aparelhos que possuem mais de um aparelho em conserto A.Dono APARELHOS A, APARELHOS B A.Dono = B.Dono AND A.NumAp!= B.NumAp Nomes duplicados: usar qualificação quando o mesmo atributo aparecer em mais de uma tabela.

Tabelas como Conjuntos Em geral, SQL não trata a relação como conjunto. Tuplas duplicadas podem aparecer nas relações. Motivos: 1) Eliminar duplicatas é uma operação demorada. Uma solução seria ordenar as tuplas e depois eliminar as diplicatas. 2) O usuário pode querer ver as tuplas duplicadas. 3) Funções agregadas normalmente consideram as tuplas duplicadas (ver funções agregadas). Cláusula DISTINCT Força a eliminação de duplicatas. Obter o nome de todos os donos de aparelhos. DISTINCT Dono APARELHOS Operações com Conjuntos UNION - INTERSECT - EXCEPT (diferença) Relações resultantes são conjuntos (sem duplicatas). Cláusula ALL permite manter tuplas duplicatas. Ex.: Relação UNION ALL Relação Relações devem ser compatíveis para união. Exemplos de Operações com Conjuntos Número dos técnicos que sejam senior ou que possuam mais de 10 anos de experiência em algum tipo de aparelho ( NumTec TECNICOS Cargo = senior ) UNION ( NumTecnico EXPERIÊNCIA AnosExp > 10)

Consultas Aninhadas Nome e cargo dos técnicos com experiência acima de 5 anos em aparelhos do tipo Lavadora Nome, Cargo TECNICOS NumTec IN ( NumTecnico EXPERIÊNCIA AnosExp > 5) Operador IN avalia um valor v em um conjunto V Sev V o resultado é TRUE (Verdadeiro) Outros operadores de comparação entre elementos e conjuntos. = ANY ( = SOME) retorna TRUE se v = algum valor de V ( IN ) Pode-seusar>,>=,<,<=e<>ANY > ALL retorna TRUE se v > todos elementos em V Funções EXISTS e NOT EXISTS Verifica se o resultado de uma subseleção é vazia. Liste os técnicos sem experiência T.Nome TECNICOS T NOT EXISTS ( * EXPERIÊNCIA E T.NumTec = E.NumTecnico) Liste os técnicos com nome igual ao de algum dono de aparelho T.Nome TECNICOS T EXISTS ( * APARELHOS A T.Nome = A.Dono)

Conjunto completo de cláusulas no comando - Uma consulta em SQL pode consistir em até seis cláusulas. [ [GROUP BY [HAVING [ORDER BY <lista de colunas> <lista de tabelas> <condição>] <colunas para agrupamento>] <condição de agrupamento>] <lista de atributos>] Apenas as cláusulas e são obrigatórias. Quando existentes, as cláusulas devem aparecer na ordem especificada acima. Funções Agregadas Permitem calcular valores sobre grupos de tuplas, definidas pela cláusula GROUP BY. Funções de agregação permitem computar valores: COUNT : contagem de linhas ou valores SUM :soma MAX : máximo MIN : mínimo AVG : média Podem ser aplicadas sobre toda a tabela ou sobre um grupo de linhas. Exemplos de uso de Funções Agregadas Contagem de tuplas Obter o número de aparelhos em conserto COUNT (*) APARELHOS Contagem por grupos Obter o número de aparelhos por tipo GROUP BY Tipo, COUNT (NumAp) APARELHOS Tipo Funções Valor Mínimo e Valor Máximo Obter o menor e o maior valor de anos de experiência dos técnicos Função Média MIN(AnosExp),MAX(AnosExp) EXPERIÊNCIA Obter a média dos anos de experiência dos técnicos por tipo de aparelho GROUP BY Tipo, AVG(AnosExp) EXPERIÊNCIA Tipo

Exemplos de uso de Funções Agregadas Ordenando o resultado da consulta Listar os aparelhos do tipo lavadora ou secadora, ordenados pelo nome do dono * ORDER BY APARELHOS Tipo = Lavadora OR Tipo = Secadora Dono Condição sobre o grupo Média de idade por categoria, dos aparelhos cuja taxa é >= 10% T.Categoria, AVG( A.Idade ) GROUP BY APARELHOS A, TIPOS T A.Tipo = T.Tipo T.Categoria Manipulação do BD com SQL SQL possui três comandos usados para modificar as tabelas: INSERT (insere tuplas em uma tabela) DELETE (remove tuplas em uma tabela) UPDATE (modifica dados de tuplas de uma tabela) Comando INSERT Permite inserir uma tupla em uma tabela INSERT INTO TÉCNICOS VALUES ( 425, Sérgio, estagiário ) Os valores devem ser compatíveis com os domínios dos atributos da tabela. Permite inserir um conjunto de tuplas, a partir de uma consulta CREATE TABLE ESTAGIÁRIOS ( NumEst INTEGER NOT NULL NomeEst CHAR(15) ) HAVING T.Taxa >= 10 OBS: GROUP BY - aplica-se para definir grupos - condição aplicada às tuplas HAVING - condição aplicada ao grupo INSERT INTO ESTAGIÁRIOS NumTec, Nome TÉCNICOS Cargo = estagiário

Manipulação do BD com SQL Comando DELETE Permite eliminar uma tupla de uma tabela DELETE TÉCNICOS Nome = Ronaldo Permite eliminar todas as tuplas de uma tabela DELETE APARELHOS Exclusão não poderá violar as restrições de integridade referencial (chave estrangeira) Ex.: não é permitido eliminar um tipo de aparelho quando existe um aparelho deste tipo em conserto. Alguns SGBDs permitem exclusões em cascata A exclusão de uma tupla força a exclusão de todas as tuplas que contêm uma chave estrangeira com o valor da tupla eliminada. Obs: o comando DELETE elimina tuplas e o comando DROP TABLE elinina o esquema da tabela. Comando UPDATE Permite alterar um valor em uma única tupla UPDATE TÉCNICOS SET Cargo = trainee NumTec = 718 Permite alterar valores de atributos em várias tuplas UPDATE EXPERIÊNCIA SET AnosExp = AnosExp + 1 UsodeVisõesemSQL Uma visão é uma tabela derivada de outras tabelas. Outras tabelas englobam tabelas base ou visões. Uma visão não necessariamente existe fisicamente, isto é, ela é considerada uma tabela virtual. Visões permitem: aumentar a segurança, quando combinadas com mecanismos de controle de acesso aumentara independência de dados Criando Visões CREATE VIEW nome [lista de atributos] AS consulta se a lista de atributos não for especificada, as colunas terão os mesmos nomes da tabela base. DROP VIEW nome elimina uma visão do esquema do BD. CREATE VIEW SENIORS AS NumTec, Nome TÉCNICOS Cargo = senior CREATE VIEW TOT-TIPOS AS ( Tipo, Qtde ) Tipo, COUNT(*) APARELHOS GROUP BY Tipo