Treinamento Java Oracle nos padrões KMM Marcos Vinicius Borck Banco de dados I • Criação de estruturas: – – – – – – Tabelas Sequences Triggers Views Constraints Grants • Utilização de Geradores • Nomenclatura de arquivos e SVN • Aplicação prática Tabelas • • • • Owner; Nome; Tablespace; Temporária; Tabelas - Colunas • Tipos de dados: – – – – – – DATE VARCHAR2 NUMBER INTEGER CLOB BLOB • Nulo ou não nulo? • Comentários Tabela - Exemplo Comentarios - Exemplo Owner . Tabela . Coluna Tabela Temporária – Exemplo Tabelas - Constraints • • • • • PK – Primary key UK – Unique key FK – Foreign key Índices Checkcontraints Constraints - Exemplo Triggers e sequences • Uso prático na KMM • PKC - Sequences • Auditoria • Geradores: – \SVN\Software\_dev\Padroes\Oracle\Geradores\gerador _de_triggers_PKC_com_SQE.tst – \SVN\Software\_dev\Padroes\Oracle\Geradores\gerador _de_triggers_AUDIT.tst Triggers e sequences - Exemplo Triggers e sequences - Exemplo Views • Consultas • Interface entre usuário e tabela • Gerador de view: – \SVN\Software\_dev\Padroes\Oracle\Geradores – Arquivo: gerador_de_view.tst Roles e Grants • Roles – Controle de permissões – São concedidas aos usuários • Grants – Concede permissões • Execução: EXECUTE (Packages) • Consulta: SELECT (Views) – As permissões podem ser concedidas para • Usuários • Roles Views - Exemplo Consultas e Indentação • Consulta e indentação simples: select * from kmm.professor • Consultas e indentação com INNER JOIN select , from inner on p.nome d.descricao kmm.professor p join kmm.graduacao g g.graduacao_id = p.graduacao_id Consultas – INNER JOIN • Exemplo de consulta INNER JOIN select , , , , , , , , from inner on inner on inner on ptd.professor_turma_disciplina_id p.professor_id p.nome d.disciplina_id d.cod_disciplina d.descricao t.turma_id t.cod_turma t.descricao kmm.professor_turma_disc ptd join kmm.professor p p.professor_id = ptd.professor_id join kmm.disciplina d d.disciplina_id = ptd.disciplina_id join kmm.turma t t.turma_id = ptd.turma_id Consultas – LEFT JOIN • Exemplo de consulta LEFT JOIN select , , , , , , , , from LEFT on inner on inner on ptd.professor_turma_disc_id p.professor_id p.nome d.disciplina_id d.cod_disciplina d.descricao t.turma_id t.cod_turma t.descricao kmm.professor_turma_disc ptd join kmm.professor p p.professor_id = ptd.professor_id join kmm.disciplina d d.disciplina_id = ptd.disciplina_id join kmm.turma t t.turma_id = ptd.turma_id Sintaxe Insert • Sintaxe INSERT sem retorno do ID insert into [OWNER].[TABELA] ([CAMPO1], [CAMPO2],...) values ([VALOR1], [VALOR2])... • EXEMPLO insert into kmm.graduacao (cor, descricao) values ('#0033FF', 'Técnico'); Sintaxe Insert • Sintaxe INSERT com retorno do ID insert into [OWNER].[TABELA] ([CAMPO1], [CAMPO2],...) values ([VALOR1], [VALOR2]) returning [CAMPO_RETORNO] into [VARIAVEL] • Insert com retorno do ID da tabela insert into kmm.graduacao (cor, descricao) values ('#0033FF', ‘Graduando') returning graduacao_id into v_graduacao_id; Sintaxe Update • Sintaxe update [OWNER].[TABELA] set [CAMPO] = [VALOR] where [CAMPO_CONDICAO] = [VALOR_CONDICAO] • Exemplo update kmm.graduacao set descricao = ‘Graduando 999’ where descricao = ‘Graduando’ Sintaxe Delete • Sintaxe delete [OWNER].[TABELA] where [CAMPO_CONDICAO] = [VALOR_CONDICAO] • Exemplo delete kmm.graducao where descricao = ‘Graduando 999’ Exemplo prático • Criar tabelas conforme modelo apresentado na wiki • http://wiki.kmm.com.br/index.php/Treinamento_de_Programação_KMM#Banco_de_dados Dúvidas Treinamento Java Oracle nos padrões KMM [email protected]