SQL-99: Definição de esquema, restrições básicas e consultas

Tamanho: px
Começar a partir da página:

Download "SQL-99: Definição de esquema, restrições básicas e consultas"

Transcrição

1 SQL-99: Definição de esquema, restrições básicas e consultas A linguagem SQL é uma das maiores razões para o sucesso dos BD relacionais no mundo comercial Este capítulo apresenta as principais funcionalidades do padrão SQL para os SGBD s relacionais comerciais A linguagem SQL inclui as funcionalidades da álgebra relacional que tem base no cálculo relacional de tuplas, porém mais amigável O nome SQL (Structure Query Language) é Linguagem Estruturada de Consulta, originalmente chamada de SEQUEL (Structure English Query Language) SQL-99: Introdução Projetada e implementada na IBM Research como uma interface para um sistema experimental de BD relacional Versões padrão (esforço da ANSI/ISO) SQL1 ou SQL-86 SQL2 ou SQL-92 (revisada e expandida) SQL3 ou SQL-99 (linguagem padrão atual) Linguagem SQL é abrangente possui comandos para definição de dados, consultas e atualizações (tem ambas a DDL e a DML) possui regras para embutir comandos SQL em linguagens de programação genéricas: Java, Cobol ou C/C++ 1

2 SQL-99: Introdução SQL-99 especificação de núcleo (core) obrigatoriedade de implementação por todos os SGBD s relacionais compatíveis com o padrão pacotes opcionais (packages) podem ser adquiridos independentemente para aplicações específicas (datamining, datawarehousing) Apresentação da linguagem comandos da DDL da SQL para criação de esquemas e tabelas visão geral dos tipos de dados básicos na SQL especificação das restrições básicas (integridade de chave e referencial) comandos para modificação de esquemas, tabelas e restrições especificação de consultas básicas e complexas comandos para inserção, exclusão e atualização de dados SQL-99: Esquema SQL usa tabela, linha e coluna X relação, tupla e atributo Principal comando SQL para definição de dados CREATE: cria esquemas tabelas, domínios e restrições Esquema SQL identificado por um nome e possui identificação de autorização agrupa tabelas, restrições, visões (views), domínios e outros construtores que pertencem à mesma aplicação de um BD nem todos os usuários estão autorizados a criar esquemas e outros elementos este privilégio deve ser concedido previamente 2

3 SQL-99: Esquema e tabelas Criação do esquema EMPRESA pertencente ao usuário JSMITH CREATE SCHEMA EMPRESA AUTHORIZATION JSMITH Criação de tabelas CREATE TABLE dando-lhe um nome, especificando seus atributos com domínios e restrições iniciais (como NOT NULL, não pode ser vazio) as restrições de chave, a integridade de entidade e a integridade referencial podem ser especificadas dentro do comando CREATE TABLE ou poderão ser adicionadas depois com o comando ALTER TABLE SQL-99: Esquema e tabelas CREATE TABLE o comando deve ser executado dentro do ambiente de esquema criado alternativamente pode-se anexar o nome do esquema ao nome da tabela separados por um ponto CREATE TABLE EMPRESA.EMPREGADO ou CREATE TABLE EMPREGADO as tabelas declaradas pelo comando CREATE TABLE são reais e básicas, ou seja, são realmente criadas e armazenadas como um arquivo pelo SGBD, diferentemente das relações virtuais, criadas pelo CREATE VIEW que pode ou não corresponder a um arquivo físico 3

4 SQL-99: Tipos de dados de atributos e domínios Numéricos inteiros de vários tamanhos: INT, SMALLINT números de ponto flutuante (real): FLOAT, DOUBLE PRECISION números formatados: DECIMAL(i,j), DEC(i,j) ou NUMERIC(i,j) i é a precisão (número total de dígitos) j é a escala (número de dígitos depois do ponto decimal) o default para a escala é zero Cadeia de caracteres tamanho fixo: CHAR(n) tamanho variável: VARCHAR(n) case sensitive (distinção entre maiúsculas e minúsculas) SQL-99: Tipos de dados de atributos e domínios Bit-string cadeia de bits tamanho fixo: BIT(n) tamanho variável: BITVARYING(n) bit-strings literais são colocados entre apóstrofos, mas precedidos por B, B 101 Booleano true, false e unknown (null) Data e time tipo de dado Date contém 10 posições no formato: YYYY-MM-DD tipo de dado Time contém 8 posições no formato: HH:MM:SS a comparação < pode ser usada para datas e horários 4

5 SQL-99: Tipos de dados de atributos e domínios Timestamp engloba os campos Date e Time Interval um valor que pode ser utilizado para incrementar ou decrementar um valor absoluto de data, hora ou timestamp são qualificados para serem intervalos year/month ou day/time O tipo de dado de cada atributo pode ser especificado diretamente na criação dos atributos da tabela ou pode-se declarar o domínio para especificar um atributo com o comando CREATE DOMAIN TIPO_SSN AS CHAR(9); SQL-99: Tabelas e atributos 5

6 SQL-99: Tabelas e atributos SQL-99: Restrições básicas Restrição NOT NULL é especificada quando o NULL não for permitido para um dado atributo está sempre implícita para os atributos que são designados como chaves primárias É possível definir um valor default por meio da adição da cláusula DEFAULT<valor> na definição de um atributo DNO INT NOT NULL DEFAULT 1, GERSSN CHAR (9) NOT NULL DEFAULT , Pode-se limitar os valores do atributo usando CHECK seguido da definição do domínio DNUMERO INT NOT NULL CHECK (DNUMERO > 0 AND DNUMERO < 21), 6

7 SQL-99: Restrições básicas Pode-se usar a cláusula CHECK em conjunto com o comando CREATE DOMAIN CREATE DOMAIN D_NUM AS INTEGER CHECK (D_NUM > 0 AND D_NUM < 21); o domínio criado é para todo atributo que se refere ao número do departamento (tabelas DEPARTAMENTO, PROJETO, EMPREGADO) A cláusula PRIMARY KEY especifica um ou mais atributos que definem a chave primária da tabela se o atributo for único, a cláusula pode seguir o atributo diretamente DNUMERO INT PRIMARY KEY; A cláusula UNIQUE define as chaves alternativas (secundárias) (vide figura) A integridade referencial é especificada pela cláusula FOREIGN KEY (chave estrangeira) (vide figura) SQL-99: Restrições básicas Uma integridade referencial pode ser violada quando as tuplas são inseridas ou deletadas ou quando os valores dos atributos referentes à chave estrangeira forem modificados a ação padrão da SQL é rejeitar a operação de atualização que iria causar a violação o projetista do BD pode especificar uma ação alternativa: ações referenciais engatilhadas: SET NULL, CASCADE e SET DEFAULT a ser escolhida com ON DELETE ou ON UPDATE SET NULL ON DELETE (na exclusão, marcar nulo) se uma tupla referenciada for deletada, o valor será marcado com null em todas as tuplas que fizerem referência ao atributo que foi excluído CASCADE ON UPDATE (na atualização, propagar) se um valor referenciado for atualizado, o novo valor atualizado é propagado (cascated) para as tuplas que fizerem referência ao atributo atualizado 7

8 ações referenciais engatilhadas SQL-99: Restrições básicas SET DEFAULT receberá o valor definido como default CASCADE é apropriado para as tabelas geradas de relacionamentos M:N, tabelas que representam atributos multivalorados e tabelas que representam entidades fracas uma restrição pode ser nomeada (e deve ser único) após a palavra CONSTRAINT usado para identificar uma restrição em particular, para ser eliminada ou redefinida é possível adicionar a cláusula CHECK, no final da declaração CREATE TABLE para ter certeza de que um atributo obedeça a um determinado domínio CHECK (DEP_CRIA_DATA < GERDATAINICIO); SQL-99: Restrições básicas 8

9 SQL-99: Comandos para alterações de esquemas Comandos para evolução de um esquema adição ou eliminação de tabelas, atributos e restrições Comando DROP: eliminar DROP SCHEMA EMPRESA CASCADE; CASCADE elimina todas as tabelas, domínios, etc RESTRICT elimina somente se não contiver nenhum elemento DROP TABLE DEPENDENTE CASCADE; se não desejarmos mais manter dados dos dependentes se for escolhida a opção RESTRICT, a tabela será eliminada somente se não for referência para outras tabelas ou visões com CASCADE todas as restrições e visões que fizer referência são eliminadas do esquema SQL-99: Comandos para alterações de esquemas Comando ALTER: alterar ações de alteração possíveis (em tabelas) adicionar ou eliminar uma coluna alterar a definição de uma coluna adicionar ou eliminar restrições para adicionar um atributo novo ALTER TABLE EMPRESA.EMPREGADO ADD FUNCAO VARCHAR(12); o novo atributo conterá null para as tuplas já existentes na tabela para remoção de um atributo já existente ALTER TABLE EMPRESA.EMPREGADO DROP ENDERECO CASCADE; CASCADE: todas as restrições e visões que fizerem referência serão eliminadas RESTRICT: o comando será bem sucedido somente se nenhuma visão ou restrição fizer referência a este atributo 9

10 SQL-99: Comandos para alterações de esquemas Comando ALTER: alterar para alterar uma definição de atributo eliminando uma cláusula default existente ou definindo uma nova cláusula default ALTER TABLE EMPRESA.EMPREGADO ALTER GERSSN DROP DEFAULT; ALTER TABLE EMPRESA.EMPREGADO ALTER GERSSN SET DEFAULT ; para modificar restrições, é preciso eliminar a antiga e adicionar a nova: para eliminar a restrição, ela precisa ter recebido um nome quando foi especificada ALTER TABLE EMPRESA.EMPREGADO DROP CONSTRAINT EMPSUPERFK CASCADE; para redefinir uma restrição basta usar a palavra-chave ADD no comando ALTER TABLE seguida da nova restrição Comando básico para recuperação de informações de um BD: SELECT diversas opções e variações do comando formato básico: SELECT-FROM-WHERE SELECT <lista de atributos> FROM <lista de tabelas> WHERE <condição>; <lista de atributos> lista dos nomes dos atributos cujos valores serão recuperados pela consulta <lista de tabelas> lista dos nomes das tabelas necessárias para o processamento da consulta <condição> expressão condicional que identifica as tuplas que serão recuperadas pela consulta 10

11 a) Recupere o aniversário e o endereço do(s) empregado(s) cujo nome seja John B. Smith SELECT DATANASC, ENDERECO FROM EMPREGADO WHERE PNOME = John AND MINICIAL = B AND UNOME = Smith ; 11

12 b) Recupere o nome e o endereço de todos os empregados que trabalham no departamento Pesquisa SELECT PNOME, UNOME, ENDERECO FROM EMPREGADO, DEPARTAMENTO WHERE DNOME = Pesquisa AND DNUMERO = DNO; c) Para cada projeto localizado em Stafford, relacione o número do projeto, o número do departamento responsável e o último nome do gerente do departamento, seu endereço e sua data de aniversário SELECT PNUMERO, DNUM, UNOME, ENDERECO, DATANASC FROM PROJETO, DEPARTAMENTO, EMPREGADO WHERE DNUM=DNUMERO AND GERSSN=SSN AND PLOCALIZACAO= Stafford ; 12

13 SQL-99: Esquema de BD EMPRESA SQL-99: Instâncias do esquema EMPRESA 13

14 Nomes de atributos ambíguos em SQL, um mesmo nome pode ser usado para dois (ou mais) atributos desde que esses atributos estejam em tabelas diferentes se uma consulta se refere a dois ou mais atributos como o mesmo nome, é preciso qualificar o nome do atributo com o nome da tabela fazendo a prefixação do nome da tabela ao nome do atributo, separados por um ponto consulta b) anterior: Se o atributo NOME estivesse presente nas tabelas PROJETO e EMPREGADO Se o atributo NUMERO estivesse presente nas tabelas EMPREGADO e DEPARTAMENTO SELECT PROJETO.NOME, EMPREGADO.NOME, ENDERECO FROM EMPREGADO, DEPARTAMENTO WHERE DEPARTAMENTO.NOME = Pesquisa AND DEPARTAMENTO.NUMERO = EMPREGADO.NUMERO; A ambigüidade também pode ser originada no caso de consultas que se referem duas vezes à mesma relação: d) para cada empregado recupere o primeiro e o último nome do empregado e o primeiro e o último nome de seu superior imediato SELECT E.PNOME, E.UNOME, S.PNOME, S.UNOME FROM EMPREGADO AS E, EMPREGADO AS S WHERE E.SUPERSSN=S.SSN; Pode-se declarar nomes alternativos E e S, chamados aliases (ou pseudônimos) para a tabela EMPREGADO (na cláusula FROM) EMPREGADO E EMPREGADO S É possível usar pseudônimos para os atributos da tabela por intermédio de aliases: EMPREGADO AS E (PN, MI, UN, SSN, DT, END, SEX, SAL, SSSN, DNO) 14

15 A ausência da cláusula WHERE indica que não há nenhuma condição para seleção todas as linhas da tabela especificada na cláusula FROM estão qualificadas e serão selecionadas na consulta se houver mais de uma tabela na cláusula FROM, será obtido o produto cartesiano dessas tabelas e) selecione os SSN s de todos os empregados SELECT SSN FROM EMPREGADO; f) selecione todas as combinações dos SSN s (de EMPREGADO) e dos DNOME s de DEPARTAMENTO (E X D = 24 linhas) SELECT SSN, DNOME FROM EMPREGADO, DEPARTAMENTO; 15

16 O * significa selecionar todos os atributos g) recupere todos os valores dos atributos de EMPREGADO que trabalham no DEPARTAMENTO de número 5 SELECT * FROM EMPREGADO WHERE DNO = 5; h) recupere para todo EMPREGADO do departamento Pesquisa, todos os atributos do EMPREGADO e todos os atributos do DEPARTAMENTO SELECT * FROM EMPREGADO, DEPARTAMENTO WHERE DNOME = Pesquisa AND DNO=DNUMERO; i) especifique o produto cartesiano das tabelas EMPREGADO e DEPARTAMENTO SELECT * FROM EMPREGADO, DEPARTAMENTO; Se deseja-se eliminar as repetições de resultado de uma consulta SQL, precisa-se usar a palavra-chave DISTINCT na cláusula SELECT somente as tuplas diferentes aparecem no resultado SELECT DISTINCT, elimina repetições SELECT ALL = SELECT, não elimina repetições a) recupere o salário de todos os empregados SELECT ALL SALARIO FROM EMPREGADO; b) recupere todos os diferentes valores de salários SELECT DISTINCT SALARIO FROM EMPREGADO; 16

17 Para se aplicar as operações de união (UNION), de diferença (EXCEPT) e de interseção (INTERSECT) às tabelas, é necessário que as duas tabelas, nas quais a operação será aplicada, tenham os mesmos atributos e que eles apareçam na mesma ordem Uso da operação UNION j) liste todos os números de projetos nos quais esteja envolvido algum empregado cujo nome seja Smith, como empregado ou como gerente do departamento que controla o projeto 17

18 (SELECT DISTINCT PNUMERO (1) FROM PROJETO, DEPARTAMENTO, EMPREGADO WHERE DNUM= DNUMERO AND GERSSN=SSN AND UNOME = Smith ) UNION (SELECT DISTINCT PNUMERO (2) FROM PROJETO, TRABALHA_EM, EMPREGADO WHERE PNUMERO=PNO AND ESSN=SSN AND UNOME = Smith ); A consulta (1) recupera os projetos que envolvem um Smith como gerente do departamento que controla o projeto, enquanto a segunda (2) recupera os projetos que envolvem um Smith como um empregado que nele trabalhe A linguagem SQL possui operações cujos resultados serão multiconjuntos (ou seja, repetições não são eliminadas): UNION ALL, EXCEPT ALL, INTERSECT ALL quando se aplicam essas operações, cada tupla sendo repetida ou não, é considerada uma tupla diferente: a) duas tabelas R(A) e S(A) b) R(A) UNION ALL S(A) c) R(A) EXCEPT ALL S(A) d) R(A) INTERSECT S(A) 18

19 LIKE: usado para comparações de padrões de cadeias % substitui um arbitrário entre zero ou mais caracteres underscore(_) substitui um único caractere k) recupere todos os empregados cujos endereços sejam em Houston, Texas SELECT PNOME, UNOME FROM EMPREGADO WHERE ENDERECO LIKE %Houston,TX% ; l) recupere todos os empregados que nasceram durante a década de 50 SELECT PNOME, UNOME FROM EMPREGADO WHERE DATANASC LIKE 5 _ ; Se um sinal _ ou % for necessário como um caractere literal em uma cadeia, ele deve ser precedido por um caractere de escape, o qual é especificado depois do string usando-se a palavra-chave ESCAPE AB\_CD\%EF ESCAPE \ representa a cadeia literal AB_CD%EF qualquer caractere que não seja usado na cadeia pode ser escolhido para o caractere de escape Aspas simples ( ) em geral são usadas no começo e no fim de cadeias se forem necessárias aspas simples elas serão representadas por aspas duplas ( ) Uso de funções e operadores aritméticos podem ser aplicados com atributos de domínios numéricos 19

20 m) Mostre o resultado dos salários caso fosse dado a todos os empregados que trabalham no projeto ProductX, um aumento de 10% SELECT PNOME, UNOME, 1.1*SALARIO AS AUMENTO_SAL FROM EMPREGADO, TRABALHA_EM, PROJETO WHERE SSN=ESSN AND PNO=PNUMERO AND PNOME= ProdutoX ; observe que trocou-se o nome do atributo no resultado da consulta usando AS na cláusula SELECT Existem os operadores de incremento (+) e de decremento(-) de datas, de horários ou de timestamp para um intervalo um intervalo é o resultado da diferença entre 2 datas, 2 horários ou 2 timestamps n) Recupere todos os empregados do departamento 5 que ganham entre 30 mil e 40 mil dólares SELECT * FROM EMPREGADO WHERE (SALARIO BETWEEN AND 40000) AND DNO=5; A condição acima é equivalente à condição ((SALARIO >= 30000) AND (SALARIO <= 40000)) A linguagem SQL permite que o usuário ordene as tuplas do resultado de uma consulta pelos valores de um ou mais atributos, usando-se a cláusula ORDER BY a ordenação default é ascendente pode-se especificar a palavra-chave DESC se quiser ordem descendente ASC pode ser também usada para explicitar a ordenação ascendente 20

21 n) Recupere a lista dos empregados e os respectivos projetos nos quais trabalham, ordenada por departamento, e, dentro de cada departamento, por ordem alfabética do último nome e, depois, pelo primeiro nome do empregado SELECT DNOME, UNOME, PNOME, PJNOME FROM DEPARTAMENTO, EMPREGADO, TRABALHA_EM, PROJETO WHERE DNUMERO=DNO AND SSN=ESSN AND PNO=PNUMERO ORDER BY DNOME, UNOME, PNOME; Se quiser DNOME em ordem descendente e UNOME e PNOME em ordem ascendente, a cláusula ORDER BY pode ser escrita: ORDER BY DNOME DESC, UNOME ASC, PNOME ASC; SQL-99: Consultas complexas A linguagem SQL não faz distinção entre os diferentes significados de NULL: desconhecido, indisponível ou não aplicável ao atributo quando ele é comparado em uma operação, o resultado é considerado UNKNOWN (desconhecido, pode ser tanto true quanto false) A linguagem SQL usa três valores lógicos: true (verdadeiro), false (falso) e unknown (desconhecido) tabelas verdade do AND, OR e NOT: AND T F U OR T F U NOT T T F U T T T T T F F F F F F T F U F T U U F U U T U U U U 21

22 SQL-99: Consultas complexas A SQL permite consultas que chequem se o valor de um atributo é NULL usa IS (é) ou IS NOT(não é), em vez de = ou <> d) recupere os nomes de todos os empregados que não tem supervisor SELECT PNOME, UNOME FROM EMPREGADO WHERE SUPERSSN IS NULL; O operador de comparação IN compara um valor v com um conjunto de valores V e evolui para verdadeiro, true, se for um dos elementos de V consulta j): (SELECT DISTINCT PNUMERO FROM PROJETO, DEPARTAMENTO, EMPREGADO; WHERE DNUM= DNUMERO AND GERSSN=SSN AND UNOME = Smith ) UNION (SELECT DISTINCT PNUMERO FROM PROJETO, TRABALHA_EM, EMPREGADO; WHERE PNUMERO=PNO AND ESSN=SSN AND UNOME = Smith ); SQL-99: Consultas complexas Consulta aninhada: a 1ª. consulta seleciona os números de projetos que tiverem um Smith como supervisor, enquanto a 2ª. seleciona os números de projetos que tiverem um empregado Smith envolvido SELECT DISTINCT PNUMERO FROM PROJETO WHERE PNUMERO IN (SELECT PNUMERO FROM PROJETO, DEPARTAMENTO, EMPREGADO WHERE DNUM=DNUMERO AND GERSSN=SSN AND UNOME = Smith ) OR PNUMERO IN (SELECT PNO FROM TRABALHA_EM, EMPREGADO WHERE ESSN=SSN AND UNOME = Smith ); 22

23 SQL-99: Consultas complexas o) Selecione o número do seguro social de todos os empregados que trabalham com a mesma combinação (projeto, horas) em algum projeto em que o empregado John Smith (ESSN = ) trabalhe SELECT DISTINCT ESSN FROM TRABALHA_EM WHERE (PNO, HORAS) IN (SELECT PNO, HORAS FROM TRABALHA_EM WHERE ESSN= ); Além do operador IN, existem os operadores ANY ou SOME, equivalentes ao IN que devolvem true se o valor v for igual a algum valor do conjunto V Outros operadores podem ser combinados com ANY (ou SOME), incluindo >, >=, <, <= e <> A palavra ALL pode ser combinada com cada um desses operadores (v > ALL V): devolve true se o valor v for maior que todos os valores de V SQL-99: Consultas complexas p) Recupere os nomes dos empregados cujos salários são maiores que os salários de todos os empregados do departamento 5 SELECT UNOME, PNOME FROM EMPREGADO WHERE SALARIO > ALL (SELECT SALARIO FROM EMPREGADO WHERE DNO=5); Qualificação de atributos para evitar ambigüidades c) recupere o nome de cada um dos empregados que tenham um dependente cujo primeiro nome e sexo sejam o mesmo do empregado em questão SELECT E.PNOME, E.UNOME FROM EMPREGADO AS E WHERE E.SSN IN (SELECT ESSN FROM DEPENDENTE WHERE E.PNOME=NOME_DEPENDENTE AND E.SEXO=SEXO); 23

24 SQL-99: Esquema de BD EMPRESA SQL-99: Instâncias do esquema EMPRESA 24

25 SQL-99: Consultas complexas Consultas externa, aninhada e correlacionada para cada tupla da consulta externa, a consulta aninhada devolve o atributo solicitado Em geral uma consulta aninhada e que usa os operadores de comparação = ou IN poderá sempre ser expressa como um bloco único de consulta c) SELECT E.PNOME, E.UNOME FROM EMPREGADO AS E WHERE E.SSN IN (SELECT ESSN FROM DEPENDENTE WHERE E.PNOME=NOME_DEPENDENTE AND E.SEXO=SEXO); c) SELECT E.PNOME, E.UNOME FROM EMPREGADO AS E, DEPENDENTE AS D WHERE E.SSN = D.ESSN AND E.SEXO=D.SEXO AND E.PNOME=P.NOME_DEPENDENTE; SQL-99: Consultas complexas A função EXISTS é usada para verificar se o resultado de uma consulta aninhada correlacionada é vazio (não contém nenhuma tupla) ou não em geral, EXISTS (Q) devolve true se existir ao menos uma tupla no resultado da consulta aninhada Q, caso contrário, devolverá false NOT EXISTS (Q) devolverá true se não existir nenhuma tupla no resultado da consulta aninhada Q, caso contrário, devolverá false opção para a consulta anterior usando EXISTS 1) SELECT E.PNOME, E.UNOME FROM EMPREGADO AS E WHERE EXISTS (SELECT * FROM DEPENDENTE WHERE E.SSN = ESSN AND E.SEXO=SEXO AND E.PNOME=NOME_DEPEDENTE); para cada tupla EMPREGADO, a consulta aninhada avalia devolvendo todas as tuplas de DEPENDENTE com o mesmo número de seguro social, sexo e nome da tupla EMPREGADO 25

26 SQL-99: Consultas complexas Relacione os nomes dos gerentes que possuam ao menos um dependente 2) SELECT PNOME, UNOME FROM EMPREGADO WHERE EXISTS (SELECT * FROM DEPENDENTE WHERE SSN = ESSN AND EXISTS (SELECT * FROM DEPARTAMENTO WHERE SSN=GERSSN); tem-se duas consultas aninhadas e correlacionadas a primeira seleciona todas as tuplas de DEPENDENTE relacionadas a EMPREGADO e a segunda seleciona todas as tuplas de DEPARTAMENTO gerenciadas por um EMPREGADO se ao menos uma da primeira e uma da segunda existirem, seleciona-se a tupla de EMPREGADO SQL-99: Consultas complexas É possível usar um conjunto de valores explícitos na cláusula WHERE em vez de consultas aninhadas esse conjunto é colocado entre parênteses recupere os números dos seguros sociais de todos os empregados que trabalham nos projetos 1, 2 ou 3: 3) SELECT DISTINCT ESSN FROM TRABALHA_EM WHERE PNO IN (1, 2, 3); O conceito de junção de tabelas foi incorporado para que os usuários pudessem especificar uma tabela que fosse resultado da aplicação da operação de junção na cláusula FROM de uma consulta (por exemplo, junção natural) recupere o nome e o endereço de todos os empregados que trabalham no departamento Pesquisa : 4) SELECT PNOME, UNOME ENDERECO FROM (EMPREGADO JOIN DEPARTAMENTO ON DNO=DNUMERO) WHERE DNOME= Pesquisa ; 26

27 SQL-99: Consultas complexas Há diversas funções pré-construídas para diversas aplicações em BD: COUNT, SUM, MAX, MIN, AVG COUNT: devolve o número de tuplas ou valores especificado em uma consulta SUM, MAX, MIN, AVG: são aplicadas em um conjunto de valores e devolvem, respectivamente, a soma, o valor máximo, o valor mínimo e a média desses valores MAX e MIN podem ser usadas com atributos que não tenham domínios numéricos desde que esses domínios tenham uma ordenação total entre eles encontre a soma dos salários, o maior salário, o menor salário e a média salarial de todos os empregados 5) SELECT SUM (SALARIO), MAX (SALARIO), MIN (SALARIO, AVG (SALARIO) FROM EMPREGADO; SQL-99: Consultas complexas COUNT (*) o * se refere às linhas, logo count(*) devolverá o número de linhas Recupere o número total de empregados da empresa 6) SELECT COUNT (*) FROM EMPREGADO; Recupere o número de empregados do departamento Pesquisa 7) SELECT COUNT (*) FROM EMPREGADO, DEPARTAMENTO WHERE DNO=DNUMERO AND DNOME= Pesquisa ; COUNT para contar o número de valores em uma coluna em vez de tuplas Conte o número dos diferentes valores de salário contidos no BD 8) SELECT COUNT (DISTINCT SALARIO) FROM EMPREGADO; 27

28 SQL-99: Consultas complexas Para COUNT (SALARIO), os valores repetidos não serão eliminados tuplas com null não são contabilizadas Os valores NULL são descartados quando se aplicam as funções agregadas em um atributo em particular Pode-se especificar uma consulta aninhada correlacionada com funções agregadas Recupere os nomes de todos os empregados que têm dois ou mais dependentes 9) SELECT PNOME, UNOME FROM EMPREGADO WHERE (SELECT COUNT(*) FROM DEPENDENTE WHERE SSN=ESSN) >= 2; a tupla aninhada correlacionada conta o número de dependentes que cada um dos empregados tem; se esse número for maior ou igual a dois, a tupla desse empregado será selecionada SQL-99: Consultas complexas Cláusula GROUP BY em alguns casos, precisa-se aplicar as funções agregadas para alguns subgrupos de tuplas e não para a totalidade das tuplas em conjunto exemplo: quando precisa-se encontrar a média de salário dos empregados de cada departamento ou dos empregados que trabalham em cada projeto na cláusula SELECT aparece o(s) atributo(s) de agrupamento e as funções que serão aplicadas em cada grupo de atributos, quando for o caso para cada departamento, recupere seu número, o número de empregados que nele trabalham e a média de seus salários Q24) SELECT DNO, COUNT (*), AVG (SALARIO) FROM EMPREGADO GROUP BY DNO; se houver NULL no atributo de agrupamento, um grupo separado será criado para as tuplas com valores NULL nesse atributo 28

29 SQL-99: Consultas complexas Cláusula HAVING SQL-99: Consultas complexas proporciona a aplicação de uma condição para o grupo de tuplas associado a cada valor dos atributos de agrupamento para cada projeto em que trabalhem mais de dois empregados, recupere o número do projeto, seu nome e o número de empregados Q26) SELECT PNUMERO, PJNOME, COUNT (*) FROM PROJETO, TRABALHA_EM WHERE PNUMERO=PNO GROUP BY PNUMERO HAVING COUNT(*) > 2; a cláusula WHERE limita as tuplas e a cláusula HAVING escolhe grupos 29

30 SQL-99: Comandos de modificação INSERT (inserção), DELETE (exclusão) e UPDATE (atualização) INSERT usado para adicionar uma única tupla em uma relação estabelece-se o nome da relação e uma lista de valores para a tupla devem ser relacionados na mesma ordem em que foram especificados os atributos no comando CREATE TABLE para se adicionar uma nova tupla à relação EMPREGADO: INSERT INTO EMPREGADO VALUES ( Richard, K, Marini, , , 98 Oak Forest, Katy, TX, M, 37000, , 4); SQL-99: Comandos de modificação INSERT outra forma do comando INSERT: INSERT INTO EMPREGADO (PNOME, UNOME, DNO, SSN) VALUES ( Richard, Marini, 4, ); os atributos que não foram especificados serão registrados com seus valores DEFAULT ou NULL os comandos são rejeitados se o SGBD implementa a integridade referencial e a integridade de entidade: INSERT INTO EMPREGADO (PNOME, UNOME, DNO, SSN) VALUES ( Robert, Hatcher, 2, ); não existe DEPARTAMENTO com DNUMERO=2 INSERT INTO EMPREGADO (PNOME, UNOME, DNO) VALUES ( Richard, Hatcher, 5); o valor do SSN não foi informado e ele foi declarado como NOT NULL 30

31 SQL-99: Comandos de modificação DELETE remove tuplas de uma relação DELETE FROM EMPREGADO; as tuplas serão removidas de uma única tabela de cada vez, entretanto, as remoções podem propagar-se nas tuplas de outras relações, se forem definidas ações engatilhadas se foi incluída a cláusula WHERE, serão selecionadas as tuplas que serão deletadas DELETE FROM EMPREGADO WHERE UNOME= Brown ; DELETE FROM EMPREGADO WHERE DNO IN (SELECT DNUMERO FROM DEPARTAMENTO WHERE DNOME= Pesquisa ); SQL-99: Comandos de modificação UPDATE modifica os valores dos atributos de uma ou mais tuplas a cláusula WHERE seleciona as tuplas de uma única relação que serão modificadas, entretanto, uma atualização no valor da chave primária pode propagar-se para os valores das chaves estrangeiras, nas tuplas de outras relações, se essa ação engatilhada for especificada uma cláusula adicional SET, dentro do comando UPDATE, especifica os atributos que serão modificados e seus novos valores UPDATE PROJETO SET PLOCALIZACAO= Bellaire, DNUM = 5 WHERE PNUMERO=10; altera a localização e o número do departamento do projeto de número 10 31

32 SQL-99: Comandos de modificação UPDATE dar um aumento de salário de 10% a todos os empregados do departamento Pesquisa UPDATE EMPREGADO SET SALARIO=SALARIO*1.1 WHERE DNO IN (SELECT DNUMERO FROM DEPARTAMENTO WHERE DNOME= Pesquisa ); SQL: Visões Visão é uma tabela única derivada de uma outra tabela Considerada como uma tabela virtual Um meio para a especificação de uma tabela que precise ser consultada freqüentemente, embora ela não exista fisicamente Comando: CREATE VIEW A visão recebe um nome, uma lista de nomes de atributos e uma consulta para especificar o conteúdo dessa visão Se nenhum dos atributos da visão for resultado de uma função ou de uma operação aritmética, não é necessário especificar os nomes dos atributos para a visão; eles recebem os mesmos nomes que os atributos definidos para as tabelas 32

33 SQL: Visões As visões V1 e V2 criam tabelas virtuais cujos esquemas estão ilustrados a seguir: SQL: Visões Pode-se especificar as consultas SQL em uma visão do mesmo modo que se especifica consultas sobre tabelas básicas Para recuperar o último e o primeiro nome de todos os empregados que trabalham no ProjetoX, pode se utilizar a visão TRABALHA_EM1 e formular a consulta SELECT PNOME, UNOME FROM TRABALHA_EM1 WHERE PJNOME= ProjetoX ; Uma das principais vantagens das visões é simplificar a especificação de certas consultas 33

34 SQL: Visões Supõe se que uma visão esteja sempre atualizada, se as tuplas das tabelas básicas sobre as quais a visão foi construída são modificadas, a visão deverá, automaticamente, refletir essas alterações A visão não é realizada no instante da sua definição, mas quando especifica-se uma consulta sobre ela Para dispensar uma visão criada usa-se o comando DROP VIEW DROP VIEW TRABALHA_EM1; SQL: Visões Considere a seguinte visão, DEPT_RESUMO, definida para o BD EMPRESA CREATE VIEW DEPT_RESUMO (D, C, TOTAL_S, MEDIA_S) AS SELECT DNO, COUNT(*), SUM(SALARIO), AVG(SALARIO) FROM EMPREGADO GROUP BY DNO; Estabeleça quais dentre as seguintes consultas seriam permitidas para a visão criada acima: a) SELECT * FROM DEPT_RESUMO; b) SELECT D,C FROM DEPT_RESUMO WHERE TOTAL_S > ; c) SELECT D, C, MIN(TOTAL_S) FROM DEPT_RESUMO; d) SELECT D, MEDIA_S FROM DEPT_RESUMO WHERE C > (SELECT C FROM DEPT_RESUMO WHERE D=4); 34

SQL-99: Esquema de BD EMPRESA

SQL-99: Esquema de BD EMPRESA SQL-99: Esquema de BD EMPRESA SQL-99: Instâncias do esquema EMPRESA 1 Consultas externa, aninhada e correlacionada para cada tupla da consulta externa, a consulta aninhada devolve o atributo solicitado

Leia mais

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

A Linguagem SQL. Introdução a Banco de Dados DCC 011 A Linguagem SQL Introdução Originalmente proposta para o System R desenvolvido nos laboratórios da IBM na década de 70 SEQUEL (Structured English QUEry Language) Objeto de um esforço de padronização coordenado

Leia mais

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

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011 Banco de Dados I Aula 16 - Prof. Bruno Moreno 04/11/2011 Plano de Aula O comando DELETE Cláusula CHECK Comparações utilizando NULL Funções agregadas Junções de tabelas em SQL Visões Comando DELETE DELETE

Leia mais

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida SQL PostgreSQL I Criação de Tabelas Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos para

Leia mais

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

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino

Leia mais

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: [email protected] 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED

Leia mais

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida SQL PostgreSQL I Criação de Tabelas Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos para

Leia mais

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011 Banco de Dados I Aula 14 - Prof. Bruno Moreno 11/10/2011 Plano de Aula INSERT UPDATE SELECT-FROM-WHERE Uso de ALIASES SELECT com * DISTINCT Operações de Conjuntos Comparação entre substrings Operadores

Leia mais

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

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 SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais

SQL Básica. Andre Noel

SQL Básica. Andre Noel SQL Básica Andre Noel Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Se tornou

Leia mais

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado Forma geral: SELECT FROM [WHERE ] [GROUP BY ]

Leia mais

Bancos (Bases) de Dados

Bancos (Bases) de Dados Bancos (Bases) de Dados Aula #8 SQL Prof. Eduardo R. Hruschka * Slides baseados no material elaborado pelas professoras: Cristina D. A. Ciferri Elaine P. M. de Souza SQL (Structured Query Language) Linguagem

Leia mais

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010 Sumário SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 1 Introdução 2 Tabelas 3 Colunas 4 5 Modificação de Tabelas 6 Domínios André Restivo (FEUP)

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

Leia mais

Banco de Dados I Introdução SQL

Banco de Dados I Introdução SQL Banco de Dados I Introdução SQL Frederico Queiroga [email protected] https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada

Leia mais

A linguagem SQL

A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Rápida revisão do Modelo Relacional

Rápida revisão do Modelo Relacional Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.

Leia mais

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

A Linguagem SQL. Introdução a Banco de Dados DCC 011 A Linguagem SQL Introdução Originalmente proposta para o System R desenvolvido nos laboratórios da IBM na década de 70 SEQUEL (Structured English QUEry Language) Objeto de um esforço de padronização coordenado

Leia mais

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

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação SQL Básica DDL Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 21 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 21 de outubro de 2015 1 / 28 1 Introdução 2 SQL DDL CREATE Criar Banco

Leia mais

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

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira [email protected] Gilberto Câmara [email protected] Gilberto Ribeiro de Queiroz [email protected] Marcos André Gonçalves - UFMG Parte 3 Aula

Leia mais

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

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

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

Banco de Dados SQL. João Eduardo Ferreira Osvaldo Kotaro Takai Banco de Dados SQL João Eduardo Ferreira Osvaldo Kotaro Takai Introdução SQL - Structured Query Language Linguagem declarativa não-procedimental Desenvolvida e implementada pelo laboratório de pesquisa

Leia mais

SQL (Tópicos) Structured Query Language

SQL (Tópicos) Structured Query Language SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir

Leia mais

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

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

SQL PostgreSQL. I Criação de Tabelas. Disciplina: Banco de Dados e suas Aplicações Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL PostgreSQL. I Criação de Tabelas. Disciplina: Banco de Dados e suas Aplicações Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida SQL PostgreSQL I Criação de Tabelas Disciplina: Banco de Dados e suas Aplicações Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos

Leia mais

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

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

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>

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> BANCO DE DADOS 1. Scripts de criação de 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 Onde:

Leia mais

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges BANCO DE DADOS II SQL Básico COTEMIG Gerson Borges [email protected] Definição de Banco de Dados [Elmasri & Navathe, 2000] Um banco de dados é uma coleção de dados relacionados Representando algum

Leia mais

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

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language) AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados

Leia mais

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD. Definição do esquema da base de dados o esquema da BD é composto pelas definições de todas as tabelas da BD. existem outros elementos (views, índices, triggers) que também fazem parte do esquema e que

Leia mais

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 SQL Structured Query Language SQL Desenvolvida pela IBM Structured English Query Language Sequel Linguagem de consulta para o sistema R Primeiro

Leia mais

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

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 16 Escola Politécnica da Universidade de São Paulo 1 SQL - STRUCTURED QUERY LANGUAGE SQL - Structured Query Language Linguagem de acesso a Banco de Dados

Leia mais

Banco de Dados. Linguagem SQL

Banco de Dados. Linguagem SQL Banco de Dados Linguagem SQL 1 A linguagem SQL: história Em junho de 1970, o matemático Edgar Frank Codd, publicou o artigo "A Relational Model of Data for Large Shared Data Banks" na revista "Communications

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

SQL DML. Frederico D. Bortoloti [email protected]

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DML Frederico D. Bortoloti [email protected] SQL - DML Os exemplos da aula serão elaborados para o esquema de dados a seguir: Empregado(matricula, nome, endereco, salario, supervisor,

Leia mais

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

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; MySQL SQL (Structured Query Languagem ) Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; Inicialmente - Sequel

Leia mais

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

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO... Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni [email protected] Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...

Leia mais

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

MySql. Introdução a MySQL. Andréa Garcia Trindade MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo

Leia mais

Introdução ao Banco de Dados. Banco de Dados

Introdução ao Banco de Dados. Banco de Dados Introdução ao Banco de Dados Prof. Tiago Garcia de Senna Carneiro UFOP Prof. Técnicas de Programação II 2006 PARTE 1: Conceitos Básicos Banco de Dados SGDB: Sistema Gerenciador de Banco de Dados Definição:

Leia mais

Manipulação de Dados com SQL

Manipulação de Dados com SQL Manipulação de Dados com SQL Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia www.facom.ufu.br/~wendelmelo Banco de Dados I manipulação de dados com SQL 2 Structured Query Language

Leia mais

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação 1/5 Universidade Federal da Bahia Disciplina: Banco de Dados Prof a. Daniela Barreiro Claro ALGEBRA RELACIONAL Duas linguagens formais do Modelo Relacional o Álgebra Relacional e Cálculo Relacional Álgebra

Leia mais

SQL. Prof. Roger Cristhian Gomes

SQL. Prof. Roger Cristhian Gomes SQL Prof. Roger Cristhian Gomes SQL SQL - Structured Query Language Linguagem de acesso e manipulação de sistemas de base de dados computacionais que segue o padrão ANSI Existem diferenças entre as versões

Leia mais

SQL DDL. Frederico D. Bortoloti [email protected]

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DDL Frederico D. Bortoloti [email protected] Introdução Modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)

Leia mais

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

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 PROGRAMA 3.SQL Básico 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação 1 3.SQL Básico A linguagem SQL foi desenvolvida para o ambiente relacional, podendo ser adaptada a ambientes

Leia mais

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU Aula 6 BD1 Modelo Relacional Profa. Elaine Faria UFU - 2017 Introdução Modelo Relacional Proposto por Codd em 1970 Revolucionou a área de banco de dados É o modelo dominante base para os SGBDs líderes

Leia mais

Bancos de Dados. 8. Structured Query Language (SQL)

Bancos de Dados. 8. Structured Query Language (SQL) Bancos de Dados 8. Structured Query Language (SQL) Introdução A padronização ao redor de SQL é uma das principais razões para o sucesso dos bancos de dados relacionais A migração entre SGBDs é facilitada,

Leia mais

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

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton

Leia mais

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

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) 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

Leia mais

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

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional Modelo de Dados Relacional e as Restrições de um Banco de Dados Relacional Modelo de Dados Relacional Conceitos do Modelo Relacional Representa o banco de dados como uma coleção de relações. Comparação

Leia mais

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

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

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

- Um query block permite a implementação das operações de selecção, projecção e junção da álgebra relacional. 2.3 Linguagens relacionais (continuação) SQL Structured Query Language 1) "Query block" Select From Where - Um "query block" permite a implementação

Leia mais

Utilizando o Postgres - comandos SQL para a manipulação de dados

Utilizando o Postgres - comandos SQL para a manipulação de dados Utilizando o Postgres - comandos SQL para a manipulação de dados SELECT A declaração SELECT é utilizada para selecionar os dados de um banco de dados. SELECT nome FROM clientes WHERE A cláusula WHERE é

Leia mais

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas Banco de dados Conteúdo: DDL Prof. Patrícia Lucas O mysql MySQL Workbench é uma ferramenta de design de banco de dados visual que integra o desenvolvimento SQL, administração, design de banco de dados,

Leia mais

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

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) SQL SQL (Structured Query Language), ou Linguagem de Consulta Estruturada. Usada em Bancos de Dados Relacionais. É padronizada (SQL ANSI). ANSI (American National

Leia mais

Marcelo Henrique dos Santos

Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Marketing e Vendas (em andamento) Especialista em games Bacharel em Sistema de Informação Email: [email protected] AULA 03 SQL (Structure Query Language)

Leia mais

A linguagem SQL

A linguagem SQL SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão recebeu o nome de

Leia mais

SQL Linguagem de Definição de Dados

SQL Linguagem de Definição de Dados SQL Linguagem de Definição de Dados Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais

Leia mais

Banco de Dados. Professora: Luciana Faria

Banco de Dados. Professora: Luciana Faria Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é

Leia mais

BANCO DE DADOS PARA NINJAS

BANCO DE DADOS PARA NINJAS BANCO DE DADOS PARA NINJAS PARANGABA RONNISON REGES VIDAL Ceará, 25 de Outubro de 2016 ROTEIRO l Conhecimento Pra que usar? Ferramentas SGBD's Consultas (Jutsu) Linguagem de Consulta PRA QUE USAR? PRA

Leia mais

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011 Banco de Dados I Aula 17 - Prof. Bruno Moreno 08/11/2011 Plano de Aula Visões em SQL Normalização Motivação Definição Formas Normais Banco de Dados I VISÕES Visões É uma tabela única derivada de outra(s)

Leia mais

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

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes Escola Secundária de Albufeira Comandos MySQL (Páginas Web Dinâmicas: PHP e MySQL) ([email protected]) 2009/2010 Criar Base de Dados CREATE DATABASE basededados; Apagar Base de Dados DROP DATABASE basededados;

Leia mais

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

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML 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

Leia mais

Mysql. Quanto mais informações você busca, mais você evolui. Vitor Ramos. Disciplina de Banco de Dados

Mysql. Quanto mais informações você busca, mais você evolui. Vitor Ramos. Disciplina de Banco de Dados Mysql Quanto mais informações você busca, mais você evolui. Vitor Ramos SQL Structured Query Language - Linguagem de Consulta Estruturada Desenvolvida pela IBM, nos anos 70; Inicialmente chamada SEQUEL

Leia mais

Manipulando a base de dados

Manipulando a base de dados Manipulando a base de dados Uma base de dados pode ser manipulada com quatro operações básicas: Incluir, Apagar, Alterar e Pesquisar. Vale lembrar que como toda linguagem para computadores, o MySQL tem

Leia mais

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

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho Laboratório de Banco de Dados II Aula 04 Prof. Érick de Souza Carvalho 1 SQL (Structured Query Language ) Prof. Érick de Souza Carvalho 2 SQL Structured Query Language - Introdução É uma Linguagem para

Leia mais

Linguagem de Definição de Dados (DDL)

Linguagem de Definição de Dados (DDL) Modelagem de Banco de Dados Linguagem de Definição de Dados (DDL) Professor: Anderson D. Moura Março, 2009 Linguagem de Definição de Dados Linguagem para especificar a informação acerca de cada tabela,

Leia mais

Bases de Dados. DDL Data Definition Language

Bases de Dados. DDL Data Definition Language Bases de Dados DDL Data Definition Language SQL SQL = Structured Query Language Foi originalmente criada pela IBM nos anos 70 como parte de um protótipo de sistema relacional Posteriormente foi implementada

Leia mais

Roteiro. SQL(Structured Query Language) BCC321 - Banco de Dados I. Introdução. Ementa. Posicionamento. Introdução

Roteiro. SQL(Structured Query Language) BCC321 - Banco de Dados I. Introdução. Ementa. Posicionamento. Introdução Roteiro SQL(Structured Query Language) Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto [email protected] www.decom.ufop.br/luiz Posicionamento Introdução

Leia mais

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

SQL. SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL Banco de Dados I Prof. Guilherme Tavares de Assis Universidade

Leia mais

BANCO DE DADOS GERENCIAL 1 A U L A 2

BANCO DE DADOS GERENCIAL 1 A U L A 2 BANCO DE DADOS GERENCIAL 1 A U L A 2 N Í V E I S D E V I S Ã O, S U B G R U P O D D L : C R I A N D O B A N C O D E D A D O S, C R I A N D O T A B E L A S, E S T R U T U R A D A T A B E L A CONCEITOS :

Leia mais

IMPLEMENTAÇÃO DE BANCO DE DADOS

IMPLEMENTAÇÃO DE BANCO DE DADOS IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão

Leia mais

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

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 BANCO DE DADOS GERENCIAL 1 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 CONCEITOS LINGUAGEM DE MANIPULAÇÃO DE DADOS (DML) A linguagem

Leia mais