Baixe o app para aproveitar ainda mais
Prévia do material em texto
GATILHOS: função do banco de dados que funciona como uma função que é disparada mediante uma ação. Essa ação pode ser uma inserção, exclusão, atualização de dados da tabela, etc. EX: CREATE TRIGGER quantidade_vendas ON vendas FOR INSERT AS BEGIN UPDATE caixa SET saldo_dia = saldo_inicio-saldo_final END GO RESTRIÇÃO DE INTEGRIDADE: exemplo de restrição de domínio CREATE TABLE funcionário (matrícula INTEGER not null, nome VARCHAR(30) not null, idade INTEGER, endereço VARCHAR (35) SQL: linguagem padrão do SGBD e é dividido em subconjuntos: DDL, DML, DCL, DTL,DQL. DDL: linguagem de definição de dados, serve para definir a estrutura de dados e tabelas na linguagem SQL. Exemplos de comandos DDL: create/alter/drop, etc. DML: Linguagem de Manipulação de Dados, Utilizados para o gerenciamento de dados dentro de objetos do banco. EX: INSERT,UPDATE,DELETE,LOCK TABLE DQL: Linguagem de Consulta de Dados.Utilizado para consultas dos dados. EX: SELECT UNION: combinar o resultado de um ou mais códigos com o operador SELECT; Cada tabela com o UNION deve ter o mesmo número de colunas; Devem também ter o mesmo tipo de dado. INTERSECT: elimina primeiro as linhas duplicadas nos dois selects; Retorna qualquer valor distinto retornado pela consulta no lado esquerdo e no lado direito do operador. DISTINCT: retornar somente valores distintos (diferentes); Dentro de uma tabela, uma coluna algumas vezes contém vário valores duplicados e algumas vezes você só necessita listar valores diferentes. SELECT DISTINCT nmcliente, nmlivro, datacompra FROM cliente, livro, clientecompra WHERE livro.cdlivro=clientecompra.cdlivro AND date_part('month',cliente.dtcliente)=date_part('month', clientecompra.datacompra) AND date_part('day',cliente.dtcliente)=date_part('day', clientecompra.datacompra) AVG: calcular a média de números de uma coluna; Localiza os números de uma coluna em uma tabela, resultando a média de todos esses valores e o retornando no programa; Com o DISTINCT o comando AVG realiza a função sem considerar valores duplicados, assim somente valores exclusivos serão somados. IN: consultar valores de uma tabela, filtrando os mesmos, de acordo com os valores inseridos no operador; irá apresentar todos os dados presentes das colunas especificadas pelo programador. SELECT cdcliente, nmcliente FROM cliente WHERE endcliente IN (SELECT endlivraria FROM livraria) COUNT: Quando solicitado, retorna ao número de valores de uma coluna; Função de informar o número de registros que uma coluna possui. SELECT COUNT(cdcliente) FROM cliente + SELECT COUNT(vltotalcompra) FROM clientecompra WHERE cdcliente=2 SUM: Realiza a somatória de todos os valores dos dados presentes na coluna informada. SELECT SUM(vltotalcompra) FROM clientecompra + SELECT cdcliente, nmcliente, cdlivro, nmlivro FROM cliente, livro WHERE cdlivro IN (SELECT cdlivro FROM clientecompra WHERE cliente.cdcliente=clientecompra.cdcliente) INNER JOIN: comparar os dados de colunas vindas de tabelas associadas; Por meio dela, os registros de duas tabelas são utilizados para que sejam gerados os dados relacionados de ambas as tabelas. Podem-se utilizar as cláusulas WHERE e FROM para especificar esse tipo de associação. Retornarão somente as linhas que sejam comuns nas duas tabelas especificadas, de acordo com a ligação feita com o comando ON. SELECT nmcliente, endcliente FROM cliente INNER JOIN clientecompra ON cliente.cdcliente=clientecompra.cdcliente GROUP BY cliente.cdcliente RIGHT JOIN: Retorna os dados encontrados na tabela à direita de JOIN; Caso não existam dados associados entre as tabelas à esquerda e à direita da clausula, retornará valores nulos. SELECT cliente.nmcliente, clientecompra.cdlivro FROM cliente /*tabela da esquerda (LEFT)*/ RIGHT JOIN clientecompra/*tabela da direita (RIGHT)*/ ON cliente.cdcliente=clientecompra.cdcliente LEFT JOIN: Obtém não somente os dados relacionados de duas tabelas, mas também aqueles que não relacionados encontrados na tabela à esquerda da cláusula JOIN; Se dados relacionados entre as tabelas à esquerda e a direita da clausula não forem encontrados, os valores resultados de todas as colunas da seleção da tabela à direita serão retornados nulos. SELECT cliente.nmcliente, clientecompra.cdlivro FROM cliente /*tabela da esquerda (LEFT)*/ LEFT JOIN clientecompra /*tabela da direita (RIGHT)*/ ON cliente.cdcliente=clientecompra.cdcliente 1) retorne o nome do material que esteja em uma ordem de compra item: SELECT damaterial FROM material INNER JOIN ordemcompraitem ON material.cdmaterial=ordemcompraitem.cdmaterial 2) retorne o nome do fornecedor, vltotalordem cujo fornecedor se encontre em alguma ordem de compra: SELECT nmfornecedir, vltotaordm FROM ordem INNER JOIN fornecedor ON ordem.cdfornecedor=fornecedor.cdfornecedor 3)retorne o endereço do fornecedor e o código da ordem de compra cujo fornecedor se encontre em alguma ordem de compra: SELECT endfornecedor, cdordemcompra FROM ordem INNER JOIN fornecedor ON ordem, cdfornecedor=fornecedor.cdfornecedor 4)retorne a quantidade comprada e nome do material cujo material se encontre em alguma ordem de compra: SELECT qtcomprada, damaterial FROM material INNER JOIN ordemcompraitem ON material, cdmaterial=ordemcompraitem.cdmaterial aula 26/10 create table tbl_permanente (id_perm int Primary Key, nome_perm text); create temporary table tbl_temporaria (id_temp int Primary Key, nome_tep text); create view vis_permanente_temporaria as select id_perm, nome_perm, nome_temp from tbl_permanente INNER JOIN tbl_temporaria on (id_perm=id_temp); INSERT INTO tbl_permanente values (1,'nomeperm1''); INSERT INTO tbl_permanente values (2,'nomeperm2''); INSERT INTO tbl_permanente values (1,'nometemp1''); INSERT INTO tbl_permanente values (2,'nometemp2''); Select * from vis_permanente_temporaria ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Create table emp(codigo serial Primary Key, nome varchar NOT NULL, salario integer); Create table emp_audit(usuario varchar NOT NULL, data timestamp NOT NULL, id integer NOT NULL, coluna text NOT NULL, valor_antigo text NOT NULL, valor_novo text NOT NULL); Create or replace function processa_emp_audit () returns trigger AS $emp_audit$ BEGIN IF (NEW.codigo <> OLD.codigo) then RAISE EXCEPTION 'não é permitido atualziar o campo código'; END IF; END; $emp_auditi$ language plpgsel; Create trigger emp_audit AFTER UPDATE ON emp FOR EACH ROW EXECUTE_PROCEDURE processa_emp_audit(); Select * from emp insert into emp_values (2,'12/12/1990') Update emp set codigo=5 where codigo=2 VIEW: observação de dados de uma ou mais tabelas (entidades); Tabela virtual; Simplificam a especificação de consultas, (utilizadas para mecanismo de segurança e autorização); para evitar que outras pessoas que acessam seu banco vejam o que você não deseja que elas tenham acesso. Economia de tempo e acesso à informações com velocidade, além de maior organização e simplificação. CREATE TABLE Livro ( cdlivro INT NOT NULL, vlunitario INT, nmlivro TEXT, cdeditora INT, nmeditora TEXT, endeditora TEXT PRIMARY KEY (cdlivro) ) + CREATE VIEW ViewLivro AS SELECT cdlivro, nmlivro, vlunitario FROM livro WHERE livro.vlunitario> (SELECT AVG(vlunitario) FROM livro)
Compartilhar