Banco de Dados - SQL. Profa. Flávia Cristina Bernardini

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

Download "Banco de Dados - SQL. Profa. Flávia Cristina Bernardini"

Transcrição

1 Banco de Dados - SQL Profa. Flávia Cristina Bernardini

2 O que é? SQL = DDL + DML Structured Query Language = Data Definition Language + Data Manipulation Language comandos para definir, modificar e remover relações (tabelas), além de criar e remover índices. Implementa operadores de AR + as seguintes operações: Inserção, Atualização e Remoção CRUD (CReate, Update, Delete)

3 Composição da SQL DML embutida pode ser utilizada a partir de linguagens de programação de propósito geral Definição de visões SQL DDL inclui comandos para a criação e a remoção de visões Restrições de integridade SQL DDL possui comandos para a especificação de restrições de integridade

4 Composição da SQL Autorização SQL DDL inclui comandos para a especificação de direitos de acesso a relações e visões Gerenciamento de transações introduz comandos para a especificação do início e do fim das transações Recuperação de falhas introduz comandos para utilização do arquivo de log

5 Versões Ansi SQL SQL 92 (SQL 2) SQL 99 (SQL 3) Características Objeto-Relacionais e outras capacidades Será o alvo do nosso estudo

6 SQL DDL CREATE DATABASE SCHEMA cria um esquema de BD relacional DROP DATABASE SCHEMA remove um esquema de BD relacional

7 CREATE DATABASE Cria um esquema de BD relacional agrupa tabelas/comandos que pertencem à aplicação identifica o proprietário do esquema esquema inicial não possui tabelas/dados CREATE {DATABASE SCHEMA} nome [USER `username` [PASSWORD `password`] ]... ;

8 DROP DATABASE Remove um esquema de BD relacional tabelas/dados índices arquivos de log Usuários autorizados proprietário do banco de dados DBA

9 DROP DATABASE CASCADE remove um esquema de BD, incluindo todas as suas tabelas e os seus outros elementos RESTRICT remove um esquema de BD somente se não existirem elementos definidos para esse esquema

10 SQL DDL CREATE TABLE cria uma nova tabela (relação) no BD nova tabela não possui dados DROP TABLE remove uma tabela e sua instância do BD ALTER TABLE altera a estrutura de uma tabela já existente no BD

11 CREATE TABLE Cria uma nova tabela (relação) Cria os atributos da nova tabela, com nome do atributo: Ai (1 <= i <= n) tipo de dado (domínio do atributo): Di restrições que atuam no atributo: Ri CREATE TABLE nome_tabela ( A1 D1 R1, A2 D2 R2,... An Dn Rn ) ;

12 Exemplos de Tipos de Dados Numéricos Integer, float,... Hora/Data Date (YYYY-MM-DD), time (HH-MM-SS),... Strings Etc.

13 Restrições de Integridade Valor nulo representado por NULL membro de todos os domínios Restrição NOT NULL especificada quando NULL não é permitido proíbe que o atributo receba valor nulo

14 Restrições de Integridade Cláusula PRIMARY KEY identifica os atributos que formam a chave primária NOT NULL sintaxe PRIMARY KEY (atributo1, atributo2,..., atributox) Cláusula UNIQUE não permite valores duplicados para um atributo

15 Restrições de Integridade Cláusula DEFAULT associa um valor default para um atributo, caso nenhum outro valor seja especificado Cláusula CHECK especifica um predicado que precisa ser satisfeito por todas as tuplas de uma relação exemplos saldo int CHECK (saldo >= 0) nível char(15) CHECK (nível IN

16 Restrições de Integridade Integridade referencial dependência existente entre a chave estrangeira de uma relação R1 (referência) e a chave primária da relação referenciada R2 (relação referida). problemas atualização ou exclusão de elementos da chave primária sem fazer um ajuste coordenado nas chaves estrangeiras: Excluir tupla de Empregado que é gerente de Departamento. inclusão ou alteração de valores não nulos na chave estrangeira de R1 que não existam na chave primária de R2

17 Restrições de Integridade Cláusula FOREIGN KEY características elimina a possibilidade de violação da integridade referencial reflete nas chaves estrangeiras todas as alterações na chave primária sintaxe FOREIGN KEY (atributos) REFERENCES nome_relação (atributos) [ON UPDATE [NO ACTION CASCADE SET NULL SET DEFAULT]] [ON DELETE [NO ACTION CASCADE SET NULL SET DEFAULT]]

18 DROP TABLE Remove uma tabela existente do BD dados índices, etc. Usuários autorizados proprietário do banco de dados DBA DROP TABLE nome_tabela ;

19 ALTER TABLE Altera o esquema de uma tabela do BD adiciona remove altera colunas ou restrições de integridade ALTER TABLE nome_tabela;

20 Exemplos: ALTER TABLE inclui novas colunas na tabela ALTER TABLE nome_tabela ADD (A1 D1 R1),... ADD (An Dn Rn) elimina uma coluna já existente da tabela ALTER TABLE nome_tabela DROP A1

21 Exemplos: ALTER TABLE modifica o nome de uma coluna existente de A1 para A2 ALTER TABLE nome_tabela ALTER [COLUMN] A1 TO A2 modifica o tipo de dado de uma coluna ALTER TABLE nome_tabela ALTER [COLUMN] A1 TYPE INT

22 SQL DDL CREATE DOMAIN cria um domínio para um tipo de dados DROP DOMAIN remove um domínio existente do BD ALTER DOMAIN altera a definição de domínio

23 CREATE DOMAIN Cria um domínio para um tipo de dados restrições de integridade Característica a definição do domínio é global ao BD CREATE DOMAIN nome_domínio [AS] tipo_dado [DEFAULT... ] [NOT NULL] [CHECK...]... ;

24 DROP DOMAIN Remove um domínio existente do BD falha caso o domínio esteja definindo o tipo de dado de alguma coluna Usuários autorizados proprietário do banco de dados DBA DROP DOMAIN nome_domínio ;

25 ALTER DOMAIN Altera um domínio existente do BD remove ou define restrições de integridade ALTER DOMAIN nome_domínio... ;

26 Exemplo

27 Exemplo... CREATE DATABASE loja_vinhos; CREATE TABLE região ( região_id int NOT NULL, nome_região varchar(100) NOT NULL, mapa_região blob, descrição_região blob, PRIMARY KEY (região_id), ); * BLOB: Binary Long Objects (para armazenar áudio e vídeo)

28 Exemplo... CREATE TABLE vinícola ( vinícola_id int NOT NULL, nome_vinícola varchar(100) NOT NULL, descrição_vinícola blob, fone_vinícola varchar(15), fax_vinícola varchar(15), região_id int DEFAULT 0 NOT NULL, PRIMARY KEY (vinícola_id), FOREIGN KEY (região_id) REFERENCES região (região_id) ON UPDATE SET DEFAULT, ON DELETE SET DEFAULT, );

29 Exemplo CREATE TABLE vinho ( vinho_id int NOT NULL, nome_vinho varchar(50) DEFAULT NOT NULL, tipo_vinho varchar(10) DEFAULT NOT NULL, ano_vinho int DEFAULT 0 NOT NULL, descrição_vinho blob, vinícola_id int DEFAULT 0 NOT NULL, PRIMARY KEY (vinho_id), FOREIGN KEY (vinícola_id) REFERENCES vinícola (vinícola_id), ON UPDATE CASCADE, ON DELETE CASCADE, );

30 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 FROM... WHERE... remove dados de tabelas já existentes UPDATE... SET... WHERE... altera dados específicos de uma tabela

31 SELECT SELECT <lista de atributos> FROM <lista de tabelas> [ WHERE predicado/condição ] [ GROUP BY <atributos de agrupamento> ] [ HAVING <condição para agrupamento> ] [ ORDER BY <lista de atributos> ] ;

32 SELECT Cláusula SELECT (lista de atributos) lista os atributos cujos valores serão recuperados. Cláusula FROM (lista de tabelas) especifica as relações necessárias para o processamento da consulta. Cláusula WHERE (condição) especifica as condições para a seleção das tuplas a serem recuperadas. pode ser omitida.

33 Exemplo 1: SELECT datanasc, endereco FROM Empregado WHERE Pnome=Flavia AND Unome=Bernardini

34 SELECT Resultado de uma consulta ordem de apresentação dos atributos ordem dos atributos na cláusula SELECT ordem de apresentação dos dados (parte das tuplas) ordem ascendente ou descendente de acordo com a cláusula ORDER BY sem ordenação duas ou mais tuplas podem possuir valores idênticos de atributos para eliminação de tuplas duplicadas: SELECT DISTINCT

35 Exemplo 2: Select model From PC Where speed > 1000 AND rd = 16xDVD ; Select model: atributos selecionados (π) From PC: tabelas afetadas Where...: condição de filtro (σ), que é opcional Expressão em AR: π model (σ speed>1000 AND RD= 16xDVD (PC))

36 Projeção Lista de atributos do select Podem ser renomeados (ρ em AR) Podem conter expressões e constantes Curinga * lista todos os atributos Pode conter o modificador DISTINCT Select DISTINCT ram AS memória, price*1.2, reais AS moeda From... Where...;

37 Seleção Conteúdo do where Pode conter qualquer expressão condicional usual de Ling s de Programação Select * From PC Where speed > 100 AND hd <> 40 AND NOT (ram < 512);

38 Cláusula WHERE Operadores de comparação igual a = diferente de <> maior que > maior ou igual a menor que < menor ou igual a entre dois valores BETWEEN... AND... de cadeias de caracteres >= <= LIKE ou NOT LIKE

39 Strings Representadas entre Podem ter tamanho fixo ou variável (CHAR e VARCHAR) Podem ser comparadas lexicograficamente (=, <, >,...) Operador LIKE: compara strings baseadas num padrão: Select model From Printer Where type LIKE las OR type LIKE %jet% ;

40 Strings Operadores de comparação de cadeias de caracteres % (porcentagem): substitui qualquer string _ (underscore): substitui qualquer caractere Característica operadores sensíveis ao caso letras maiúsculas são consideradas diferentes de letras minúsculas

41 Exemplo

42 Cláusula WHERE Exemplos WHERE nome_região LIKE Mar% qualquer string que se inicie com Mar WHERE nome_região LIKE Mar_ qualquer string de 4 caracteres que se inicie com Mar

43 Exemplos SELECT * FROM região; SELECT região_id, nome_região FROM região WHERE nome_região LIKE M% AND região_id >= 3 AND mapa_região IS NOT NULL;

44 Data e Hora Implementações de SQL usualmente suportam tipos específicos para data (DATE) e hora (TIME) Exemplo: e 20:05:00.5 Timestamp é um tipo comum que combina data e hora Exemplo: :05:00

45 Null Valor especial em SQL Entretanto, não há como utilizá-los explicitamente em expressões SQL (um teste, por exemplo) Em clásulas Where, precisamos nos preparar para a ocorrência de valores nulos: Operações aritméticas envolvendo NULL retornam NULL Operações de comparação envolvendo NULL retornam UNKNOWN (terceiro valor-verdade)

46 Unknown Terceiro valor-verdade Pode ser interpretado como ½, com TRUE=1 e FALSE=0 Fórmulas A AND B = MIN (A, B) A OR B = MAX (A, B) NOT A = 1 A Caso atípico: Select * From Laptop Where screen > 14.0 OR screen <= 14.0;

47 Operações sobre conjuntos SQL UNION INTERSECT MINUS Álgebra Relacional União Intersecção Diferença Observações as relações participantes das operações precisam ser compatíveis.

48 Exemplo Liste os anos de fabricação dos vinhos tintos e brancos: SELECT ano_vinho FROM vinho WHERE tipo_vinho = tinto UNION ALL SELECT ano_vinho FROM vinho WHERE tipo_vinho = branco ; Modificador ALL considera duplicatas

49 Exemplo (Select model From Product Where maker = A ) UNION (Select model From PC Where price < 1000)

50 Junção Usar SELECT e WHERE especificam atributos com mesmo nome usando nomes de tabelas e atributos (nome_tabela.nome_atributo) Cláusula FROM possui mais do que uma tabela Cláusula WHERE inclui as condições de junção

51 Exemplo Select maker From Product, Printer Where Product.model = Printer.model AND Printer.type = laser ; From Product, Printer realiza o produto cartesiano entre as 2 tabelas

52 Exemplo SELECT nome_vinícola, nome_região FROM vinícola, região WHERE vinícola.região_id = região.região_id; SELECT nome_vinícola, nome_região, nome_vinho FROM vinícola, região, vinho WHERE vinícola.região_id = região.região_id AND vinho.vinícola_id = vinícola.vinícola_id;

53 Variáveis de Tupla Imagine uma consulta que retorne os modelos de PC s com a mesma quantidade de hd Select p1.model, p2.model From PC p1, PC p2 Where p1.hd = p2.hd AND p1.model < p2.model;

54 Sub-consultas Aninhadas Produzindo um valor atômico: Select maker From Product Where type = printer AND Product.model = (Select model From Printer Where price < 500)

55 Condições envolvendo Relações (1/2) Operadores existentes: EXISTS, IN, ALL, ANY e combinações com NOT Select maker From Product Where type = printer AND Product.model IN (Select model From Printer Where price < 500)

56 Condições envolvendo Relações (2/2) Significado dos operadores: EXISTS R: TRUE se R <> {} s IN R: TRUE se s R s > ALL R: TRUE se s > t, t R s > ANY R: TRUE se s > t, t R

57 O que esta consulta retorna? Select p1.maker From Product p1 Where p1.type = printer AND EXISTS ( Select * From Product p2 Where p2.model = p1.model AND p2.maker <> p1.maker );

58 E esta? Select l.model From Laptop l Where l.price < ANY ( Select p.price From PC p);

59 Sub-consultas Relacionadas Consultas que obrigam a avaliação de consultas aninhadas diversas vezes Select model From Laptop l Where price <= ANY (Select price From PC Where l.hd >= hd);

60 Sub-consultas em Cláusulas From Select distinct p1.maker From Product p1, ( Select * From Printer Where color = true ) p2 Where p1.model = p2.model;

61 Expressões de Junção SQL (Joins) Sejam R e S relações (tabelas) R cross join S; (produto cartesiano) R join S on CONDIÇÃO; (junção theta) R natural join S; (junção natural) R natural {full left right} outer join (outer join)

62 Cláusula ORDER BY Ordena as tuplas resultantes de uma consulta asc: ordem ascendente (padrão) desc: ordem descendente Ordenação pode ser especificada em vários atributos Ordenação referente ao primeiro atributo é prioritária. Se houver valores repetidos, então é utilizada a ordenação referente ao segundo atributo, e assim por diante

63 Exemplo Liste os dados das vinícolas e suas regiões. Ordene o resultado pela região da vinícola em ordem ascendente. SELECT * FROM vinícola, região WHERE vinícola.região_id = região.região_id ORDER BY nome_região asc

64 Agregação Operadores SUM, AVG, MIN, MAX e COUNT Tipicamente utilizados com expressões escalares com uma coluna numérica Select AVG (price) From Laptop; Observações: Exceção é o COUNT (*), que conta o número de tuplas de uma relação DISTINCT: não considera valores duplicados ALL: inclui valores duplicados Características recebem uma coleção de valores como entrada; retornam um único valor.

65 Funções de Agregação vinho (vinho_id, nome_vinho, tipo_vinho, preço, vinho_id vinícola_id) nome_vinho tipo_vinho preço vinícola_id 10 Sta Carolina Merlot 35, Sta Carolina Carménere 36, Sta Helena Cabernet Sauvignon 15 Sta Helena Cabernet Blanc 27 Casillero del Diablo 48 Casillero del Diablo Cabernet Ssuvignon 50, , ,00 3 Carménere 98, Reservado Carménere 60, Reservado Cabernet Sauvignon 62,00 3

66 Exemplos Quantos vinhos existem na relação vinho? Quantos tipos de vinho diferentes existem na relação vinho? Qual a média dos preços? Qual a soma dos preços? Qual o preço mais baixo? Qual o preço mais alto?

67 Agrupamento - Cláusula GROUP BY Funcionalidade: permite aplicar uma função de agregação não somente a um conjunto de tuplas, mas também a um grupo de um conjunto de tuplas; Grupo de um conjunto de tuplas: conjunto de tuplas que possuem o mesmo valor para os atributos de agrupamento;

68 Exemplo Qual o preço mais alto e a média dos preços por tipo de vinho? SELECT tipo_vinho, MAX (preço), AVG (preço) FROM vinho GROUP BY tipo_vinho

69 Exemplo Select type, COUNT(DISTINCT maker) From Product Group By type;

70 Agrupamento Para a consulta anterior: Select type, COUNT(DISTINCT maker) From Product Group By type; Como reformulá-la para retornar produtos diferentes de PC?

71 Agrupamento Select type, COUNT(DISTINCT maker) From Product Where type <> PC Group By type;

72 Agrupamento E para retornar apenas produtos com número >= 3 fabricantes?

73 Cláusula HAVING Funcionalidade: especificar uma condição de seleção para grupos; Resposta: recupera os valores para as funções somente para aqueles grupos que satisfazem à condição imposta na cláusula HAVING;

74 Exemplo Qual o preço mais alto e a média dos preços por tipo de vinho, para médias de preços superiores a R$200,00 SELECT tipo_vinho, MAX (preço), AVG (preço) FROM vinho GROUP BY tipo_vinho HAVING AVG (preço) > 200

75 Exemplo Select type, COUNT(DISTINCT maker) From Product Group By type HAVING COUNT(DISTINCT maker) >= 3;

76 Atualização em Bancos de Dados Inserção, Remoção e Alteração Inserção: INSERT INTO R (A 1,...,A n ) VALUES (v 1,...,v n ); Onde: R: Relação A k : Atributos v k : valores INSERT INTO R VALUES (v 1,...,v n ); Usado quando há valores v k para todos os atributos de R Ordem dos atributos precisa ser mantida

77 INSERT INSERT INTO nome_tabela SELECT... FROM... WHERE... ; Tuplas resultantes da cláusula SELECT serão inseridas na tabela nome_tabela

78 Atualização em Bancos de Dados Remoção DELETE FROM R WHERE <condição>; Atualização UPDATE R SET <atribuições> WHERE <condição>; Exemplo: UPDATE Laptop SET price = price * 1.1 WHERE speed >= 600;

79 DELETE Remove tuplas inteiras Opera apenas em uma relação Tuplas de mais de uma relação a serem removidas: um comando DELETE para cada relação * A remoção de uma tupla de uma relação pode ser propagada para tuplas em outras relações devido às restrições de integridade referencial.

80 Exemplo DELETE FROM vinícola WHERE vinícola_id = 10; remove a tupla referente a vinícola_id = 10; tabela vinho (i.e., se CASCADE foi especificada na cláusula ON DELETE p/ vinícola_id desta tabela) DELETE FROM região remove todos os dados da tabela região

81 UPDATE Opera apenas em uma relação * A atualização da chave primária pode ser propagada para tuplas em outras relações devido às restrições de integridade referencial

82 Exemplos Alterar os anos de produção de vinhos de 2005 para 2003 UPDATE vinho SET ano_vinho = 2003 WHERE ano_vinho = 2005; Suponha o atributo adicional preço na tabela vinho. Aumentar os preços dos vinhos em 10%. UPDATE vinho SET preço = preço * 1.10;

83 Exemplo UPDATE vinícola SET vinícola_id = 10 WHERE vinícola_id = 2; altera o valor de vinícola_id = 10 para vinícola_id = 2 tabela vinícola tabela vinho (i.e., se a opção CASCADE foi especificada na cláusula ON UPDATE do campo vinícola_id desta tabela)

84 Índices São criados baseados em 1 ou + campos São estruturas de dados que tornam mais eficientes as consultas sobre esse atributos CREATE INDEX velocindex ON PC(speed); DROP INDEX velocindex; 2 fatores a se considerar: Tornam eficientes as consultas que utilizam este atributos Tornam mais custosas as operações de inserção, remoção e atualização

85 Visões São relações abstratas (virtuais) CREATE TABLE cria relações que existem fisicamente, enquanto que CREATE VIEW cria visões, as quais não existem fisicamente e tipicamente expressam o resultado de um consulta Diferentemente do resultado das consultas, visões podem ser consultadas como tabelas (como se existissem fisicamente)

86 Exemplo de Definição e Uso de Visão CREATE VIEW Barganha(modelo, ram, hd, preço) AS SELECT model, ram, hd, price FROM Laptop WHERE price < 1300; SELECT Min(preco) FROM Barganha;

87 Modificação de Visões (Visões Atualizáveis) Nem sempre são possíveis A operação que mais restringe é a inclusão: Esta não pode infringir a integridade do banco (os atributos não citados na inclusão precisam poder admitir NULL ou valores padrão) Por exemplo, se o campo speed da relação Laptop não admitisse NULL Uma tupla inserida numa visão precisa ser inserida na tabela base e constar na visão resultante No exemplo citado, não podemos inserir um laptop com preço >= 1300

88 Modificação de Visões (Visões Atualizáveis) Remoções e atualizações numa visão são traduzidas para operações equivalentes na tabela base: DELETE FROM Barganha WHERE ram < 512; DELETE FROM Laptop WHERE ram < 512 AND price < 1300;

89 Modificação de Visões (Visões Atualizáveis) O comando DROP TABLE remove a tabela base e inutiliza (e eventualmente também remove) as visões baseadas nesta tabela DROP VIEW remove apenas a visão, ou seja, não remove as tuplas da tabela base

90 Restrições (Constraints) Uma forma de definição de elementos ativos em Bancos de Dados Utilizados para garantir integridade do sistema (tanto na visão do modelo relacional quanto na de regras de negócio) Um exemplos de restrições são as chaves primárias e estrangeiras

91 Chave Primária Exemplo: CREATE TABLE PC ( model INTEGER PRIMARY KEY, speed INTEGER,... ); ou CREATE TABLE PC ( model INTEGER, speed INTEGER, PRIMARY KEY (model),...);

92 Campo UNIQUE Além da chave primária, com o modificador UNIQUE podemos garantir também que outros campos tenham valores distintos Diferentemente de chave primária, um campo UNIQUE permite valores NULL CREATE TABLE Printer ( model INTEGER PRIMARY KEY, color BOOLEAN, type VARCHAR(50) UNIQUE,...);

93 Chaves Estrangeiras Possibilitam a associação entre tabelas CREATE TABLE Aluno ( matr INTEGER, nome VARCHAR (100) NOT NULL, cr FLOAT, codcurso INTEGER, PRIMARY KEY (matr), FOREIGN KEY (codcurso) REFERENCES Curso(cod);

94 Manutenção da Integridade Referencial Na realização de modificações sobre tuplas que são referenciadas em outras tabelas (chaves estrangeiras), as seguintes ações podem ser definidas: Rejeição das modificações (operação padrão em BDs) Modificações em cascata (altera também as referências) Modificações gerando NULL (no caso de remoções, é atribuído NULL à referência)

95 Sintaxe de Ações sobre Chaves Estrangeiras CREATE TABLE Aluno ( matr INTEGER, nome VARCHAR (100) NOT NULL, cr FLOAT, codcurso INTEGER, PRIMARY KEY (matr), FOREIGN KEY (codcurso) REFERENCES Curso(cod) ON (DELETE UPDATE) (CASCADE SET NULL REJECT) *; * Sintaxe de expressões regulares: () encapsula termos e é um OU de termos

96 Asserções (Assertions) Uma asserção é uma expressão em SQL de valor booleano que precisa ser verdadeira sempre Formato: CREATE ASSERTION <nome> CHECK <condição>; DROP ASSERTION <nome>; Qualquer modificação que invalide uma asserção será rejeitada

97 Asserções Exemplo CREATE ASSERTION crincorreto CHECK ( NOT EXISTS ( SELECT * FROM Aluno a WHERE a.cr > 0 AND NOT EXISTS ( SELECT * FROM Historico h Where a.mat = h.mat );

98 Gatilhos (Triggers) Um gatilho é uma série de ações que são associadas a eventos num BD, como inserções, atualizações e remoções Regras ECA (Evento Condição Ação) CREATE TRIGGER Atualizar AFTER INSERT ON Historico REFERENCING NEW ROW AS NovaTupla FOR EACH ROW BEGIN UPDATE Aluno a SET cr = (SELECT AVG(nota) FROM Historico WHERE a.mat = NovaTupla.mat) WHERE a.mat = NovaTupla.mat;... END;

99 Gatilhos Opções: AFTER / BEFORE / INSTEAD OF INSERT / DELETE / UPDATE WHEN (condição para disparo do gatilho) BEGIN.. END; (+ de 1 expressão SQL) OLD/NEW ROW AS (Atualização) NEW ROW AS (Inserção) OLD ROW AS (Remoção) FOR EACH ROW / STATEMENT OLD TABLE AS NEW TABLE AS

100 Programação com Banco de Dados 2 alternativas: Codificação utilizando uma biblioteca de acesso ao banco de dados Exemplo: C, C++,... Utilizar os recursos existentes na linguagem (se for o caso) para acesso ao banco de dados Java, PHP,...

101 Procedimentos e Funções Armazenados (Stored Procedures) São módulos (procedimentos ou funções) précompilados e armazenados no SGBD O termo padrão em SQL é PSM (Persistent Stored Modules) Permitem o encapsulamento de definições do esquema de um BD e melhoram o desempenho Dispondo de recursos de linguagem de programação (variáveis, condicionais, repetições, etc), estes módulos podem realizar diversas operações para uma única chamada Estes procedimentos podem conter parâmetros com tipos de SQL e modos de entrada (IN), saída (OUT) e entrada juntamente com saída (INOUT)

102 Stored Procedures Exemplo CREATE PROCEDURE Bonifica ( IN n FLOAT, IN m VARCHAR (20) ) IF n <= 1 ( UPDATE Aluno SET nota = nota + n WHERE mat = m; );

103 Stored Procedures Situações Úteis Se um BD precisa ser chamado em vários aplicativos, estes módulos podem ser armazenados no servidor Do contrário, teríamos instruções SQL repetidas entre estes aplicativos Observe os diagramas abaixo sem e com stored procedures e imagine a modificação do esquema da tabela Aluno

104 Transações São uma unidade lógica de trabalho Necessárias quando se deseja que operações sejam executadas como uma única, de forma indivisível Por exemplo, uma operação de transferência bancária pode ser traduzida como uma operação de débito e outra de crédito Transações se justificam pelo fato de um SGBD ser multiusuário e multitarefa Ou seja, vários processos pode estar executando sobre a mesma base de dados e inconsistências podem ocorrer

105 Transações Outra situação que justifica o uso de transações é na ocorrência de falhas O SGBD garante que, dada uma transação com n operações, ou as n operações são executadas ou nenhuma delas O estado consistente existente antes da execução de uma transação deve existir após a execução desta Com isso, numa falha (disco, quebra no sistema, exceção detectada pela transação, etc), o SGBD deve ser capaz de se recuperar da situação errônea

106 Transações Pseudo-código BEGIN TRANSACTION; UPDATE ACC 123 { Saldo := Saldo - $100 }; IF ocorrer_algum_erro GO TO UNDO; END IF; UPDATE ACC 456 { Saldo := Saldo + $100 }; IF ocorrer_algum_erro GO TO UNDO; END IF; COMMIT; GO TO FINISH; UNDO: ROLLBACK;

107 Transações Pontos Importantes COMMIT/ROLLBACK implícito Tratamento de mensagens Log de recuperação Atomicidade de instruções A execução de um programa é uma seqüência de transações Transações aninhadas Corretude Múltiplas associações

108 Transações

109 Transações Tipos de transações Read-only Writable Propriedades de transações (ACID) Atomicidade: todas operações ou nenhuma Correção: somente geram estados válidos Isolamento: atualizações percebidas entre diferentes transações somente após o commit Durabilidade: Atualizações depois do commit persistem após possível queda do sistema

110 Transações Recuperação do sistema Buffers de BDs BDs físicos Checkpoints

111 Consultas vistas anteriormente select th.nome, tm.nome from TabHomem as th, TabMulher as tm where th.mulher = tm.id; Retornar os nomes dos casais

112 Consultas vistas anteriormente select distinct tm.cidade from TabHomem as th, TabMulher as tm where th.mulher = tm.id AND tm.nome like %Brunet% order by tm.cidade desc; Retornar os nomes das cidades em ordem decrescente que possuem casais cuja mulher tem Brunet no nome

113 Consultas Complexas Teste de Campos Nulos select nome from TabHomem as t where t.mulher is NULL; Retornar os nomes dos homens que não são casados

114 Consultas Complexas Teste de Pertinência select tm.nome, tm.tel from TabMulher as tm where tm.cidade in ( Petropolis, Teresopolis, Friburgo ); Retornar os nomes e telefones das mulheres que moram na região serrrana

115 Consultas Complexas Consultas Aninhadas select nome from TabHomem where nome in ( select th.nome from TabHomem as th, TabMulher as tm where th.mulher = tm.id AND th.cidade = tm.cidade ); Retornar os nomes dos homens que são casados e moram na mesma cidade que a sua mulher

116 Consultas Complexas Consultas Aninhadas select t.nome, t.tel from TabHomem as t where (t.nome, t.tel) in ( select th.nome, th.tel from TabHomem as th, TabMulher as tm where th.mulher = tm.id AND th.cidade = tm.cidade ); Retornar os nomes e telefones dos homens que são casados e moram na mesma cidade que a sua mulher

117 Consultas Complexas Teste de Existência select th.nome, th.tel from TabHomem as th where exists ( select * from TabMulher as tm where th.cidade = tm.cidade ); Retornar os nomes e telefones dos homens moram na mesma cidade que alguma mulher

118 Consultas Complexas Teste de Existência select th.nome, th.tel from TabHomem as th where th.mulher is NULL AND not exists ( select * from TabMulher as tm where th.cidade = tm.cidade ); Retornar os nomes e telefones dos homens que são solteiros e moram numa cidade que não tem mulheres

119 Consultas Complexas Comparações Avançadas select tm.nome, tm.tel from TabMulher as tm where tm.salario > ALL ( select th.salario from TabHomem as th ); Retornar os nomes e telefones das mulheres que possuem salários maiores que todos os homens (mulheres independentes)

120 Consultas Complexas Variações de Pertinência select tm.nome, tm.tel from TabMulher as tm where not exists ( ( select th.id from TabHomem as th where th.cidade = tm.cidade ) except ( select th.id from TabHomem as th where th.mulher is not Null ) ); Retornar os nomes e telefones das mulheres que moram numa cidade que não possua homens solteiros

121 Consultas Complexas Variações de Consultas Aninhadas select count(*) from TabMulher as tm where tm.salario > ( select avg(th.salario) from TabHomem as th ); Retornar a quantidade mulheres que possuem salário maior que a média masculina

122 Consultas Complexas Agrupamento select tm.cidade, count(*) from TabMulher as tm group by tm.cidade; Retornar a cidade e a respectiva quantidade de mulheres

123 Consultas Complexas Variações com Agrupamento select tm.cidade, count(*) from TabMulher as tm where tm.salario > ( select avg(th.salario) from TabHomem as th ) group by tm.cidade; Retornar a cidade e a quantidade das mulheres que possuem salário maior que a média masculina

124 Junção de Tabelas select tm.nome, tm.tel from (TabMulher tm join TabHomem th on id=mulher) where tm.cidade= Petrópolis ; Retornar nome e telefone das mulheres casadas que moram em Petrópolis

125 Junção de Tabelas Natural Join select tm.nome, tm.tel from TabMulher tm natural join (TabHomem as th (idh, nome, tel, end, id)) where tm.cidade= Petrópolis ; Retornar nome e telefone das mulheres casadas que moram em Petrópolis (renomeia a tabela TabHomem para que a junção natural possa ser executada)

126 Junção de Tabelas Inner Join select tm.nome, tm.tel from TabMulher as tm, TabHomem as th where tm.id=th.mulher; Retornar nome e telefone das mulheres casadas (Somente retorna a lista das casadas)

127 Junção de Tabelas Outer Join select tm.nome, tm.tel from TabMulher as tm left outer join TabHomem as th on tm.id=th.mulher; Retornar nome e telefone das mulheres casadas (Forçar retorno da lista de todas as mulheres)

128 Exercícios Retornar uma tabela que contenha o nome do professor, ano e a quantidade de disciplinas ministradas neste ano. Retornar uma tabela que contenha o nome do professor, ano, quantidade de alunos que cursaram as disciplinas e a quantidade de disciplinas ministradas neste ano.

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

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

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

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. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

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

Leia mais

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

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados SQL Linguagem de Definição de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala 937 2 quadrimestre

Leia mais

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

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

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

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM desenvolveu a SQL como forma de interface para

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

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

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Robson Fidalgo SQL SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta,

Leia mais

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

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação Enfoques de SQL Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Valeria Times Bernadette Loscio Linguagem interativa de consulta (ad-hoc): usuários podem definir consultas independente

Leia mais

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language) SQL BÁSICO Prof. Suelane Garcia Introdução 2 Linguagem SQL (Structured Query Language) Linguagem de Consulta Estruturada padrão para acesso a Banco de Dados. Usada em inúmeros Sistemas de Gerenciamento

Leia mais

BANCO DE DADOS Parte 4

BANCO DE DADOS Parte 4 BANCO DE DADOS Parte 4 A Linguagem SQL Introdução Desenvolvida pelo depto de pesquisa da IBM na década de 1970 (System R) Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

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

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

2008.1. A linguagem SQL

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

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

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

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

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

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

Leia mais

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL 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 Language para suas

Leia mais

SQL (Linguagem de Consulta Estruturada)

SQL (Linguagem de Consulta Estruturada) SQL (Linguagem de Consulta Estruturada) M.Sc. Cristiano Mariotti mscmariotti@globo.com Introdução à SQL 1 Visão Geral Introdução Comandos de Definição de Dados Comandos de Manipulação de Dados Introdução

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) Conceitos sobre a versão ANSI da SQL, a sublinguagem de definição de dados (DDL) e a sublinguagem de manipulação de dados (DML) Prof. Flavio Augusto C. Correia 1

Leia mais

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

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

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

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

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

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

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

Reforçando conceitos de SQL Estudo de Caso: Agenciamento de Corridas de Táxis

Reforçando conceitos de SQL Estudo de Caso: Agenciamento de Corridas de Táxis Reforçando conceitos de SQL Estudo de Caso: Agenciamento de s de Táxis 1 Algumas Entidades existentes Estudo de Caso Cliente Agendada Fila Logradouro Zona Motorista Efetivada Táxi 2 Consulta Básica SQL

Leia mais

Comandos DDL. id_modulo = id_m odulo

Comandos DDL. id_modulo = id_m odulo Comandos DDL Estudo de Caso Controle Acadêmico Simplificado Uma escola contém vários cursos, onde cada aluno possui uma matricula num determinado curso. Estes cursos, por sua vez, possuem módulos, aos

Leia mais

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia Bases de Dados 2012/2013 Restrições de Integridade em SQL Helena Galhardas Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 1 1 Sumário Restrições de Integridade (RIs) em SQL Chave

Leia mais

SQL. Banco de Dados I. Componentes de SQL

SQL. Banco de Dados I. Componentes de SQL Banco de Dados I Adrovane Marques Kade 1 1 Curso de Análise e Desenvolvimento de Sistemas Instituto Federal de Educação, Ciência e Tecnologia adrovane.kade@bento.ifrs.edu.br 2011/1 ( Structured Query Language

Leia mais

SQL. Hélder Antero Amaral Nunes

SQL. Hélder Antero Amaral Nunes SQL Hélder Antero Amaral Nunes 2 Introdução Desenvolvida pelo departamento de pesquisa da IBM na década de 1970 (System R); Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

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

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL) CEFET.PHB - PI Prof. Jefferson Silva SQL (MySql) ROTEIRO I PARTE - INTRODUÇÃO AO SQL COMANDOS E SUAS PARTES DA LINGUAGEM SQL II PARTE ADMINSTRAÇÃO DE BANCO DE DADOS UTILIZANDO MYSQL PRINCIPAIS INSTRUÇÕES

Leia mais

Núcleo de Pós Graduação Pitágoras

Núcleo de Pós Graduação Pitágoras Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Modelagem e Projeto de Banco de Dados Especialização em Tecnologia da Informação - Ênfases Março- 2009 1 Modelo Físico Introdução

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas 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

Leia mais

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

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

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

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina Introdução Banco de Dados SQL Fernando Fonseca Ana Carolina SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta, permitindo definição (DDL)

Leia mais

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

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo ) PRONATEC - Programador de Sistemas Banco de Dados 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas utilize o comando INSERT INTO INSERT INTO tabela [ ( coluna [, coluna,...] ) ] VALUES

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003 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

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

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

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

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

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

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

Leia mais

Unidade III - BD Relacional

Unidade III - BD Relacional Structured Query Language (SQL) Conceitos Iniciais Álgebra Relacional - muito formal Cálculo Relacional de Tupla SEQUEL (Structured English QUEry Language) IBM - Sistema R SQL-86 SQL-92 SQL-3 102 Structured

Leia mais

Linguagem SQL. Comandos Básicos

Linguagem SQL. Comandos Básicos Linguagem SQL Comandos Básicos Caetano Traina Júnior Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.sc.usp.br Comando

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

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

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 Banco de Dados Fundamentos de SQL Structured Query Language Aula2 Apresentado por: Robson do Nascimento Fidalgo rdnf@cin.ufpe.br IF685

Leia mais

Bases de Dados. Parte V: A Linguagem SQL

Bases de Dados. Parte V: A Linguagem SQL Bases de Dados Parte V A Linguagem SQL 1 SQL Structured Query Language O SQL é uma poderosa linguagem declarativa que permite definir, questionar e manipular bases de dados. Para além das funcionalidades

Leia mais

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

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL SQL, é uma linguagem de programação que foi desenvolvida para questionar bases de dados relacionais

Leia mais

BANCO DE DADOS CONCEITOS BÁSICOS

BANCO DE DADOS CONCEITOS BÁSICOS Universidade Federal da Paraíba UFPB Centro de Energias Alternativas e Renováveis - CEAR Departamento de Eng. Elétrica DEE BANCO DE DADOS CONCEITOS BÁSICOS Isaac Maia Pessoa Introdução O que é um BD? Operações

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura

Leia mais

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

Engenharia de Computação / Engenharia de Produção. Banco de Dados Prof. Maria das Graças da Silva Teixeira Unidade 3 SQL Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José Pereira Contexto na Disciplina

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br Os comandos SQL podem ser agrupados em 3 classes: DDL Data Definition Language Comandos para a Definição

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

SQL: Consultas, Programação, Gatilhos

SQL: Consultas, Programação, Gatilhos SQL: Consultas, Programação, Gatilhos Capítulo 5 1 Introdução O que é SQL? Structured Query Language Linguagem comercial de banco de dados mais utilizada no mercado. Origem Originalmente chamada de SEQUEL

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

Leia mais

Histórico de revisões

Histórico de revisões Apostila 3 Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções

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

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

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

Leia mais

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

Leia mais

Programação SQL. INTRODUÇÃO II parte

Programação SQL. INTRODUÇÃO II parte Programação SQL INTRODUÇÃO II parte Programação SQL SELECT; INSERT; UPDATE; DELETE. Este conjunto de comandos faz parte da sublinguagem denominada por DML Data Manipulation Language (Linguagem de manipulação

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

Introdução a SQL. Prof. Anderson Cavalcanti UFRN-CT-DCA

Introdução a SQL. Prof. Anderson Cavalcanti UFRN-CT-DCA Introdução a SQL Prof. Anderson Cavalcanti UFRN-CT-DCA Características da Structured Query Language -SQL Características da SQL SQL é uma linguagem de pesquisa declarativa para banco de dados relacional.

Leia mais

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

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

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

SQL. Introdução. Por que SQL? Setenças Select-From-Where

SQL. Introdução. Por que SQL? Setenças Select-From-Where Introdução SQL Bancos de Dados I Altigran Soares da Silva IComp/UFAM 2013/02 Adaptado do Material do Professor Jeffrey Ullman Originalmente proposta para o System R desenvolvido nos laboratórios da IBM

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

Capítulo 4 A Linguagem SQL. Murilo Silva de Camargo

Capítulo 4 A Linguagem SQL. Murilo Silva de Camargo Capítulo 4 A Linguagem SQL Murilo Silva de Camargo 1 SQL - Structured Query Language Estrutura básica Operações de conjunto Funções agregadas Valores nulos Sob consultas aninhadas Relações derivadas Visões

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados SQL-Consultas Comando SELECT Prof. Luiz Antônio Vivacqua C. Meyer (la.vivacqua@gmail.com) Sintaxe Geral SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1,

Leia mais

EXERCÍCIOS PRÁTICOS. Banco de Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados EXERCÍCIOS PRÁTICOS Banco de Dados Introdução ao uso do SQL Structured Query Language, considerando tanto DDL Data Definition Language quanto DML Data Manipulation Language. Banco de Dados selecionado:

Leia mais

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Principais Instruções em SQL Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Atenção: Esta apostila foi desenvolvida com o auxílio on-line do banco MS-ACCESS,

Leia mais

Capítulo 6 Regras de Integridade. Murilo S. de Camargo (Modificações M.A R. Dantas)

Capítulo 6 Regras de Integridade. Murilo S. de Camargo (Modificações M.A R. Dantas) Capítulo 6 Regras de Integridade Murilo S. de Camargo (Modificações M.A R. Dantas) 1 Restrições de Integridade ❾ Restrições de Domínio ❾ Integridade Referencial ❾ Asserções ❾ Gatilhos (Triggers) ❾ Dependências

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

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 03 AT03 Diversos II Page 1 of 25 Indice EXEMPLOS COM GROUP BY E COM A CLÁUSULA HAVING - TOTALIZANDO DADOS... 3 GROUP BY... 3 Cláusula HAVING com GROUP BY... 5 ENTENDENDO

Leia mais

Definida pelo American National Standard Institute (ANSI) em 1986

Definida pelo American National Standard Institute (ANSI) em 1986 2.3. Linguagens Relacionais SQL Structured Query Language Linguagem para o modelo relacional: Definida pelo American National Standard Institute (ANSI) em 1986 Adoptada em 1987 como um standard internacional

Leia mais

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si. NOME: BRUNO BRUNELI BANCO DE DADOS - ADS create database ProducaoMinerais use ProducaoMinerais create table Mineral( nome varchar(15) primary key, preco real) create table Pais( nome varchar(30) primary

Leia mais

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL SQL Structured Query Language Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987

Leia mais

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

SQL: Definição de tabelas, Modificações à Base de Dados SQL: Definição de tabelas, Modificações à Base de Dados Fernando Lobo Base de Dados, Universidade do Algarve 1 / 24 Definição do esquema da base de dados O esquema da BD é composto pelas definições de

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

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

Exercícios de Lógica Exercícios de Fixação 08 Exercícios Exercícios de Lógica Exercícios de Fixação 08 1. A linguagem SQL apresenta uma série de comandos que permitem a definição dos dados, chamada de DDL (Data Definition Language). Assinale a alternativa

Leia mais

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

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013 Aplicações - SQL Banco de Dados: Teoria e Prática André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013 Picture by Steve Kelley 2008 SQL SQL Structured Query Language Originalmente:

Leia mais

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida UFCD 787 Administração de base de dados Elsa Marisa S. Almeida 1 Objectivos Replicação de base de dados Gestão de transacções Cópias de segurança Importação e exportação de dados Elsa Marisa S. Almeida

Leia mais

Gerenciamento de um Sistema de

Gerenciamento de um Sistema de SBD Gerenciamento de um Sistema de Banco de Dados Prof. Michel Nobre Muza ua michel.muza@ifsc.edu.br Prof. Marcos Antonio Viana Nascimento Por que é importante: Motivação Participar na organização e no

Leia mais

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2005/2006. Aula 5 Bases de Dados 2005/2006 Aula 5 Sumário -1. (T.P.C.) Indique diferenças entre uma tabela e uma relação. 0. A base de dados Projecto 1. SQL Join (variantes) a. Cross Join b. Equi-Join c. Natural Join d.

Leia mais

Banco de Dados - Senado

Banco de Dados - Senado Banco de Dados - Senado Structured Query Language (SQL) Material preparado :Prof. Marcio Vitorino Ambiente Simplificado de um SGBD 2 Características dos SGBDs Natureza auto-contida de um sistema de banco

Leia mais

O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma:

O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma: 1 CREATE TABLE O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma: CREATE TABLE (), (

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br INTRODUÇÃO AO SQL Ferramentas brmodelo Ferramenta Case PostgreSQL versão 8 ou superior SGBD Em 1986 o American

Leia mais