Exercício 1 =========== -- criação dos tipos e das tabelas. CREATE TYPE PROFESSOR_TYPE AS OBJECT ( NOME VARCHAR2(15), DISCIPLINA VARCHAR2(15) ); /



Documentos relacionados
10g PRINCIPAIS SERVIDORES UNIVERSAIS

Logado no OracleXE vamos acessar a opção:

Introdução ao SQL. Aécio Costa

Oracle Objeto-Relacional. Pablo Vieira Florentino

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

SQL - Criação de Tabelas

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Linguagem SQL. Comandos Básicos

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS


Sistema de Controle de Estoque

PHP INTEGRAÇÃO COM MYSQL PARTE 1

A linguagem SQL

Sistemas de Informação


SQL DDL Criando Tabelas e Restrições

Banco de Dados Avançados Banco de Dados Ativo

Banco de Dados Objeto Relacional

PostgreSQL. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

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

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Linguagem SQL (Parte II)

Oracle 10g: SQL e PL/SQL

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

A IMPLEMENTAÇÃO OBJETO-RELACIONAL ORACLE

Programação SQL. Introdução

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

2. Criar um bloco PL/SQL anônimo para imprimir as tabuadas abaixo: 5 X 10 = 50 5 X 2 = X 10 = X 2 = 2...

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

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

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves Rui Barradas Hélton Miranda 68477

SQL Server Ferramenta de administração. SQL Server Management Studio. 1º passo conectar ao banco de dados 2ª Query (consulta) usando SQL

SQL Procedural. Josino Rodrigues Neto

PL/pgSQL por Diversão e Lucro

Structured Query Language (SQL) Aula Prática

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Projeto de Banco de Dados

Linguagem de Consulta - SQL

MySQL. Prof. César Melo. com a ajuda de vários

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de

Bancos de Dados I. Integridade semântica

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

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Procedimentos armazenados

SQL DDL. Frederico D. Bortoloti

Projeto de Banco de Dados: Empresa X

SQL DML. Frederico D. Bortoloti

4.6. SQL - Structured Query Language

Monitoria GDI. Aula Prática. OR (Aula 1)

BANCO DE DADOS I. Exercícios

SQL. Autor: Renata Viegas

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

Gerenciamento de Dados e Informação Fernando Fonseca. Graduação

DataBase Refactoring em FireBird

JDBC. Prof. Márcio Bueno

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

PL/pgSQL. Introdução. Introdução. Introdução

Curso PHP Aula 08. Bruno Falcão

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Consistem num conjunto de apontadores para instâncias especificas de cada relação.


Prof. Carlos Majer Aplicações Corporativas UNICID

SQL. Prof. Márcio Bueno.

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

MANUAL INSTALAÇÃO WEB SERVICE

EXEMPLOS DE COMANDOS NO SQL SERVER

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Oracle PL/SQL Overview

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

Monitoria GDI Aula Prática. DML + PL/SQL parte 1

MODELO OBJECTO - RELACIONAL ORACLE 8

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

22/05/2012 CRIANDO UM PROJETO COM TELAS ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS TAREFAS PHP MYSQL PARTE 2

Comandos de Manipulação

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Treinamento PostgreSQL - Aula 03

Introdução à linguagem SQL

SQL (STRUCTUREDQUERY LANGUAGE)

Transacções. Vitor Vaz da Silva

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

Triggers no PostgreSQL

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO.

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

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Linguagem de Consulta - SQL

Transcrição:

Exercício 1 =========== -- criação dos tipos e das tabelas. CREATE TYPE PROFESSOR_TYPE AS OBJECT ( NOME VARCHAR2(15, DISCIPLINA VARCHAR2(15 CREATE TYPE NT_PROF_T AS TABLE OF PROFESSOR_TYPE; CREATE TYPE ALUNO_TYPE AS OBJECT( MATRICULA NUMBER, PROFESSORES NT_PROF_T CREATE TYPE NT_ALUNO_T AS TABLE OF ALUNO_TYPE; CREATE TYPE TURMA_TYPE AS OBJECT ( CODIGO VARCHAR2(3, SALA VARCHAR2(3, ALUNOS NT_ALUNO_T CREATE TABLE TURMA_TAB OF TURMA_TYPE ( CODIGO PRIMARY KEY NESTED TABLE ALUNOS STORE AS ALUNOS_T (NESTED TABLE PROFESSORES STORE AS PROF_T -- inserções INSERT INTO TURMA_TAB VALUES ('I5A', 'S9', NT_ALUNO_T( ALUNO_TYPE( 210141500, NT_PROF_T( PROFESSOR_TYPE('Fernando','GDI', PROFESSOR_TYPE('Hermano','PD', ALUNO_TYPE( 210141750, NT_PROF_T( PROFESSOR_TYPE('Silvio','HFC', PROFESSOR_TYPE('Hermano','PLP'

INSERT INTO TABLE( SELECT A.PROFESSORES FROM TABLE( SELECT T.ALUNOS FROM TURMA_TAB T WHERE T.CODIGO = 'I5A' A WHERE A.MATRICULA = 210141750 VALUES ('Ruy','IT' --atualizaçoes UPDATE TABLE( SELECT A.PROFESSORES FROM TABLE( SELECT T.ALUNOS FROM TURMA_TAB T WHERE T.CODIGO = 'I5A' A WHERE A.MATRICULA = 210141500 P SET VALUE(P= PROFESSOR_TYPE('Jacques','PD' WHERE P.DISCIPLINA='PD'; -- Consulta SELECT P.NOME, P.DISCIPLINA FROM TURMA_TAB T, TABLE(T.ALUNOS A, TABLE(A.PROFESSORES P; Exercício 2 -Elimine tabelas e tipos criados (drop --Referencias Cruzadas --Criação de Tipos CREATE TYPE EMPREGADO_TYPE AS OBJECT( ID NUMBER, NOME VARCHAR2(20, ENDERECO VARCHAR2(30 CREATE TYPE EMPREGADO_NESTED AS TABLE OF REF EMPREGADO_TYPE; CREATE TYPE PROJETO_TYPE AS OBJECT( COD NUMBER, TITULO VARCHAR2(20, GRUPO_T EMPREGADO_NESTED CREATE TYPE PROJETO_NESTED AS TABLE OF REF PROJETO_TYPE; ALTER TYPE EMPREGADO_TYPE ADD ATTRIBUTE(PROJETOS_T PROJETO_NESTED CASCADE; CREATE TABLE PROJETO_TABELA OF PROJETO_TYPE(

COD PRIMARY KEY NESTED TABLE GRUPO_T STORE AS Tab_Empregados; CREATE TABLE EMPREGADO_TABELA OF EMPREGADO_TYPE( ID PRIMARY KEY NESTED TABLE PROJETOS_T STORE AS Tab_Projetos; -- Armazena empregados INSERT INTO EMPREGADO_TABELA VALUES (1, 'Julio Marques', 'Rua Amelia', PROJETO_NESTED( INSERT INTO EMPREGADO_TABELA VALUES (2, 'Marcus Nogueira', 'Rua Bruno Veloso', PROJETO_NESTED( INSERT INTO EMPREGADO_TABELA VALUES (3, 'Vanessa Costa', 'Av Caxanga', PROJETO_NESTED( -- Armazena projetos INSERT INTO PROJETO_TABELA VALUES (1, 'Distributed XML', EMPREGADO_NESTED( INSERT INTO PROJETO_TABELA VALUES (2, 'JDBC 3', EMPREGADO_NESTED( INSERT INTO THE(Select PROJETOS_T from EMPREGADO_TABELA e WHERE e.id = 1 select REF(p from PROJETO_TABELA p where p.cod = 1; INSERT INTO THE(Select PROJETOS_T from EMPREGADO_TABELA e WHERE e.id = 2 select REF(p from PROJETO_TABELA p where p.cod = 1; INSERT INTO THE(Select GRUPO_T from PROJETO_TABELA p WHERE p.cod = 1 select REF(e from EMPREGADO_TABELA e where e.id = 1; INSERT INTO THE(Select GRUPO_T from PROJETO_TABELA p WHERE p.cod = 1 select REF(e from EMPREGADO_TABELA e where e.id = 2; -- Consultas SELECT DEREF(ss.COLUMN_VALUE FROM THE(SELECT GRUPO_T FROM PROJETO_TABELA p WHERE p.cod = 1 ss; SELECT DEREF(ss.COLUMN_VALUE FROM THE(SELECT PROJETOS_T FROM EMPREGADO_TABELA E WHERE E.ID = 1 ss; SELECT DEREF(VALUE(p.titulo FROM THE (SELECT PROJETOS_T FROM EMPREGADO_TABELA e WHERE e.nome = 'Marcus Nogueira' p; Exercício 3 -Elimine tabelas e tipos criados (drop --herança --Criação de tipos

CREATE TYPE T_PESSOA AS OBJECT( NOME VARCHAR2(30, TELEFONE VARCHAR2(20, DATA_NASCIMENTO DATE NOT FINAL; CREATE TYPE T_ALUNO UNDER T_PESSOA( MATRICULA Integer --Criação de tabela CREATE TABLE ALU_TABLE OF T_ALUNO( MATRICULA PRIMARY KEY --Inserção de dados INSERT INTO ALU_TABLE VALUES(T_ALUNO('Maria Bonita','21268430',to_date('20011980','ddmmyyyy', 45 --Consulta SELECT p.nome,p.data_nascimento FROM ALU_TABLE p WHERE p.matricula = 45; Exercício 4 -Elimine tabelas e tipos criados (drop --Member methods e nested table --Criação de tipos CREATE TYPE EMPREGADO_TP AS OBJECT ( MATRICULA INTEGER, NOME VARCHAR2(40, SALARIO NUMBER(5 CREATE TYPE EMP_NESTED AS TABLE OF EMPREGADO_TP; CREATE TYPE DEPARTAMENTO_TP AS OBJECT ( MATRICULA INTEGER, NOME VARCHAR2(40, EMPREGADOS EMP_NESTED, MEMBER FUNCTION total_empregados RETURN INTEGER, MEMBER FUNCTION total_salarios RETURN NUMBER,

INTEGER MEMBER FUNCTION numeroempregadosganhammais (numero IN INTEGER RETURN CREATE TABLE DEPARTAMENTO_TAB OF DEPARTAMENTO_TP ( MATRICULA PRIMARY KEY NESTED TABLE EMPREGADOS STORE AS EMP_T; CREATE OR REPLACE TYPE BODY DEPARTAMENTO_TP AS MEMBER FUNCTION TOTAL_EMPREGADOS RETURN INTEGER IS BEGIN RETURN SELF.EMPREGADOS.COUNT( MEMBER FUNCTION TOTAL_SALARIOS RETURN NUMBER IS CONTADOR INTEGER; TOTALSALARIO NUMBER := 0; BEGIN FOR CONTADOR IN 1..SELF.EMPREGADOS.COUNT( LOOP TOTALSALARIO := TOTALSALARIO + SELF.EMPREGADOS(CONTADOR.SALARIO; END LOOP; RETURN TOTALSALARIO; MEMBER FUNCTION NUMEROEMPREGADOSGANHAMMAIS (NUMERO IN INTEGER RETURN INTEGER IS CONTADOR INTEGER; TOTALEMPREGADOS NUMBER := 0; BEGIN FOR CONTADOR IN 1..SELF.EMPREGADOS.COUNT( LOOP IF SELF.EMPREGADOS(CONTADOR.SALARIO > NUMERO THEN TOTALEMPREGADOS := TOTALEMPREGADOS + 1; END IF; END LOOP; RETURN TOTALEMPREGADOS; -- INSERÇOES INSERT INTO departamento_tab VALUES (departamento_tp(1, 'Depto Compras', emp_nested( empregado_tp(1, 'Marcelo',1000 'Depto Compras' VALUES (empregado_tp(2,'joca',2000

'Depto Compras' VALUES (empregado_tp(3,'ana Maria',1200.75 'Depto Compras' VALUES (empregado_tp(4,'antônio André',900 INSERT INTO departamento_tab VALUES (departamento_tp(2, 'Depto Finanças', emp_nested( empregado_tp(1, 'Mônica',2100 'Depto Finanças' VALUES (empregado_tp(2,'silvério',2030 'Depto Finanças' VALUES (empregado_tp(3,'ronaldo',1200 --Consultas -- LISTAR TODOS OS DADOS DOS FUNCIONÁRIOS DO DEPARTAMENTO DE COMPRAS (USANDO THE SELECT * FROM THE(SELECT d.empregados FROM departamento_tab d WHERE d.nome = 'Depto Compras' -- LISTAR TODOS OS DADOS DOS FUNCIONÁRIOS DO DEPARTAMENTO DE COMPRAS (USANDO TABLE SELECT e.* FROM departamento_tab d, TABLE(d.empregados e WHERE d.nome = 'Depto Compras'; -- LISTAR TODOS OS DADOS DOS FUNCIONÁRIOS DO DEPARTAMENTO DE FINANÇAS (USANDO TABLE SELECT e.* FROM departamento_tab d, TABLE(d.empregados e WHERE d.nome = 'Depto Finanças'; -Listar nome, total de empregados e quantos empregados ganham mais de R$ 1.500,00 SELECT d.nome, d.total_empregados(, d.numeroempregadosganhammais(1500 FROM departamento_tab d WHERE d.nome = 'Depto Compras'

SELECT d.total_salarios( FROM departamento_tab d WHERE d.matricula = 1; SELECT d.total_salarios( from departamento_tab d where d.nome = 'Depto Finanças'; SELECT d.nome, d.total_salarios( from departamento_tab d; SELECT d.nome, d.numeroempregadosganhammais(1000 from departamento_tab d;