Marcelo Henrique dos Santos

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

Download "Marcelo Henrique dos Santos"

Transcrição

1 Mestrado em Educação (em andamento) MBA em Negócios em Mídias Digitais MBA em Marketing e Vendas Especialista em games Bacharel em Sistema de Informação marcelosantos@outlook.com

2 SQL (Structure Query Language)

3 SQL Linguagem para: Definição de dados: criação das estruturas Data Definition Language (DDL) Manipulação de dados: atualização e consultas Data Manipulation Language (DML) 3

4 Histórico Linguagem SQUEL desenvolvida pela IBM para um banco de dados experimental R Baseada no padrão ANSI e ISO: SQL-86 SQL-89 SQL-92 SQL:1999 SQL:2003 A maioria dos SGBD comerciais suportam o SQL-92, e algumas das caracteristicas das últimas versões 4

5 Mais SQL SQL é considerada a razão principal para o sucesso dos bancos de dados relacionais comerciais Tornou-se a linguagem padrão para bases relacionais Funciona entre diferentes produtos Embedded SQL: Java, C/C++, Cobol Fácil uso para o usuário 5

6 Permite especificar: SQL COMO LINGUAGEM DE DEFINIÇÃO DE DADOS O esquema de cada relação O domínio dos valores associados a cada atributo Restrições de integridade O conjunto de índices Visões Permissão de acesso às relações 6

7 DDL (Data Definition Language)

8 Criando uma base de dados Criação de um BD SQL padrão não oferece tal comando BDs são criados via ferramentas do SGBD alguns SGBDs (SQL Server, DB2, MySQL) oferecem este comando create database nome_bd drop database nome_bd 8

9 Criando Esquemas em SQL Comandos para definição de esquemas create table define a estrutura da tabela, suas restrições de integridade e cria uma tabela vazia alter table modifica a definição de uma tabela: atributos chave não podem ser removidos de uma tabela atributos NOT NULL não podem ser inseridos em uma tabela drop table remove uma tabela com todas as suas tuplas 9

10 Criação de Tabelas CREATE TABLE Colunas são especificadas primeiro, sob a forma: Depois Chaves, integridade referencial e restrições de integridade CREATE TABLE <nome_da_tabela> (C 1 D 1, C 2 D 2,..., C n D n,... PRIMARY KEY <lista_de_colunas>, FOREIGN KEY <nome_da_coluna> REFERENCES <nome_tab_ref>(<nome_da_coluna_ref>)); cada C i é uma coluna no esquema da tabela D i é o tipo de dado no domínio da coluna 10 C i

11 Criando Esquemas em SQL CREATE TABLE Ambulatorios ( nroa int, andar numeric(3) NOT NULL, PRIMARY KEY(nroa) ) CREATE TABLE Medicos ( codm int, nome varchar(40) NOT NULL, especialidade char(20), CPF numeric(11) UNIQUE, cidade varchar(30), nroa int, PRIMARY KEY(codm), FOREIGN KEY(nroa) REFERENCES Ambulatorios ) 11

12 Tipos de dados (Transact-SQL) 12

13 Create Table Exemplo: create table produto (codigo integer not null, descricao varchar(30), tipo varchar (20) PRIMARY KEY codigo) Codigo Descricao tipo 13

14 Alterando Tabelas ALTER TABLE nome_tabela ADD [COLUMN] nome_atributo_1 tipo_1 [{RIs}] [{, nome_atributo_n tipo_n [{RIs}]}] MODIFY [COLUMN] nome_atributo_1 tipo_1 [{RIs}] [{, nome_atributo_n tipo_n [{RIs}]}] DROP COLUMN nome_atributo_1 [{, nome_atributo_n }] ADD CONSTRAINT nome_ri_1 def_ri_1 [{, nome_ri_n def_ri_n}] DROP CONSTRAINT nome_ri_1 [{, nome_ri_n}] [ADD DROP] [PRIMARY KEY... FOREIGN KEY...] 14

15 Domínios

16 Restrições NOT NULL Restrição aplicada em colunas cujos valores não podem ser nulos Valor Default Usado para inicializar o valor de uma coluna DEFAULT <valor> logo após a restrição: create table produto (codigo integer not null, descricao varchar(30), tipo varchar (20) PRIMARY KEY codigo) 16

17 Tipos de Domínios em SQL char (n). Character de tamanho n definido pelo usuário varchar (n). int Smallint numeric (p,d) real, double precision float(n) 17

18 SQL (Structure Query Language)

19 SQL Linguagem para: Definição de dados: criação das estruturas Data Definition Language (DDL) Manipulação de dados: atualização e consultas Data Manipulation Language (DML) 19

20 Manipulação de Dados Define operações de manipulação de dados I (INSERT) A (UPDATE) E (DELETE) C (SELECT) Instruções declarativas manipulação de conjuntos especifica-se o que fazer e não como fazer 20

21 Inserções, Alterações e Exclusões

22 SQL Insert Inserção de dados INSERT INTO nome_tabela [(lista_atributos)] VALUES (lista_valores_atributos) [, (lista_valores_atributos)] Exemplos INSERT INTO Ambulatorios VALUES (1, 1, 30) INSERT INTO Medicos (codm, nome, idade, especialidade, CPF, cidade) VALUES (4, Carlos, 28, ortopedia, , Joinville ); 22

23 Inserção de dados SQL Inserção a partir de outra tabela Permite inserir em uma tabela a partir de outra tabela A nova tabela terá os mesmos atributos, com os mesmos domínios Exemplos INSERT into cliente as SELECT * from funcionario 23

24 SQL Update Alteração de dados UPDATE nome_tabela SET nome_atributo_1 = Valor [{, nome_atributo_n = Valor}] [WHERE condição] Exemplos UPDATE Medico SET cidade = Florianopolis UPDATE Ambulatorios SET capacidade = capacidade + 5, andar = 3 WHERE nroa = 2 24

25 SQL DML Exclusão de dados DELETE FROM nome_tabela [WHERE condição] Exemplos DELETE FROM Ambulatorios DELETE FROM Medicos WHERE especialidade = cardiologia or cidade < > Florianopolis 25

26 Consultas: SELECT

27 Estrutura Básica Uma consulta em SQL tem a seguinte forma: select A 1, A 2,..., A n from r 1, r 2,..., r m where P A i representa um atributo R i representa uma tabela P é um predicado Esta consulta é equivalente a uma expressão da Algebra Relacional ( P( r1 r2 r A1, A2,, An m O resultado de uma consulta SQL é sempre uma tabela )) 27

28 Estrutura Básica: resumindo. SELECT lista de atributos desejados FROM uma ou mais tabelas WHERE com restrições sobre atributos Exemplo: encontre o nome e o salário dos funcionarios da relação funcionário SELECT nome, salario FROM funcionario 28

29 Distinct O SQL permite duplicatas em relações e resultados em consultas Para eliminar duplatas, usa-se a cláusula DISTINCT depois do SELECT Exemplo: SELECT distinct nome FROM funcionario 29

30 A cláusula * O asterisco na cláusula SELECT denota TODOS OS ATRIBUTOS SELECT * FROM funcionario Expressões artitméticas podem ser usadas na cláusula SELECT +,,, / Exemplo: SELECT nome, salario FROM funcionario 30

31 A cláusula FROM Equivale a operação de Produto Cartesiano da Álgebra Lista as relações envolvidas na consulta Exemplo: SELECT FROM funcionario, departamento 31

32 A cláusula FROM Quando mais de uma tabela é utilizada é necessário dar um apelido para elas que deve ser utilizado para diferenciar atributos iguais Exemplo: SELECT f. FROM funcionario f, departamento d WHERE f.coddepto = d.coddepto 32

33 A cláusula WHERE A cláusula where especifica as condições que o resultado precisa satisfazer Corresponde ao predicado de seleção da álgebra Exemplo: SELECT nome, salario FROM funcionario WHERE salario > 2000 operadores AND, OR e NOT podem ser usados Exemplo: SELECT nome, salario FROM funcionario WHERE salario > 2000 AND idade < 30 33

34 Renomeando atributos Renomeação de atributos old-name as new-name Exemplo: SELECT nome as nomecliente, (salario+200) as comissao FROM funcionario 34

35 Operações com Strings O SQL permite comparar strings com o operador like Pode ser combinado com outros caracteres % compara substrings Exemplo I: encontre o nome dos funcionarios cujos nomes iniciam com Pedro select nome from funcionario where nome like 'Pedro%' 35

36 Operações com Strings Exemplo II: encontre o nome dos funcionarios cujos nomes contém Pedro no nome select nome from funcionario where nome like %Pedro%' 36

37 Operações de Conjunto Envolvem ao menos 2 tabelas Interseção e União: elimina automaticamente repetições Relações precisam ser compatíveis (mesmo número de atributos) Union ALL e intersects ALL preserva duplicatas 37

38 Operações de Conjunto n Encontre os clientes que tenham empréstimos e contas (select nome from conta) intersect (select nome from emprestimo) (select nome from conta) union (select nome from emprestimo) 38

39 Ordenando tuplas com Order By Exemplo: Liste em ordem alfabética os funcionarios que trabalham no departamento financeiro select distinct funcionario.nome from funcionario, departamento where funcionario.coddepto=departamento.coddepto AND departamento.nome= financeiro order by funcionario.nome Order by pode ser em ordem descendente Exemplo: order by nome desc 39

40 Funções de Agregação Operam sobre múltiplos valores de uma coluna da tabela e retornam um valor avg: média min: valor mínimo max: valor máximo sum: soma de valores count: número de valores 40

41 Exemplos: Funções de Agregação n Encontre o número de tuplas da relação CLIENTE select count(*) FROM cliente n Encontre a soma dos salários dos funcionários select SUM(salario) FROM funcionario 41

42 Funções de Agregação e Group By Encontre o total de funcionários de cada departamento select d.nome, count(f.*) as numerofuncionarios FROM funcionario f, departamento d WHERE f.coddepto=d.coddepto GROUP BY d.nome Nota: Atributos na cláusula SELECT que estão FORA da função de agregação precisam aparecer na lista de atributos do GROUP BY 42

43 Funções de Agregação e Having A função HAVING é utilizada para aplicar condições sobre grupos e não sobre uma única tupla Exemplo: Quais são os departamentos onde a soma dos salários dos funcionários ultrapassa select d.nome, sum(f.salario) from funcionario f, departamento d where f.coddepto=d.coddepto group by d.nome having um (salario) > Nota: predicados da cláusula having são aplicados depois que os grupos foram gerados, mas a condição do where é aplicada antes da formação dos grupos 43

44 Consultas Aninhadas Uma subconsulta select-from-where está aninhada dentro de outra consulta Exemplo: Selecione os clientes que são funcionários select nomecliente From cliente Where nomecliente in (select nomefuncionario from funcionario) 44

45 Valores nulos Consulta sobre valores inexistentes Exemplo: Encontre os funcionarios que não possuem carteira de habilitação select nome from funcionario where carteirahabilitacao is null OBS: cuidado que valores nulos em operações matemáticas podem dar problemas 45

46 SQL e Álgebra Relacional Álgebra nome ( (Médicos X = Médicos.codm = Consultas.codm ( codm ( data = 06/11/13 (Consultas))) ) ) ( CPF (Funcionários)) ( CPF (Pacientes)) ( CPF (Médicos)) ( CPF (Pacientes)) SQL Select nome From Médicos Where codm in (select codm from Consultas where data = 06/11/13 ) Select CPF From Funcionários Where CPF not in (select CPF from Pacientes) Select CPF From Médicos Where CPF in (select CPF from Pacientes) 46

47 Visões e Autorização de Acesso

48 Visões Na aula anterior aprendemos consultas SQL. Hoje nos vamos ver visões, que são uma outra forma de fazer consultas em SQL Dois objetivos principais das visões: Simplificar consultas Autorização de acesso (segurança)

49 Conceito Visão: é um meio de prover ao usuário um modelo personalizado do banco de dados. É uma relação que não armazena dados, composta dinamicamente por uma consulta que é previamente analisada e otimizada.

50 Visão Um SGBD pode dar suporte a um grande número de visões sobre qualquer conjunto de relações O SGBD armazena a definição da visão, mas ela é instanciada quando uma consulta sobre ela for executada Toda visão pode ser consultada mas nem toda visão pode ser atualizada

51 Criação e consultas em visões

52 Em SQL uma visão é definida como; Create view nomedavisao <expressão de consulta>, Onde <expressao de consulta> é qualquer expressão de consulta válida em SQL Projeto (codproj, tipo, descricao) ProjetoEmpregado (codproj, codemp, datainicial, datafinal) Empregado (codemp, nome, categoria, salario) Esta visão terá os atributos especificados na consulta Create view valtoescalao as select codemp, nome, salario from empregado where salario>10000 Tabela base

53 Visão sobre uma relação Outra forma Create view valtoescalao (a, b, c) as select codemp, nome, salario from empregado where salario>10000 Esta visão terá os atributos a, b, c, que serão instanciados com os respectivos valores recuperados pela consulta (codemp, nome, salario)

54 Visão com várias relações Projetos do alto escalão ( visão com várias tabelas) Projeto (codproj, tipo, descricao) ProjetoEmpregado (codproj, codemp, datainicial, datafinal) Empregado (codemp, nome, categoria, salario) Create view vprojetoaltoescalao as select e.codemp, e.nome, e.salario, p.descricao from empregado e, projeto p, projetoempregado pe where e.salario>10000 AND e.codemp=pe.codemp AND pe.codproj=p.codproj

55 Visão: recursividade (visão sobre visão) Projetos do alto escalãoo (visão sobre visão) Projeto (codproj, tipo, descricao) ProjetoEmpregado (codproj, codemp, datainicial, datafinal) Empregado (codemp, nome, categoria, salario) valtoescalao (codemp, nome, salario) Create view vprojetosaltoescalao as select e.codemp, a.nome, a.salario, p.descricao from altoescalao a, projeto p, projetoempregado pe where a.codemp=pe.codemp AND pe.codproj=p.codproj

56 Consultas em Visões Consultas SQL podem ser especificadas sobre a visão select nome from vprojetosaltoescalao Where descricao = Projeto A Uma visão está sempre atualizada: Ao modificar tuplas nas tabelas envolvidas na visão, a visão vai automaticamente refletir as alterações A visão não é realizada quando é criada mas quando executamos uma consulta sobre ela.

57 Consultas em Visões Quando uma visão não é mais necessária podemos eliminá-la, usando o comando drop view DROP VIEW nomedavisao

58 Autorização de Acesso

59 Autorização de Acesso Objetivo proteção contra acessos mal intencionados controlar quais dados um usuário/grupo de usuários pode ter acesso controlar quais operações um usuário/grupo de usuários pode realizar sobre estes dados

60 Autorização de Acesso: Exemplos Exemplo 1: Em um sistema bancário, um funcionário precisa saber os dados dos clientes, mas apenas os que tem conta poupança na agência Cliente (#codcli, nome, endereco, codcidade) Agencia (#codagencia, nome, descricao) Poupança (# numconta, # codagencia, # codcli, saldo) Exemplo 2: um funcionário de uma empresa deve ter acesso aos nomes dos funcionários e aos seus projetos, mas não de ter acesso ao salário dos funcionários Empregado (#codemp, nome, categoria, salario) Projeto (#codproj, tipo, descricao) ProjetoEmpregado (# codproj, # codemp, datainicial, datafinal)

61 Autorização de Acesso Um usuário do Banco de dados pode ter diversas formas de autorização a partes do BD: O DBA é o superusuário do BD, que pode tudo alguns privilégios são exclusivos dele, como a recuperação do BD, a configuração de parâmetros do SGBD, etc. concede/retira (revoga) privilégios de acesso aos outros usuários

62 Autorização de Acesso Duas formas principais de acesso: Nível de conta (usuário): o administrador do BD pode dar permissões aos usuários para criar esquemas, modificar e criar tabelas e selecionar dados O DBA estabelece permissões da conta, independente das relações do BD

63 Autorização de Acesso Nível de relação/visão: o DBA pode controlar o privilégio de acesso de cada usuário a relações ou visões específicas do BD definidas para SQL Para cada usuário podem ser dadas permissões de leitura(seleção), modificação e referência

64 Autorização de Acesso Autorização de leitura: permite apenas recuperar dados de uma relação permissão select Autorização de modificação: privilégios para insert, delete e update Para insert e update é possível restringir os atributos Autorização de referência: uma conta (de usuário) pode fazer referência a uma relação ao especificar restrições de integridade Pode ser por atributo

65 Autorização de Acesso em SQL Lista basica: alter, delete, index, insert, select e update Sintaxe: grant <lista de privilégios> on <nome da relação ou visão> to <lista de usuários> Exemplo: grant select on cliente to U1, U2, U3 grant update (saldo) on deposito to U1, U2

66 Autorização de Acesso: Exemplos Exemplo 1: Em um sistema bancário, um funcionário precisa saber os dados dos clientes, mas apenas os que tem conta poupança na agência Cliente (codcli, nome, endereco, codcidade) Agencia (codagencia, nome, descricao) Poupança ( numconta, # codagencia, # codcli, saldo) Solução: usar views Create view vclientepoupancaagencia as select c.codcli, c.nome, p.numconta from cliente c, poupanca p where c.codcli=p.cod_cli and p.codagencia= grant select on vclientepoupancaagencia to U10

67 Autorização de Acesso: Exemplos Exemplo 2: um funcionário de uma empresa deve ter acesso aos nomes dos funcionários e aos seus projetos, mas não de ter acesso ao salário dos funcionários Create view vempregadoprojeto as select e.codemp, e.nome, p.tipo, p.descricao, j.datainicial, j.datafinal from empregado e, projeto p, projetoempregado j where e.codemp=j.codemp and j.codproj=p.codproj grant select on vempregadoprojeto to U50 Empregado (codemp, nome, categoria, salario) Projeto (#codproj, tipo, descricao) ProjetoEmpregado (# codproj, # codemp, datainicial, datafinal)

68 Autorização de Acesso Roles (Papéis): são interessantes quando um grupo de usuários tem as mesmas restrições de acesso: ex: vários caixas de um banco (várias agências) tem permissão para creditar e debitar valores na conta dos clientes. Ao invés de dar permissão de inclusão, alteração e exclusão para cada um dos caixas que tem este direito, cria-se o papel movimentação Create role movimentaçao E dá-se a permissão ao papel Grant insert, update, delete ON TABELA to movimentaçao Vincula todos os usuarios ao papel GRANT movimentação TO A, B, C, C

69 Exemplo Completo Suponha que o DBA crie 4 contas U1, U2, U3 e U4. 1) Somente U1 deve criar relações no banco (privilégio de conta) grant createtab to U1 2) com essa autorização o usuário U1 pode criar relações e terá TODOS os privilégios sobre elas Suponha que U1 criou as relações Empregado (codemp, nome, categoria, salario) Projeto (#codproj, tipo, descricao) ProjetoEmpregado (# codproj, # codemp, datainicial, datafinal)

70 Exemplo Completo 3) Suponha que U1 quer dar ao usuário U2 permissão para incluir e remover tuplas em Empregado e Projeto grant INSERT, DELETE ON EMPREGADO,PROJETO TO U2 4) Suponha que U1 quer dar ao usuário U3 permissão para recuperar tuplas em Empregado e seja capaz de PROPAGAR este privilégio grant SELECT ON EMPREGADO TO U3 WITH GRANT OPTION Empregado (codemp, nome, categoria, salario) Projeto (#codproj, tipo, descricao)

71 Exemplo Completo 4) Agora U3 pode conceder privilégio de seleção para U4 sobre a relação Empregado grant SELECT ON EMPREGADO TO U4 Obs: U4 não pode propagar este privilégio 5) Suponha que U1 queira revogar a permissão de U3 REVOKE SELECT ON EMPEGADO FROM U3 Empregado (codemp, nome, categoria, salario) Projeto (#codproj, tipo, descricao)

72 Exemplo Completo 6)Suponha que U1 queira dar ao usuário U3 permissão apenas para consultar empregados que trabalhem no projeto AATOM. Create view vempregadoprojeto as select e.codemp, e.nome, e.categoria, e.salario from empregado e, projeto p, projetoempregado j where e.codemp=j.codemp and j.codproj=p.codproj and p.descricao= AATOM grant SELECT ON vemrpegadoprojeto TO U3 Empregado (codemp, nome, categoria, salario) Projeto (codproj, tipo, descricao) ProjetoEmpregado (# codproj, # codemp, datainicial, datafinal)

73 grant all to {listausuários public}

74 GRANT { { CREATE CONNECT TEMPORARY TEMP } [,...] ALL [ PRIVILEGES ] } ON DATABASE dbname [,...] TO { username GROUP groupname PUBLIC } [,...] [ WITH GRANT OPTION ] Lista de Permissões no PostgreSQL GRANT { { SELECT INSERT UPDATE DELETE REFERENCES TRIGGER } [,...] ALL [ PRIVILEGES ] } ON [ TABLE ] tablename [,...] TO { username GROUP groupname PUBLIC } [,...] [ WITH GRANT OPTION ] GRANT { { USAGE SELECT UPDATE } [,...] ALL [ PRIVILEGES ] } ON SEQUENCE sequencename [,...] TO { username GROUP groupname PUBLIC } [,...] [ WITH GRANT OPTION ]

75 Procedures

76 Stored Procedures É um conjunto de comandos SQL definidos pelo usuário que ficam armazenados num BD como um procedimento/função, para eventuais processamentos. São processamentos de tarefas da aplicação que residem no SGBD ao invés de no código da aplicação (cliente).

77 Stored Procedures Vantagens: 1.Desempenho Ex.: Seja a consulta SELECT codigop, nome, COUNT(*) FROM Projeto p, Alocacao a WHERE p.codproj = a.codigop GROUP BY p.codproj, p.nome

78 Stored Procedures Se vários usuários realizarem esta consulta o tráfego de rede será alto. se criarmos uma stored procedure para executar esta consulta, os usuários necessitarão apenas de um comando para executar a consulta anterior: EXEC nomeprocedimento; Outro ponto é a compilação, a consulta anterior seria compilada a cada chamada, enquanto o procedimento contendo a consulta seria compilado uma única vez

79 Stored Procedures - Vantagens 2. Facilita o gerenciamento do BD, pois a consulta é escrita em um único lugar, portanto a manutenção desta torna-se mais eficaz e segura.

80 Stored Procedures - Vantagens 3. Segurança: podemos usar stored procedures para limitar o acesso de alguns usuários ao BD. Desta forma, a maneira em que o BD pode ser modificado é estritamente definida.

81 Stored Procedures: SQL/PSM SQL/PSM - Persistent Stored Modules: parte do padrão SQL relativo às Stored Procedures No momento cada SGBD oferece sua própria linguagem (Oracle PL/SQL, Microsoft Transact/SQL, etc) Em PSM, definimos módulos que são coleções de definições de funções ou procedimentos, declarações de tabelas temporárias, dentre outros.

82 Stored Procedures - SQL/PSM Criando Funções e Procedimentos CREATE PROCEDURE <NOME> (<parâmetros>) declarações locais corpo do procedimento CREATE FUNCTION <NOME> RETURNS <tipo> declarações locais corpo da função obs.: parâmetros são do tipo modo-nome-tipo (onde modo indica IN, OUT ou INOUT) Parâmetros em funções devem ter modo IN

83 Stored Procedures - SQL/PSM Exemplo: CREATE PROCEDURE MudaEndereco ( IN endantigo VARCHAR(255), IN endnovo VARCHAR(255) ) UPDATE Empregado SET endereco = endnovo WHERE endereco = endantigo;

84 Stored Procedures - SQL/PSM Alguns Comandos: 1) Chamada a um procedimento: CALL <nome procedure> (<lista argumentos>); Obs.: CALL é aplicado apenas a Procedures (não a Function) Esta chamada pode ser realizada de vários lugares: - Programa com SQL embutido EXEC SQL CALL calcula(:x, 3); - Como comando em outro procedimento ou função PSM: CALL calcula (10);

85 Stored Procedures - SQL/PSM 2) Comando de Retorno (usado apenas em funções) RETURN <expressão>; (OBS este comando não encerra a função) ) Declaração de variáveis locais: DECLARE <nome> <tipo>;

86 Stored Procedures - SQL/PSM 3) Comando de atribuição SET <variável> = <expressão>; 4) Grupo de comandos: delimitados por BEGIN e END 5) Labels: colocamos labels em comandos precedendo estes pelo nome do label e dois pontos.

87 Stored Procedures - SQL/PSM 6) Comandos condicionais 7) Laços IF <condição> THEN LOOP <comandos> <Comandos> ELSEIF <condição> THEN END LOOP; <comandos> ELSE <comandos> END IF;

88 Stored Procedures - SQL/PSM Exemplo: Função sobre o esquema Filmes que recebe um ano e nome de estúdio e retorna TRUE se aquele estúdio produziu apenas um filme preto e branco naquele ano ou nada produziu. CREATE FUNCTION PretoeBranco( a int, studio char[15]) RETURNS BOOLEAN IF not exists ( select * from Filme where ano = a and nomestudio = studio) THEN RETURN TRUE; -- não faz a função retornar agora ELSEIF 1 <= (select count(*) from Filme where ano = a and nomestudio = nome and NOT emcores) THEN RETURN TRUE; ELSE RETURN FALSE; END IF;

89 Stored Procedures - SQL/PSM Exemplo: Procedimento que calcula a média e variância de um estúdio CREATE PROCEDURE MeanVar ( IN s char[15], OUT mean REAL, OUT variance REAL) DECLARE NotFound FOR SQLSTATE ; DECLARE filmecursor CURSOR FOR select duracao from Filme where nomestudio = s; DECLARE novaduracao INTEGER; DECLARE contafilmes INTEGER; BEGIN SET mean = 0.0; SET variance = 0.0; SET contafilmes = 0; OPEN filmecursor; filmeloop: LOOP FETCH filmecursor INTO novaduracao; IF NotFound THEN LEAVE filmecurdor END IF; SET contafilmes = contafilmes + 1; SET mean = mean + novaduracao; SET variance = variance + novaduracao * novaduracao; END LOOP; SET mean = mean / contafilmes; SET variance = variance/contafilmes - mean * mean; CLOSE filmecursor; END;

90 Stored Procedures - SQL/PSM For-Loops usado para fazer iterator num cursor FOR <nome laço> AS <nome cursor> CURSOR FOR <query> DO <comandos> END FOR; Veja exemplo no próximo slide! - WHILE <condição> DO <comandos> END WHILE; - REPEAT <comandos> UNTIL <condição> END REPEAT;

91 Stored Procedures - SQL/PSM Exemplo: Mesmo procedimento de média e variância de estúdios, usando FOR-Loops CREATE PROCEDURE MeanVar ( IN s char[15], OUT mean REAL, OUT variance REAL) DECLARE contafilmes INTEGER; BEGIN SET mean = 0.0; SET variance = 0.0; SET contafilmes = 0; FOR filmeloop AS filmecursor CURSOR FOR select duracao from Filme where nomestudio = s; DO SET contafilmes = contafilmes + 1; SET mean = mean + novaduracao; SET variance = variance + novaduracao * novaduracao; END FOR; SET mean = mean / contafilmes; SET variance = variance/contafilmes - mean * mean; END; OBS.Veja que não é necessário OPEN, FETCH e CLOSE do cursor

92 Stored Procedures - SQL/PSM Exceções em PSM: É possível testar o SQLSTATE para verificar a ocorrência de erros e tomar uma decisão, quando erros ocorram. Isto é feito através do EXCEPTION HANDLER que é associado a blocos BEGIN END (o handler aparece dentro do bloco) Os componentes do handler são: 1) Lista de exceções a serem tratadas 2) Código a ser executado quando exceção ocorrer 3) Indicação para onde ir depois que o handler concluir SINTAXE: DECLARE <onde ir> HANDLER FOR <condições> <comando> As escolhas de <onde ir> são: - CONTINUE - EXIT (sai do bloco BEGIN.. END) - UNDO

93 Exemplo de exceções em PSM: Stored Procedures - SQL/PSM CREATE FUNCTION getsalario (mat integer) RETURNS FLOAT DECLARE NotFound CONDITION FOR SQLSTATE ; DECLARE TooMany CONDITION FOR SQLSTATE ; BEGIN DECLARE EXIT HANDLER FOR NotFound, TooMany RETURN NULL; RETURN ( select salario from Empregado where where matricula = mat); END;

94 BIBLIOGRAFIA Elmasri & Navathe Fundamentos de Bancos de Dados Carlos Alberto Heuser Projeto de Banco de Dados Korth e Silberchatz Sistema de Bancos de Dados PROGRAMAÇÃO ORIENTADA A EVENTOS 94

95 BIBLIOGRAFIA Baptista, Cláudio. Banco de Dados II / Capítulo 1: SQL-PSM. Bacharelado em Ciência da Computação UFCG/DSC. HEUSER, C.A. Projeto de Banco de Dados. 6ª Edição. Porto Alegre. Capítulos 2 e 3 Korth, H. F.; Sudarshan, S; Silberschatz, A. Sistema de Banco de Dados. 5a ed. Editora Campus, Capítulo 6 PROGRAMAÇÃO ORIENTADA A EVENTOS 95

96 BIBLIOGRAFIA HEUSER, C.A. Projeto de Banco de Dados. 6ª Edição. Porto Alegre. Capítulos 2 e 3 Korth, H. F.; Sudarshan, S; Silberschatz, A. Sistema de Banco de Dados. 5a ed. Editora Campus, Capítulo 6 Elmasri, R.; Navathe S. B. Sistemas de Banco de Dados. 4 ed. Editora Addison-Wesley Capítulo 3 PROGRAMAÇÃO ORIENTADA A EVENTOS 96

97 BIBLIOGRAFIA Elmasri, R.; Navathe S. B. Sistemas de Banco de Dados. 4 ed. Editora Addison-Wesley Capítulo 3 PROGRAMAÇÃO ORIENTADA A EVENTOS 97

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: marcelosantos@outlook.com BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO

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: marcelosantos@outlook.com AULA 03 SQL (Structure Query Language)

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: marcelosantos@outlook.com BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO

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é mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

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

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL (86); SQL-2 (92); SQL-3 (99) e SQL:2003 não é apenas uma linguagem de consulta! como o nome sugere...

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL- (86); SQL- (9); SQL- (99) não é apenas uma linguagem de consulta! como o nome sugere... Base

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL-1 (86); SQL- (9); SQL- (99) não é apenas uma linguagem de consulta! como o nome sugere... Base

Leia mais

Banco de Dados. SQL Structured Query Language

Banco de Dados. SQL Structured Query Language Banco de Dados SQL Structured Query Language Euclides Arcoverde profearcoverde [at] gmail.com http://sites.google.com/site/euneto/ Introdução à SQL Linguagem comercial para BD relacional Padrão ISO desde

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: ebertonsm@gmail.com 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED

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

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

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

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

SQL. Prof. Msc Denival A. dos Santos

SQL. Prof. Msc Denival A. dos Santos SQL Prof. Msc Denival A. dos Santos Histórico A versão original foi desenvolvida pela IBM no laboratório de pesquisa de San José; Originalmente chamada de Sequel, foi implementada como parte do projeto

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Marcos André Gonçalves - UFMG Parte 3 Aula

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 fredericoqueiroga@gmail.com https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada

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

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

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

Objetos Persistentes. Objetos Persistentes: são objetos que requerem armazenamento persistente.

Objetos Persistentes. Objetos Persistentes: são objetos que requerem armazenamento persistente. Banco de Dados Objetos Persistentes ì Objetos Persistentes: são objetos que requerem armazenamento persistente. Exemplo: Instâncias da classe Descrição Produto devem ser armazenadas em uma base de dados.

Leia mais

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Oracle Database 10g: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer

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 camila.barioni@facom.ufu.br Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...

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

mod._1_teoria_sistemas de bancos de dados.doc

mod._1_teoria_sistemas de bancos de dados.doc SISTEMAS DE BANCOS DE DADOS Os Sistemas de Bancos de Dados apareceram para acabar com os problemas e desvantagens dos tradicionais Sistemas de Processamento de Arquivos, onde os registros permanentes eram

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 BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer SQL BÁSICO Luiz Antônio Vivacqua Corrêa Meyer SQL (Structured Query Language) Início na década de 70 pela IBM com o nome de SEQUEL. Em 1980 o produto mudou seu nome para SQL. American National Standards

Leia mais

Visões ... Esquema Externo n. Esquema Externo 1. Esquema Lógico. Usuários finais/aplicações

Visões ... Esquema Externo n. Esquema Externo 1. Esquema Lógico. Usuários finais/aplicações Visões Visão tabela derivada a partir das tabelas do BD tabela virtual isto é transparente para usuários e aplicações visões são manipuladas como tabelas normais do BD Visões fazem parte dos esquemas externos

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

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL Sistemas de Informação e Bases de Dados 2012/2013 Linguagem SQL Alberto Sardinha Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 1 Sumário Linguagem SQL 2 História Princípio dos

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

Oracle Database: Fundamentos de SQL e PL/SQL

Oracle Database: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0800 891 6502 Oracle Database: Fundamentos de SQL e PL/SQL Duration: 5 Days What you will learn Este curso apresenta os fundamentos de SQL e PL/SQL e as vantagens das linguagens

Leia mais

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g Pedro F. Carvalho OCP Oracle 2008.2 10g SQL Avançado Atualização e Inserção de Dados Comando INSERT Sumário Inclusão simples, inclusão de dados com SELECT Comando UPDATE Alteração simples, alteração usando

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

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

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br

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

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

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013 Linguagem de Manipulação de Dados (DML) Estudo Dirigido A Linguagem SQL Preparação Criar um banco de dados denominado Escola ; Criar a tabela, como especificado abaixo: # RA Numeric(8) Nome Serie Turma

Leia mais

Subsistema de Integridade Semântica

Subsistema de Integridade Semântica Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade

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

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

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

SQL (STRUCTUREDQUERY LANGUAGE)

SQL (STRUCTUREDQUERY LANGUAGE) BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SQL (STRUCTUREDQUERY

Leia mais

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka Aula de SQL Comandos DDL André Luiz de Oliveira Eduardo Raul Hruschka E-mail: andre_luiz@icmc.usp.br erh@icmc.usp.br Agenda Instalação do MySQL e Workbench Comandos DDL Data Definition Language Criação

Leia mais

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova Ciência da Computação GBC043 Sistemas de Banco de Dados Programando com SQL s Avisos Vista da segunda prova Data: 03/06 das 13:40 às 15:00h Local: sala 1B137 Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br

Leia mais

BD II (SI 587) Procedimentos Armazenados

BD II (SI 587) Procedimentos Armazenados BD II (SI 587) Procedimentos Armazenados Josenildo Silva jcsilva@ifma.edu.br MOTIVAÇÃO Contexto: Sistemas em 2 camadas Contexto: Sistemas em 3 camadas Problema 1: Alto volume de dados na rede Como reduzir

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

Triggers(Gatilhos) Tiago Alves de Oliveira

Triggers(Gatilhos) Tiago Alves de Oliveira Triggers(Gatilhos) Tiago Alves de Oliveira tiago.alves@uemg.br Triggers (Gatilhos) Um TRIGGER ou gatilho associado a uma tabela, definido para ser disparado, respondendo a um evento em particular; Comandos

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

Laboratório de Banco de Dados. Prof. Luiz Vivacqua. (la.vivacqua@gmail.com) Ementa Conceitos básicos Sistemas de banco de dados Relacional Visão Geral do PostGreSQL Álgebra Relacional Operadores básicos Operadores adicionais A Linguagem de Consulta Estruturada

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

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

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL. Banco de Dados II PL/SQL - Procedures -Cursor - Funções Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa

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

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

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

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

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

Subsistema de Integridade Semântica

Subsistema de Integridade Semântica Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade

Leia mais

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore S Q L Asserções, Visões e Técnicas de Programação Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore Resumo Apresentaremos os seguintes tópicos: - Especificação de restrições genéricas

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 diego.nascimento@ifrn.edu.br 20 de março de 2015 Ementa do Curso 1 Introdução 2 Abordagem Entidade-relacionamento

Leia mais

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

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello Banco de Dados I Linguagem SQL Parte 2 Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello Introdução Como vimos, um SGBD possui duas linguagens: DDL: Linguagem de Definição de Dados. Usada

Leia mais

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi Programando em SQL Triggers, Stored Procedures e funções Objetivo Descrever as funcionalidades de triggers, store procedures e funções; Apresentar vantagens e benefícios; Criação e Gerenciamento de Store

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

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

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha Fundamentos de SQL Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha SQL - Introdução SQL-Structured Query Language (Linguagem de

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

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT 2) Componentes do Select: - DISTINCT - WHERE - AND e OR - ORDER BY 2) Visão Geral - A SQL é dividida em

Leia mais

f. Exemplo: verificar condição de aprovação de alunos

f. Exemplo: verificar condição de aprovação de alunos Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Semana 17 1) Expressões CASE a. Tem a mesma finalidade que nas linguagens

Leia mais

Funções Definidas pelo Usuário

Funções Definidas pelo Usuário BD II (SI 587) Funções Definidas pelo Usuário Prof. Josenildo Silva jcsilva@ifma.edu.br Funções definidas pelo usuário Funções precisam obrigatoriamente retornar um valor Somente aceitam parâmetros do

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

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo. Banco de Dados I Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo DML Data Manipulation Language Parte II Consultas Básicas

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

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução 1 Banco de Dados Prof. Dr. Joel da Silva SQL - Introdução 2 SQL - Introdução SQL-Structured Query Language (Linguagem de Consulta Estruturada) Apesar do QUERY, não é apenas de consulta (inclusão, alteração,...)

Leia mais

SQL (STRUCTUREDQUERY LANGUAGE)

SQL (STRUCTUREDQUERY LANGUAGE) BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SQL (STRUCTUREDQUERY

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

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL IEC Banco de Dados I Aula 11 Técnicas de Programação SQL Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho E- mail: andre@icomp.ufam.edu.br Site: hjp://bdufam.wordpress.com Sumário

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

Revisão Banco de Dados

Revisão Banco de Dados Revisão Banco de Dados Carlos Henrique - Aula 2 Descoberta de Conhecimento e Mineração de Dados Tópicos Abordados Conceitos Básicos Características Arquitetura Lógica Usuários Finais Modelo E/R Linguagens

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

FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS. Prof. Erinaldo Sanches Nascimento

FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS. Prof. Erinaldo Sanches Nascimento FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre o banco de dados. Especificar regras

Leia mais

edsoncs@gmail.com www.linkedin.com/in/edsonhu Agenda Banco de Dados Relacional Modelo Descritivo Modelo Conceitual Modelo Lógico Arquitetura Cliente/Servidor Componentes SQL Server Management Studio (SSMS)

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

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL-1 (86); SQL-2 (92); SQL-3 (99) não é apenas uma linguagem de consulta! como o nome sugere... Base

Leia mais

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos Bases de Dados Funções e procedimentos Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção de

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

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 Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição 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 Ingress SQL

Leia mais

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Linguagem SQL Restrições, Triggers e Views

Linguagem SQL Restrições, Triggers e Views FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação Linguagem SQL Restrições, Triggers e Views Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre

Leia mais

GBC043 Sistemas de Banco de Dados

GBC043 Sistemas de Banco de Dados Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 Avisos Vista da prova 1 com

Leia mais

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

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação SQL Básica DML Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 22 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 1 / 16 1 Introdução 2 SQL DML INSERT SELECT UPDATE

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

Discussão exercício aula 18. SQL Linguagem de Manipulação de Dados. Discussão exercício aula 18. Discussão exercício aula 18 SQL.

Discussão exercício aula 18. SQL Linguagem de Manipulação de Dados. Discussão exercício aula 18. Discussão exercício aula 18 SQL. Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Discussão exercício aula 18 Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137

Leia mais

Tabelas. Banco de Dados I MySQL

Tabelas. Banco de Dados I MySQL FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 5º Período Disciplina: Banco de Dados I Prof. Erinaldo Sanches Nascimento Tabelas Banco de Dados I MySQL Linguagem de Definição de

Leia mais