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

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

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

Transcrição

1 Roteiro SQL(Structured Query Language) Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto Posicionamento Introdução Definição de Dados e Tipos de Dados SQL Especificando as Restrições Básicas em SQL Comandos para Alterações de Esquemas em SQL Consultas SQL Comandos para Modificar o Estado do Banco de Dados Asserções e Visões em SQL BCC321 - Banco de Dados I Ementa 1. Conceitos básicos em sistemas de banco de dados. 2. Conceitos e arquitetura de sistemas de banco de dados. 3. Modelagem conceitual de dados. 4. Modelo Relacional: conceitos básicos e restrições de integridade. 5. Linguagens: álgebra e cálculo relacional. 6. A linguagem SQL e o uso de APIs. 7. Projeto de banco de dados. 8. Normalização de banco de dados. 9. Noções de processamento de transações, concorrência e recuperação de falhas. 10. Aspectos de implementação de banco de dados. Introdução Inicialmente chamada SEQUEL (Structured English QUEry Language), foi originalmente projetada na IBM Research para um banco de dados relacional chamado Sistema R. Esforço conjunto de padronização da ANSI e ISO: SQL-86 ou SQL1. SQL-92 ou SQL2. SQL-99 ou SQL3. SQL:2003 e SQL:2006 (acrescentaram recursos XML). 2008: mais recursos de BD de objeto são incorporados na SQL.

2 SQL Definição de Dados em SQL Esquema SQL É considerada a principal razão para o sucesso de bancos de dados relacionais comerciais. Tornou-se a linguagem padrão para os SGBDs relacionais comerciais. Linguagem de banco de dados abrangente (DDL e DML). Facilidades para definir visões, especificar segurança e autorização e controles de transação. Possui regras para embutir instruções SQL em linguagens de propósito geral (JAVA, C / C++, Cobol...). Usado para agrupar as tabelas e outros elementos (restrições, views, domínios etc.) que pertencem à mesma aplicação de um banco de dados. Comando CREATE SCHEMA CREATE SCHEMA nomeesquema AUTHORIZATION nomeusuario; Esquema tem nome e um usuário administrador. CREATE SCHEMA EMPRESA AUTHORIZATION JSILVA; Em geral, nem todos os usuários estão autorizados a criar esquemas, tabelas e demais partes do banco de dados. Definição de Dados em SQL Definição de Dados em SQL Comando CREATE TABLE Comando CREATE TABLE Usado para especificar uma nova relação, dando-lhe um nome e especificando seus atributos e restrições iniciais. CREATE TABLE nometabela (<definições de colunas> <definições de chave primária> <definições de chaves alternativas> <definições de chaves estrangeiras>); CREATE TABLE FUNCIONARIO ( Pnome VARCHAR(15) NOT NULL, Minicial CHAR, Unome VARCHAR(15) NOT NULL, Cpf CHAR(11) NOT NULL, Datanasc DATE Endereco VARCHAR(30), Sexo CHAR, Salario DECIMAL(10,2), Cpf_supervisor CHAR(11) NOT NULL, Dnr INT, PRIMARY KEY(Cpf), FOREIGN KEY(Cpf_supervisor) REFERENCES FUNCIONARIO(Cpf), FOREIGN KEY(Dnr) REFERENCES DEPARTAMENTO(Dnumero));

3 Tipos de Dados de Atributos Tipos de Dados de Atributos Numérico (principais): INTEGER/INT, SMALLINT, FLOAT/REAL, DOUBLE PRECISION. Cadeia de caracteres: Tamanho fixo: CHAR(n) ou CHARACTER(n), onde n é o n o de caracteres. Tamanho variável: VARCHAR(n) ou CHAR VARYING(n) ou CHARACTER VARYING(n), onde n é o n o máximo de caracteres. O valor de uma cadeia de caracteres deve ser colocado entre aspas simples (apóstrofos) e é case sensitive. Para cadeias de caracteres grandes (documentos): CHARACTER LARGE OBJECT (CLOB). O tamanho máximo pode ser especificado em kilobytes (K), megabytes (M) ou gigabytes (G). Ex.: CLOB(50M); Cadeia de bits: Tamanho fixo: BIT(n). Tamanho variável: BIT VARYING(n). Os valores são colocados entre aspas simples, mas precedidos por B para distingui-los das cadeias de caracteres (p.ex., B ). Para cadeias de bits grandes (imagens): BINARY LARGE OBJECT (BLOB). O tamanho máximo pode ser especificado em kilobytes (K), megabytes (M) ou gigabytes (G). Ex.: BLOB(40G); Tipos de Dados de Atributos Restrições de Atributos e Domínios Booleano: BOOLEAN (TRUE / FALSE / UNKNOWN). Data: DATE, que contém 10 posições e seus componentes são DAY, MONTH e YEAR no formato DD-MM-YYYY. Exemplo: Tempo: TIME, que contém oito posições e seus componentes são HOUR, MINUTE e SECOND no formato HH:MM:SS. Exemplo: 01:58:30. TIMESTAMP: engloba os campos DATE e TIME, mais um mínimo de 6 posições para as frações de segundos. Exemplo: :58: Um domínio também pode ser declarado e o seu nome usado com a especificação do atributo. CREATE DOMAIN TIPO_CPF AS CHAR(11); NOT NULL Implícita para atributos que são designados como chaves primárias. DEFAULT <valor> CHECK <condição> Dnumero INT NOT NULL CHECK(Dnumero > 0 AND Dnumero < 21); CREATE DOMAIN D_NUM AS INTEGER CHECK(D_NUM > 0 AND D_NUM < 21);

4 Restrições de Chave e Integridade Referencial Comandos de Definição de Dados do Esquema EMPRESA PRIMARY KEY(<lista de atributos>); Alternativamente, se a chave primária tiver um único atributo, a cláusula PRIMARY KEY pode seguir o atributo diretamente. Exemplo: Dnumero INT PRIMARY KEY; UNIQUE(<lista de atributos>): define as chaves alternativas (secundárias). Restrições de Chave e Integridade Referencial Exemplos de Ações Referenciais Engatilhadas FOREIGN KEY(chave estrangeira); Uma restrição de integridade referencial poderia ser violada em situações de inserção, remoção ou atualização de tuplas. Ação padrão da SQL para uma violação de integridade: rejeitar a operação que iria causar a violação (opção RESTRICT). O projetista pode especificar uma ação alternativa caso uma restrição de integridade esteja para ser violada, anexando uma cláusula ação de disparo referencial em uma restrição de chave estrangeira. Opções: SET NULL, CASCADE e SET DEFAULT. As opções acima devem ser escolhidas com ON DELETE (remoção) ou ON UPDATE (atualização).

5 A Palavra CONSTRAINT Especificando Restrições sobre Tuplas Usando CHECK Uma restrição pode ser nomeada após a palavra CONSTRAINT. O nome de cada uma das restrições em um esquema deve ser exclusivo. O nome da restrição é usado para identificá-la caso ela tenha que ser eliminada ou redefinida. Cláusula adicional CHECK no final da declaração CREATE TABLE. Suponha que a tabela DEPARTAMENTO tenha um atributo adicional Dep_data_criacao (armazena a data de criação do departamento). Então podemos adicionar a seguinte cláusula CHECK no final da declaração CREATE TABLE: CHECK (Dep_data_criacao <= Data_inicio_gerente); Essa restrição se aplica a cada tupla individualmente e será verificada sempre que uma tupla for inserida ou modificada. Comandos para Alterações de Esquemas Exemplos de Comandos DROP O Comando DROP Usado para eliminar elementos nomeados de esquemas (tabelas, domínios ou restrições). Também pode ser usado para eliminar o esquema propriamente dito. Comportamento para o comando DROP: CASCADE. RESTRICT. DROP SCHEMA EMPRESA CASCADE; Opção CASCADE: remove o esquema empresa com todos seus elementos (tabelas, domínios etc.) Se ao invés de CASCADE usarmos RESTRICT, o esquema é eliminado somente se não contiver nenhum elemento. DROP TABLE DEPENDENTE CASCADE; Opção CASCADE: remove a tabela e todas as restrições (p. ex., definições de chaves estrangeiras) e as visões que fizerem referência à mesma. Se ao invés de CASCADE usarmos RESTRICT, a tabela será eliminada somente se não for referenciada em nenhuma restrição ou visão.

6 Comandos para Alterações de Esquemas Exemplos de Comandos ALTER O Comando ALTER Usado para alterar elementos de esquemas nomeados. Para as tabelas são possíveis as seguintes alterações: Adicionar ou eliminar uma coluna. Alterar a definição de uma coluna. Adicionar ou eliminar restrições de tabela. Adicionar coluna: ALTER TABLE FUNCIONARIO ADD COLUMN Tarefa VARCHAR(12); Devemos entrar com um valor para o novo atributo Tarefa de cada tupla de FUNCIONARIO. Usar o comando UPDATE ou especificar cláusula DEFAULT. Se não for especificada uma cláusula DEFAULT, o novo atributo conterá NULLs em todas as tuplas após a execução do comando ALTER. A restrição NOT NULL não é permitida nesse caso. Exemplos de Comandos ALTER Exemplos de Comandos ALTER Eliminar coluna: ALTER TABLE FUNCIONARIO DROP COLUMN Endereco CASCADE; Devemos optar por CASCADE ou RESTRICT. CASCADE: além da coluna, todas as restrições ou visões que fizerem referência a essa coluna serão automaticamente eliminadas. RESTRICT: o comando será executado com sucesso somente se nenhuma restrição ou outros elementos fizerem referência à coluna. Alterar uma definição de coluna eliminando ou definindo uma nova cláusula DEFAULT. ALTER TABLE FUNCIONARIO ALTER COLUMN Cpf_gerente DROP DEFAULT; ALTER TABLE FUNCIONARIO ALTER COLUMN Cpf_gerente SET DEFAULT ; Modificar as restrições especificadas em uma tabela: ALTER TABLE FUNCIONARIO DROP CONSTRAINT CHESUPERFUNC CASCADE; Podemos adicionar uma restrição à relação utilizando a palavra-chave ADD no comando ALTER TABLE.

7 Consultas SQL Banco de Dados Comando básico para recuperação de informações: SELECT. O comando SELECT não tem o mesmo significado da operação select (σ) da álgebra relacional. A SQL permite que uma tabela tenha duas ou mais tuplas idênticas em todos os valores de seus atributos. Mas algumas relações SQL são restritas a conjuntos (caso uma restrição de chave tenha sido declarada ou uma opção DISTINCT tenha sido usada no comando SELECT). A Estrutura SELECT-FROM-WHERE Forma Geral: SELECT <lista de atributos> FROM <lista de tabelas> WHERE <condição>; lista de atributos: nomes dos atributos cujos valores serão recuperados na consulta. lista de tabelas: nomes das tabelas necessárias para o processamento da consulta. condição: expressão booleana que identifica as tuplas que serão recuperadas. Exemplos de Consultas Recupere a data de nascimento e o endereço do(s) funcionário cujo nome seja João B. Silva. SELECT Datanasc, Endereco WHERE Pnome= João AND Minicial= B AND Unome= Silva ; Recupere o nome e o endereço de todos os funcionários que trabalham no departamento Pesquisa. SELECT Pnome, Unome, Endereco, DEPARTAMENTO WHERE Dnome= Pesquisa AND Dnumero=Dnr; Condição de seleção da álgebra Essa é uma consulta select-project-join. Condição de junção da álgebra

8 Exemplos de Consultas Nomes de Atributos Ambíguos e Apelido Para cada projeto localizado em Mauá recupere 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 nascimento. SELECT Projnumero, Dnum, Unome, Endereco, Datanasc FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE Projlocal= Mauá AND Dnum=Dnumero AND Cpf_gerente=Cpf; Quando a consulta se refere a dois ou mais atributos com o mesmo nome: qualificar o nome do atributo com o nome da relação. Suponha que as relações FUNCIONARIO e DEPARTAMENTO tenham atributos com o mesmo nome, ou seja, em FUNCIONARIO o atributo Unome foi renomeado para Nome e em DEPARTAMENTO o atributo Dnome foi renomeado para Nome. SELECT Pnome, FUNCIONARIO.Nome, Endereco, DEPARTAMENTO WHERE DEPARTAMENTO.Nome= Pesquisa AND DEPARTAMENTO.Dnumero=FUNCIONARIO.Dnumero; Nomes de Atributos Ambíguos e Apelido Cláusula WHERE Ausente e Uso do Asterisco Ambiguidade no caso de consultas que se referem duas vezes à mesma relação. Nesse caso, declaramos nomes alternativos, chamados apelidos. SELECT F.Pnome, F.Unome, S.Pnome, S.Unome AS F, FUNCIONARIO AS S WHERE F.Cpf_supervisor=S.Cpf Também é possível usar apelidos para os atributos da relação dentro de uma consulta (na cláusula FROM). FUNCIONARIO AS F(Pn, Mi, Un, Cpf, Dn, End, Sexo, Sal, Scpf, Dnr) Ausência da cláusula WHERE: todas as tuplas da relação especificada na cláusula FROM serão selecionadas. SELECT Cpf ; Ausência de cláusula WHERE e mais de uma relação na cláusula FROM produto cartesiano. SELECT Cpf, Dnome, DEPARTAMENTO;

9 Cláusula WHERE Ausente e Uso do Asterisco Tabelas como Conjuntos em SQL Usar apenas um asterisco (*) na cláusula SELECT significa selecionar todos os atributos. Exemplos: SELECT * WHERE Dnr=5; SELECT *, DEPARTAMENTO WHERE Dnome= Pesquisa AND Dnr=Dnumero; SELECT *, DEPARTAMENTO; SQL não trata tabelas como conjuntos. Uma tabela SQL com uma chave restringe-se a um conjunto. Eliminar as repetições no resultado de uma consulta SQL: usar DISTINCT na cláusula SELECT. SELECT ALL ou SELECT SELECT DISTINCT Exemplos: SELECT ALL Salario ; SELECT DISTINCT Salario ; Operações de Conjuntos em SQL Operações de conjuntos: união (UNION), interseção (INTERSECT) e diferença (EXCEPT). As relações resultantes dessas operações são conjuntos de tuplas. Operações aplicáveis apenas em relações união compatíveis. Operações de Conjuntos em SQL Se desejarmos obter todas as repetições de tuplas, devemos usar UNION ALL, INTERSECT ALL e EXCEPT ALL. (SELECT DISTINCT Projnumero FROM PROJETO, DEPARTAMENTO, FUNCIONARIO WHERE Dnum=Dnumero AND Cpf_gerente=Cpf AND Unome= Silva ) UNION (SELECT DISTINCT Projnumero FROM PROJETO, TRABALHA_EM, FUNCIONARIO WHERE Projnumero=Pnr AND Fcpf=Cpf AND Unome= Silva );

10 Comparações entre Substrings Operador de comparação LIKE: usado para comparações de partes de uma cadeia de caracteres. Caracteres reservados: % substitui um número arbitrário de caracteres. _ substitui um único caractere. Exemplos: Recuperar todos os funcionários cujos endereços sejam Sao Paulo, SP. SELECT Pnome, Unome WHERE Endereco LIKE %Sao Paulo, SP% ; Recuperar todos os funcionários que nasceram durante a década de 50. SELECT Pnome,Unome WHERE Datanasc LIKE 5_ ; Comparações Operador de comparação BETWEEN. Recuperar todos os funcionários no departamento 5 cujo salário esteja entre R$30 mil e R$ 40 mil. SELECT * WHERE (Salario BETWEEN AND ) AND Dnr = 5; Funções Aritméticas em Consultas Ordenando o Resultado das Consultas Os operadores aritméticos +, -, * e / podem ser aplicados com valores numéricos ou atributos com domínios numéricos. Exemplos: SELECT Pnome, Unome, 1.1*Salario AS Aumento_Salario AS F, TRABALHA_EM AS T, PROJETO AS P WHERE F.Cpf=T.Fcpf AND T.Pnr=P.Projnumero AND P.Projnome= ProdutoX ; Cláusula ORDER BY: ordenar as tuplas do resultado de uma consulta. Recupere a lista dos funcionários e os respectivos projetos nos quais eles trabalham, ordenada por departamento e, dentro de cada departamento, por ordem alfabética do último nome e, depois, pelo primeiro nome do funcionário. SELECT Dnome, Unome, Pnome, Projnome FROM DEPARTAMENTO, FUNCIONARIO, TRABALHA_EM, PROJETO WHERE Dnumero=Dnr AND Cpf=Fcpf AND Pnr=Projnumero ORDER BY Dnome, Unome, Pnome;

11 Ordenando o Resultado das Consultas Comandos para Modificar o Estado do BD A ordenação default é ascendente (ASC), mas podemos usar a palavra-chave DESC se quisermos ordenação descendente. ORDER BY Dnome DESC, Unome ASC, Pnome ASC INSERT DELETE UPDATE Comando INSERT Comando INSERT Usado para adicionar tuplas em uma relação. Os valores devem ser relacionados na mesma ordem em que foram definidos no comando CREATE TABLE. INSERT INTO FUNCIONARIO VALUES ( Ricardo, K, Marini, , , Rua Itabirito, 44, Taubate, SP, M,37000, ,4); Especificando os atributos que receberão os valores fornecidos pelo comando INSERT. Podem ser deixados de fora apenas os atributos com NULL permitido ou com especificação DEFAULT. Os valores devem ser relacionados na mesma ordem em que foram definidos no comando INSERT. INSERT INTO FUNCIONARIO(Pnome,Unome,Dnr,Cpf) VALUES ( Ricardo, Marini,4, );

12 Comando DELETE Comando UPDATE Remove tupas de uma relação. As remoções poderão propagar-se nas tuplas de outras relações se forem definidas ações de disparo referencial nas restrições de integridade. Dependendo da condição da cláusula WHERE poderão ser excluídas nenhuma, uma ou várias tuplas em um único comando DELETE. Exemplos: DELETE WHERE Unome= Braga ; DELETE ; Usado para modificar os valores dos atributos de uma ou mais tuplas. 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 ações de disparo referencial estiverem especificadas). UPDATE PROJETO SET Projlocal= Santo Andre, Dnum=5 WHERE Projnumero=10; Comparações Envolvendo NULL Em geral, cada NULL é considerado diferente de outro NULL. Quando NULL é comparado em uma operação, o resultado é considerado UNKNOWN. Em consultas select-project-join, somente as combinações de tuplas que evoluírem para uma expressão lógica TRUE da consulta serão selecionadas. Exceção para a regra anterior em junções externas. Para comparar o valor de um atributo com NULL, ao invés de usar = ou <>, a SQL usa IS ou IS NOT. SELECT Pnome,Unome WHERE Cpf_supervisor IS NULL; Os Valores Lógicos AND TRUE FALSE UNKNOWN TRUE TRUE FALSE UNKNOWN FALSE FALSE FALSE FALSE UNKNOWN UNKNOWN FALSE UNKNOWN OR TRUE FALSE UNKNOWN TRUE TRUE TRUE TRUE FALSE TRUE FALSE UNKNOWN UNKNOWN TRUE UNKNOWN UNKNOWN NOT TRUE FALSE FALSE TRUE UNKNOWN UNKNOWN

13 Consultas Aninhadas Formam um bloco completo de select-from-where dentro da cláusula WHERE de outra consulta. Exemplos: SELECT DISTINCT Fcpf FROM TRABALHA_EM WHERE (Pnr,Horas) IN (SELECT Pnr,Horas FROM TRABALHA_EM WHERE Fcpf= ); Operador IN: compara um valor v com um conjunto (ou multiconjunto) de valores V e evolui para TRUE se v for um dos elementos de V. Operadores (= ANY) ou (= SOME) são equivalentes ao operador IN. Outros operadores podem ser combinados com ANY (ou SOME), incluindo >, >=, <, <= e <>. Consultas Aninhadas A palavra-chave ALL também pode ser combinada com os operadores >, >=, <, <= e <>. SELECT Unome, Pnome WHERE Salario > ALL (SELECT Salario WHERE Dnr=5); Consultas Aninhadas Consultas Aninhadas Correlacionadas Possíveis ambiguidades entre os nomes de atributos. Regra: A referência a um atributo não qualificado é atribuída à relação declarada na consulta mais interna do ninho de consultas. Para fazer referência a um atributo da relação estabelecida na consulta externa, precisamos especificar um apelido para aquela relação. SELECT F.Pnome,F.Unome AS F WHERE F.Cpf IN (SELECT Fcpf FROM DEPENDENTE WHERE F.Pnome=Nome_dependente AND F.Sexo=Sexo); Consultas correlacionadas: sempre que uma condição na cláusula WHERE de uma consulta aninhada se referir a algum atributo da relação declarada na consulta externa. Nesses casos, a consulta aninhada é avaliada uma vez para cada tupla da consulta externa. SELECT F.Pnome,F.Unome AS F WHERE F.Cpf IN (SELECT Fcpf FROM DEPENDENTE WHERE F.Pnome=Nome_dependente AND F.Sexo=Sexo);

14 As Funções EXISTS e UNIQUE EXISTS: é usada para verificar se o resultado de uma consulta aninhada correlacionada é vazio ou não. SELECT F.Pnome,F.Unome AS F WHERE EXISTS (SELECT * FROM DEPENDENTE WHERE F.Cpf=Fcpf AND F.Sexo=Sexo AND F.Pnome=Nome_dependente); EXISTS(Q) devolverá TRUE se existir ao menos uma tupla no resultado da consulta aninhada Q. As Funções EXISTS e UNIQUE NOT EXISTS(Q): devolverá TRUE se não existir nenhuma tupla no resultado da consulta aninhada Q. Recupere os nomes dos funcionários que não possuem nenhum dependente. SELECT Pnome,Unome WHERE NOT EXISTS (SELECT * FROM DEPENDENTE WHERE Cpf=Fcpf); SELECT Pnome,Unome WHERE EXISTS (SELECT * FROM DEPENDENTE WHERE Cpf=Fcpf) AND EXISTS (SELECT * FROM DEPARTAMENTO WHERE Cpf=Cpf_gerente); As Funções EXISTS e UNIQUE Recupere o nome de cada um dos funcionários que trabalha em todos os projetos controlados pelo departamento 5. SELECT Pnome,Unome WHERE NOT EXISTS ((SELECT Projnumero FROM PROJETO WHERE Dnumero=5) EXCEPT (SELECT Pnr FROM TRABALHA_EM WHERE Cpf=Fcpf)); Conjuntos Explícitos Também podemos usar um conjunto de valores explícitos na cláusula WHERE em vez de consultas aninhadas. Recupere o Cpf de todos os funcionários que trabalham nos projetos 1, 2 ou 3. SELECT DISTINCT Fcpf FROM TRABALHA_EM WHERE Pnr IN (1,2,3); Função UNIQUE(Q): devolve TRUE se não existir nenhuma tupla repetida no resultado da consulta (Q), caso contrário, devolve FALSE. Temos ainda a função NOT UNIQUE(Q).

15 Junção de Tabelas Junção de Tabelas Exemplo de junção. SELECT Pnome,Unome,Endereco FROM (FUNCIONARIO JOIN DEPARTAMENTO ON Dnr=Dnumero) WHERE Dnome= Pesquisa ; Junção natural de duas relações R e S. Uma condição (equijunção) implícita é criada para cada par R e S de atributos com o mesmo nome. Cada um desses pares de atributos é incluído somente uma vez na relação resultante. SELECT Pnome,Unome,Endereco FROM (FUNCIONARIO NATURAL JOIN (DEPARTAMENTO AS DEPT(Dnome,Dnr,Cpf_gerente,Data_inicio_gerente))) WHERE Dnome= Pesquisa ; Tipo default de junção: INNER JOIN (mesmo que JOIN). No exemplo a seguir, somente os funcionários que possuírem um supervisor serão incluídos no resultado. SELECT F.Unome AS NOME_FUNCIONARIO,S.Unome AS NOME_SUPERVISOR FROM (FUNCIONARIO AS F JOIN FUNCIONARIO AS S ON F.Cpf_supervisor=S.Cpf); Uma tupla FUNCIONARIO com valor de Cpf_supervisor igual a NULL não será incluída no resultado. Junção de Tabelas Funções Agregadas Para que todos os funcionários sejam incluídos: OUTER JOIN (LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN). SELECT F.Unome AS NOME_FUNCIONARIO, S.Unome AS NOME_SUPERVISOR FROM (FUNCIONARIO AS F LEFT OUTER JOIN FUNCIONARIO AS S ON F.Cpf_supervisor=S.Cpf); São elas: COUNT, SUM, MAX, MIN e AVG. Essas funções podem ser usadas na cláusula SELECT ou HAVING. As funções MAX e MIN podem ser usadas com atributos não numéricos, se os valores do domínio tiverem uma ordenação total. Exemplos: Recupere a soma dos salários, o maior salário, o menor salário e a média salarial de todos os funcionários. SELECT SUM(Salario),MAX(Salario), MIN(Salario),AVG(Salario) ;

16 Funções Agregadas Funções Agregadas Encontre a soma dos salários de todos os funcionários do departamento Pesquisa. SELECT SUM(Salario) FROM (FUNCIONARIO JOIN DEPARTAMENTO ON Dnr=Dnumero) WHERE Dnome= Pesquisa ; Recupere o número total de funcionários do departamento Pesquisa. SELECT COUNT(*), DEPARTAMENTO WHERE Dnr=Dnumero AND Dnome= Pesquisa ; Nesse caso, o (*) refere-se às linhas (tuplas). Funções Agregadas Funções Agregadas Também podemos usar o COUNT para contar o número de valores em uma coluna. Conte o número de diferentes valores de salários contidos no banco de dados. SELECT COUNT (DISTINCT Salario) ; Os valores NULL são descartados quando se aplicam as funções agregadas em um atributo em particular. Exemplo de consulta aninhada correlacionada com função agregada. SELECT Unome,Pnome WHERE (SELECT COUNT(*) FROM DEPENDENTE WHERE Cpf=Fcpf) >= 2;

17 Agrupamento: Cláusulas GROUP BY e HAVING Para os casos em quem precisamos aplicar as funções agregadas para subgrupos de tuplas em uma relação. Para cada departamento, recupere seu número, o número de funcionários dele e a média de seus salários. SELECT Dnr,COUNT(*),AVG(Salario) GROUP BY Dnr; Se existir NULL no atributo de agrupamento: um grupo separado será criado para todas as tuplas com valores NULL. Para cada projeto, recupere seu número, seu nome e o número de funcionários que trabalham nele. SELECT Projnumero,Projnome,COUNT(*) FROM PROJETO,TRABALHA_EM WHERE Projnumero=Pnr GROUP BY Projnumero,Projnome; Agrupamento: Cláusulas GROUP BY e HAVING Algumas vezes queremos recuperar valores de funções agregadas somente para os grupos que safisfazem determinadas condições. Para cada projeto em que trabalhem mais de dois funcionários, recupere o número do projeto, seu nome e o número de funcionários. SELECT Projnumero,Projnome,COUNT(*) FROM PROJETO,TRABALHA_EM WHERE Projnumero=Pnr GROUP BY Projnumero,Projnome HAVING COUNT(*)>2; Agrupamento: Cláusulas GROUP BY e HAVING Agrupamento: Cláusulas GROUP BY e HAVING Exemplo: Desejamos contar, para cada departamento, o número total de funcionários cujos salários excedam os 40 mil dólares, mas somente para os departamentos onde houver mais de cinco funcionários. A solução a seguir está correta? SELECT Dnumero, COUNT(*) FROM DEPARTAMENTO, FUNCIONARIO WHERE Dnumero=Dnr AND Salario>40000 GROUP BY Dnumero HAVING COUNT(*)>5; Solução correta: SELECT Dnumero, COUNT(*) FROM DEPARTAMENTO, FUNCIONARIO WHERE Dnumero=Dnr AND Salario>40000 AND Dnr IN GROUP BY Dnumero; (SELECT Dnr GROUP BY Dnr HAVING COUNT(*)>5)

18 Asserções, Triggers e Visões em SQL Asserções: permitem a determinação de restrições genéricas sobre o banco de dados. Triggers (gatilhos): usados para especificar ações a serem tomadas quando ocorrem determinados eventos ou certas condições são satisfeitas. Visões: são tabelas virtuais (ou derivadas), cujas informações são derivadas de tabelas previamente definidas. Especificando as Restrições Genéricas por Asserções Especificar restrições genéricas usando a declaração CREATE ASSERTION. Especificar a restrição O salário de um funcionário não pode ser maior do que o salário do gerente do departamento em que ele trabalha. CREATE ASSERTION RESTRICAO_SALARIAL CHECK(NOT EXISTS (SELECT * F, FUNCIONARIO G, DEPARTAMENTO D WHERE F.Salario > G.Salario AND F.Dnr=D.Dnumero AND D.Cpf_gerente=G.Cpf)); Usar CREATE ASSERTION somente nos casos em que não for possível usar CHECK nos atributos, nos domínios ou nas tuplas. Especificando um Trigger Visões em SQL Um trigger típico possui três componentes: evento(s), condição e ação. Queremos verificar se o salário de um funcionário é maior do que o do seu supervisor e, se isso ocorrer, chamar o procedimento armazenado INFORMAR_SUPERVISOR. CREATE TRIGGER VIOLACAO_SALARIAL BEFORE INSERT OR UPDATE OF Salario, Cpf_supervisor ON FUNCIONARIO FOR EACH ROW WHEN (NEW.Salario > (SELECT Salario WHERE Cpf = NEW.Cpf_supervisor)) INFORMAR_SUPERVISOR(NEW.Cpf_supervisor,NEW.Cpf); É uma tabela única derivada de outra(s) tabela(s). Embora não exista fisicamente, uma visão é um meio para especificar uma tabela que precise ser consultada frequentemente. Geralmente a visão é mantida o tempo necessário para que seja consultada. Técnicas de atualização foram desenvolvidas para garantir que a visão esteja sempre atualizada.

19 Visões em SQL Exemplos: CREATE VIEW TRABALHA_EM1 AS SELECT Pnome,Unome,Projnome,Horas,PROJETO,TRABALHA_EM WHERE Cpf=Fcpf AND Pnr=Projnumero; Perguntas CREATE VIEW DEP_INFO(Dep_nome,Qtd_func,Total_sal) AS SELECT Dnome,COUNT(*),SUM(Salario) FROM DEPARTAMENTO,FUNCIONARIO WHERE Dnumero=Dnr GROUP BY Dnome; Especificando uma consulta SQL em uma visão. SELECT Pnome,Unome FROM TRABALHA_EM1 WHERE Projnome= ProjetoX ; FIM

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

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-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

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

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

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

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

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

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

SQL-99: Definição de esquema, restrições básicas e consultas 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SQL. Profa. Msc. Fernanda Lígia Rodrigues Lopes. Disciplina: Fundamentos de Banco de Dados

SQL. Profa. Msc. Fernanda Lígia Rodrigues Lopes. Disciplina: Fundamentos de Banco de Dados SQL Profa. Msc. Fernanda Lígia Rodrigues Lopes Disciplina: Fundamentos de Banco de Dados Roteiro O que é SQL? Breve Histórico da SQL Usos da SQL Comandos SQL DDL Comandos SQL DML Comandos para consultas

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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. 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

Revisão de Bancos de Dados

Revisão de Bancos de Dados Revisão de Bancos de Dados Conceitos Básicos 1. Defina o que é um banco de dados e o que é um sistema gerenciador de bancos de dados (SGBD). 2. Defina as arquiteturas de software em duas camadas (cliente/servidor)

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

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

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

SQL - Criação de Tabelas

SQL - Criação de Tabelas SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas

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

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 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

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

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

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de Introdução O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language). O padrão SQL define precisamente uma interface SQL para a

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

Page 1. Prof. Constantino Jacob

Page 1. Prof. Constantino Jacob Tópicos Introdução à SQL Definição Tipos de Operações Instrução SELECT Sintaxe básica Operações relacionais de restrição, projeção e junção Instruções DML Delete, Update e Insert Instruções DDL Create

Leia mais

Structured Query Language (SQL) Aula Prática

Structured Query Language (SQL) Aula Prática Structured Query Language (SQL) Aula Prática Linguagens de SGBD Durante o desenvolvimento do sistema R, pesquisadores da IBM desenvolveram a linguagem SEQUEL, primeira linguagem de acesso para Sistemas

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

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

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

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais Linguagem de Consulta SQL Profa. Carla A. Lima Reis SQL Agenda Introdução Histórico BD relacionais Linguagem SQL Definição de BD Manipulação de BD com SQL Consultas SQL Consultas com várias tabelas Subconsultas

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

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

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

- 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

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R 101010101 001010101 101010100 E-BOOK GUIA RÁPIDO DE SQL INTRODUÇÃO Este é um guia rápido de SQL criado pela equipe do TreinaWeb e serve principalmente para iniciantes na linguagem. SQL é a sigla em inglês

Leia mais

Sintaxe do comando SELECT

Sintaxe do comando SELECT Universidade Estadual de Mato Grosso do Sul Ciência da Computação Banco de Dados Prof. Nilton [email protected] Sintaxe do comando SELECT SELECT FROM [WHERE ]

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

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

'%'! $!0 $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,/)!)+,/)% *! +,0''% * %$!*!$$ #!%&%'%'%$! 94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31? MODELAGEM FÍSICA Capítulo 3! " # $ $!%%%& '$! $% $$%"%' ) ' *'!%'!$ $ $ $% +, %#!!" '$*'#%! $ $$%" % '$%!!% $% * % $ *-! %$% $!* '% $!$$.!'% & $%!% $ $ ' %/!$ 0 $*' $% *0 )#%!$0% 1&$$$%+#!*22,"$% )'%$$%%&

Leia mais

ÁLGEBRA E CÁLCULO RELACIONAL

ÁLGEBRA E CÁLCULO RELACIONAL UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO ÁLGEBRA E CÁLCULO RELACIONAL MARINGÁ 2014 SUMÁRIO SUMÁRIO...1 1 INTRODUÇÃO...2 1.1

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa [email protected]

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa [email protected] 1 Agenda Linguagem SQL: Introdução; Construção/Definição de tabelas. 2 Linguagem SQL SQL - Structured Query Language;

Leia mais

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte Banco de Dados Diego Silveira Costa Nascimento Instituto Federal do Rio Grande do Norte [email protected] 20 de março de 2015 Ementa do Curso 1 Introdução 2 Abordagem Entidade-relacionamento

Leia mais

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

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Gerenciamento de Dados e Informação Introdução Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Robson Fidalgo - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta,

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

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 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