Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 11 Disciplina Banco de Dados (BD)Disciplina Banco de Dados (BD) 2222ªª -- 2323ªª Aulas Aulas -- DDL DDL -- Create Create -- Drop Table Drop Table -- InsertInsert2013/1 2013/1 -- CCON4A CCON4A -- ENGN6CENGN6C IESB SulIESB Sul 2 Planejamento - BD I - 2013/1 - (previsão) D S T Q Q S S D S T Q Q S S 1 2 1 3 4 5 6 7 8 9 2 3 4 5 6 7 8 10 11 12 13 14 15 16 9 10 11 12 13 14 15 17 18 19 20 21 22 23 16 17 18 19 20 21 22 24 25 26 27 28 23 24 25 26 27 28 29 30 D S T Q Q S S D S T Q Q S S 1 2 1 2 3 4 5 6 3 4 5 6 7 8 9 7 8 9 10 11 12 13 10 11 12 13 14 15 16 14 15 16 17 18 19 20 17 18 19 20 21 22 23 21 22 23 24 25 26 27 24 25 26 27 28 29 30 28 29 30 31 31 D S T Q Q S S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 D S T Q Q S S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 FEVEREIRO MARÇO ABRIL MAIO JUNHO JULHO LEGENDA Feriado / Recesso Aula Lançamento (P1, P2 e Subst) Início / Término Aulas Avaliação (P1, P2 e Subst) Edad 3 Banco de Dados (BD) Para assistir a aula: Para assistir a aula: éé necessnecessáário estar que o aluno esteja rio estar que o aluno esteja matriculado na disciplina matriculado na disciplina (deve estar na lista de chamada)(deve estar na lista de chamada) procurar a Coordenaprocurar a Coordenaçção do Curso ão do Curso para a solupara a soluçção de problemasão de problemas 4 LeiamLeiam CCóódigo de digo de ÉÉticatica ResoluResoluçção Conselho Superior não Conselho Superior nºº 02/201002/2010 de 12 de agosto de 2010de 12 de agosto de 2010 (dispon(disponíível na plataforma "vel na plataforma "BlackboardBlackboard")") Banco de Dados 5 BD Banco de Dados EE--mail para receber o material enquanto não mail para receber o material enquanto não estestáá dispondisponíível o site da disciplinavel o site da disciplina wpereira@cpovo.net BD - Enviar material 6 �� BIBLIOGRAFIABIBLIOGRAFIA �� Bibliografia bBibliografia báásica (ordem alfabsica (ordem alfabéética):tica): �� DATE, CHRISTOPHER JDATE, CHRISTOPHER J. . IntroduIntroduçção a Sistemas de Bancos ão a Sistemas de Bancos de Dadosde Dados. Rio de Janeiro: Campus, 2000. . Rio de Janeiro: Campus, 2000. �� HEUSER, Carlos AlbertoHEUSER, Carlos Alberto. . Projeto de banco de DadosProjeto de banco de Dados. 6.ed. . 6.ed. Porto Alegre: Porto Alegre: BookmanBookman, 2010, 2010 .. �� SILBERSCHATZ, Korth; SUDARSHANSILBERSCHATZ, Korth; SUDARSHAN. . Sistema de Banco Sistema de Banco de Dadosde Dados. 3. ed. São Paulo: Makron Books, 2005.. 3. ed. São Paulo: Makron Books, 2005. Banco de Dados (BD) 2 7 �� BIBLIOGRAFIABIBLIOGRAFIA �� Bibliografia complementar (ordem alfabBibliografia complementar (ordem alfabéética):tica): �� ELMASRI, R.; NAVATHE, S. BELMASRI, R.; NAVATHE, S. B. . Sistemas de Banco de DadosSistemas de Banco de Dados. 4. ed. São . 4. ed. São Paulo: Pearson Education do Brasil, 2005.Paulo: Pearson Education do Brasil, 2005. �� KROENKE, David MKROENKE, David M. . Banco de Dados: fundamentos, projeto e Banco de Dados: fundamentos, projeto e implementaimplementaççãoão. 6. ed. Rio de Janeiro: LTC, 1999.. 6. ed. Rio de Janeiro: LTC, 1999. �� MACHADO, Felipe Nery; ABREU, MauricioMACHADO, Felipe Nery; ABREU, Mauricio. . Projeto de Banco de Dados: Projeto de Banco de Dados: uma visão pruma visão prááticatica. 16. ed. São Paulo: . 16. ed. São Paulo: ÉÉrica, 2009.rica, 2009. �� MELO, Rubens NMELO, Rubens N. . Banco de Dados em AplicaBanco de Dados em Aplicaçções Clienteões Cliente--ServidorServidor. Rio . Rio de Janeiro: Infobook, 1997.de Janeiro: Infobook, 1997. �� SETZER, Valdemar W; SILVA, FlSETZER, Valdemar W; SILVA, Fláávio Soares Correavio Soares Correa. . Bancos de Dados: Bancos de Dados: aprenda o que são, melhore seu conhecimento, construa o seuaprenda o que são, melhore seu conhecimento, construa o seu. São Paulo: . São Paulo: Edgard BlEdgard Blüücher Ltda, 2005.cher Ltda, 2005. Banco de Dados (BD) 8 �� SITES PARA APROFUNDAMENTO E FERRAMENTAS:SITES PARA APROFUNDAMENTO E FERRAMENTAS: �� brModelo 2.0brModelo 2.0. . Ferramenta de modelagem de banco de dadosFerramenta de modelagem de banco de dados. Dispon. Disponíível vel em: <http://www.sis4.com/brmodelo>. Acesso em 29 jul. 2012.em: <http://www.sis4.com/brmodelo>. Acesso em 29 jul. 2012. �� DBDesigner 4DBDesigner 4. . Ferramenta de modelagem de banco de dadosFerramenta de modelagem de banco de dados. Dispon. Disponíível vel em: <http://fabforce.net/dbdesigner4/>. Acesso em 29 jul. 2012. em: <http://fabforce.net/dbdesigner4/>. Acesso em 29 jul. 2012. �� MySQLMySQL. . Sistema Gerenciador de Banco de Dados MySQLSistema Gerenciador de Banco de Dados MySQL. Dispon. Disponíível vel em: <http://www.mysql.com/>. Acesso em 29 jul. 2012. em: <http://www.mysql.com/>. Acesso em 29 jul. 2012. �� OracleOracle. . Sistema Gerenciador de Banco de Dados OracleSistema Gerenciador de Banco de Dados Oracle. Dispon. Disponíível em: vel em: <http://www.oracle.com/br/index.html/>. Acesso em 29 jul. 2012. <http://www.oracle.com/br/index.html/>. Acesso em 29 jul. 2012. �� Power DesignerPower Designer. . Ferramenta de modelagem de banco de dadosFerramenta de modelagem de banco de dados. dispon. disponíível vel em: em: <http://www.sybase.com/products/modelingdevelopment/powerdesigne<http://www.sybase.com/products/modelingdevelopment/powerdesigner>. r>. Acesso em Acesso em 29 jul. 2012.Acesso em Acesso em 29 jul. 2012. Banco de Dados (BD) 9 FIES 10 Plano de Ensino 11 Plano de Ensino 1212 Banco de Dados Formem as equipes para o 2Formem as equipes para o 2°° TrabalhoTrabalho 3 13 Roteiro da Apresentação �� IntroduIntroduççãoão �� Linguagem SQL com BD Oracle Database 11g Express Linguagem SQL com BD Oracle Database 11g Express EditionEdition:: �� Linguagem de DefiniLinguagem de Definiçção de Dados (DDL): ão de Dados (DDL): �� AutenticaAutenticaçção no Banco de Dados Oracle Express 11gão no Banco de Dados Oracle Express 11g �� CriaCriaçção de Tabelas (Create ão de Tabelas (Create TableTable)) �� Exclusão de Tabelas (Exclusão de Tabelas (DropDrop table)table) �� Linguagem de Consulta de Dados (DML):Linguagem de Consulta de Dados (DML): �� Inserindo dados em tabelas (Inserindo dados em tabelas (InsertInsert)) �� ExercExercíício cio -- solusoluçção 1ão 1 �� ExercExercíício cio -- solusoluçção 2ão 2 14 Roteiro da Apresentação �� IntroduIntroduççãoão �� Linguagem SQL com BD Oracle Database 11g Express Linguagem SQL com BD Oracle Database 11g Express EditionEdition:: �� Linguagem de DefiniLinguagem de Definiçção de Dados (DDL): ão de Dados (DDL): �� AutenticaAutenticaçção no Banco de Dados Oracle Express 11gão no Banco de Dados Oracle Express 11g �� CriaCriaçção de Tabelas (Create ão de Tabelas (Create TableTable)) �� Exclusão de Tabelas (Exclusão de Tabelas (DropDrop table)table) �� Linguagem de Consulta de Dados (DML):Linguagem de Consulta de Dados (DML): �� Inserindo dados em tabelas (Inserindo dados em tabelas (InsertInsert)) �� ExercExercíício cio -- solusoluçção 1ão 1 �� ExercExercíício cio -- solusoluçção 2ão 2 15 � Fases: Projeto de Banco de Dados Modelo conceitual Esquema relacional Tipo_Produto (Codigo, Descricao) Produto (Codigo, Nome, Preco, Cod_Tipo) Cod_Tipo referencia Tipo_Produto) Modelo lógico Modelo físico CODIGO DESCRICAO 1 COMPUTADOR 2 IMPRESSORA TIPO_PRODUTO CODIGO DESCRICAO PRECO COD_TIPO 1 DESKTOP DELL MODELO P III 2500 1 2 NOTEBOOK TOSHIBA L 1.7 3500 1 3 HP 692 C JATO DE TINTA 600 2 4 EPSON 1500 L LASER 1200 2 PRODUTO Banco de Dados BD ?????? 16 � Linguagens Comerciais (algumas): � SQL (Linguagem de Consulta Estruturada - Structured Query Language) � Quel (BD Ingres) � QBE (Linguagem de Consulta por Exemplo - Query By Example)� Transact SQL (BD MS SQL Server) Linguagens de Consulta Comercial 17 � SQL (Linguagem de Consulta Estruturada - Structured Query Language) � Linguagem comercial que usa uma combinação de construtores em álgebra e cálculo relacional � Originalmente chamada de Sequel, foi introduzida como linguagem de consulta para o System R, projeto da IBM (início dos anos 70) � Padrões: � American Standards Institute (ANSI) � International Standards Organization (ISO) � SQL-89 � SQL-92 (1992) � SQL-93 (1993) � SQL-3 (1999) � SQL-2003 Linguagens de Consulta Comercial 18 � Partes: � Linguagem de Consulta de Dados (DQL): com apenas um comando (Select), a DQL é a parte da SQL mais utilizada � Linguagem de Definição de Dados (DDL): comandos para a definição, exclusão e alteração de esquemas de relações (tabelas), assim como a criação de índices � Linguagem de Consulta de Dados (DML): comandos para inserção, exclusão e modificação de tuplas no BD � Incorporação de DML: DML embutida em linguagens de programação (Cobol, Pascal, C, etc.) � Definição de visões � Autorização: direitos de acesso a tabelas e visões � Integridade: comandos para a especificação de restrições de integridade (identidade e referencial) � Controle de transações: comandos para a especificação de inicialização e finalização de transações Linguagem SQL 4 19 � Partes (Oracle) Linguagem SQL Select Recuperação de dados do BD Insert Update Delete Create Alter Drop Rename Truncate Commit Rollback Savepoint Grant Revoke Linguagem de Manipulação de Dados (DML) Linguagem de Definição de Dados (DDL) Linguagem de Controle de Dados (DCL) Controle de Transações 20 �� CaracterCaracteríísticas:sticas: �� declaradeclaraçções não são ões não são ““case case sensitivesensitive”” �� declaradeclaraçções podem ser em uma ou mais linhasões podem ser em uma ou mais linhas �� palavras chaves não podem ser abreviadas (palavras chaves não podem ser abreviadas (≠≠ SQL*PlusSQL*Plus)) �� clausulas normalmente colocadas em linhas distintas (não clausulas normalmente colocadas em linhas distintas (não obrigatobrigatóório)rio) �� TabulaTabulaçção e endentaão e endentaçção são usadas para melhorar o ão são usadas para melhorar o entendimentoentendimento Linguagem SQL 21 Linguagem SQL SELECTSELECT [DISTINCT] { *, coluna [alias], ... }[DISTINCT] { *, coluna [alias], ... } FROMFROM nome_tabela [{,nome_tabela}]nome_tabela [{,nome_tabela}] [[WHEREWHERE condicondiçção (ão (õesões) ]) ] [GROUP BY coluna (s)][GROUP BY coluna (s)] [HAVING condi[HAVING condiçção]ão] [ORDER BY coluna (s) [ASC | DESC] ];[ORDER BY coluna (s) [ASC | DESC] ]; TABELA 1 SELEÇÃO TABELA 1 PROJEÇÃO TABELA 1 SELEÇÃO - PROJEÇÃO TABELA 1 TABELA 2 JUNÇÃO 22 Roteiro da Apresentação �� IntroduIntroduççãoão �� Linguagem SQL com BD Oracle Database 11g Express Linguagem SQL com BD Oracle Database 11g Express EditionEdition:: �� Linguagem de DefiniLinguagem de Definiçção de Dados (DDL): ão de Dados (DDL): �� AutenticaAutenticaçção no Banco de Dados Oracle Express 11gão no Banco de Dados Oracle Express 11g �� CriaCriaçção de Tabelas (Create ão de Tabelas (Create TableTable)) �� Exclusão de Tabelas (Exclusão de Tabelas (DropDrop table)table) �� Linguagem de Consulta de Dados (DML):Linguagem de Consulta de Dados (DML): �� Inserindo dados em tabelas (Inserindo dados em tabelas (InsertInsert)) �� ExercExercíício cio -- solusoluçção 1ão 1 �� ExercExercíício cio -- solusoluçção 2ão 2 23 � Exemplo: DDL - Criação de Tabelas Código Nome Cidade Bairro DEPARTAMENTO Departamento ?????????BD (CodDep, Nome, Cidade, Bairro) 24 � Regra geral e detalhes sobre a sintaxe do comando DDL - Criação de Tabelas OPÇÕES DESCRIÇÃO schema Representa o proprietário da tabela. Quanto omitido, assume-se que a tabela pertencerá ao usuário corrente nome_da_tabela Nome da tabela a ser criada nome_da_coluna Nome da coluna (campo da tabela). Deve iniicar com uma letra e pode ter no máximo 30 caracteres (A-Z, a-z, 0-9, _ e $. Não pode usar nomes reservados. Podem existir até 1000 colunas tipo_de_dado Tipo de dado da coluna e tamanho default Especifica um valor predefinido para a coluna. Exemplos: NOT NULL, SYSDATE, 'RS' restrição_coluna (constraint) Especifica restrição de integridade para uma coluna, por exemplo, valores que podem ser armazenados. Sugere-se que tenha nome restrição_tabela (constraint) Especifica restrição de integridade para a tabela. Utiliza-se para definir chaves compostas. Sugere-se que tenha nome CREATE TABLE [schema.] nome_da_tabela (nome_da_coluna_1 tipo_de_dado [DEFAULT expressão] [restrição_coluna_1], ... nome_da_coluna_N tipo_de_dado [DEFAULT expressão] restrição_coluna_N] ); CREATE TABLECREATE TABLE [[schemaschema.] .] nome_da_tabelanome_da_tabela ((nome_da_coluna_1nome_da_coluna_1 tipo_de_dado tipo_de_dado [DEFAULT expressão] [restri[DEFAULT expressão] [restriçção_coluna_1],ão_coluna_1], ...... nome_da_coluna_Nnome_da_coluna_N tipo_de_dado tipo_de_dado [DEFAULT expressão] restri[DEFAULT expressão] restriçção_coluna_N] );ão_coluna_N] ); 5 25 � Detalhes sobre a sintaxe do comando - tipos de dados DDL - Criação de Tabelas TIPO_DE_DADO DESCRIÇÃO varchar2 (n) Cadeia de caracteres de tamanho variável com o máximo de n (até 4000 bytes) number (p, t) Valores numéricos: p indica a precisão (máximo de 38) e t indica o número de casas decimais (varia de -84 a + 127). Por exemplo number (5,2): -999,99 a + 999,99 date Armazena data e hora, incluindo século, ano, mês, dia, hora, minuto e segundo. Ocupa 7 bytes. TIPO_DE_DADO DESCRIÇÃO varchar2 (n) Cadeia de caracteres de tamanho variável com o máximo de n (até 4000 bytes) number (p, t) Valores numéricos: p indica a precisão (máximo de 38) e t indica o número de casas decimais (varia de -84 a + 127). Por exemplo number (5,2): -999,99 a + 999,99 date Armazena data e hora, incluindo século, ano, mês, dia, hora, minuto e segundo. Ocupa 7 bytes. CREATE TABLE [schema.] nome_da_tabela (nome_da_coluna_1 tipo_de_dado [DEFAULT expressão] [restrição_coluna_1], ... nome_da_coluna_N tipo_de_dado [DEFAULT expressão] restrição_coluna_N] ); CREATE TABLECREATE TABLE [[schemaschema.] .] nome_da_tabelanome_da_tabela ((nome_da_coluna_1nome_da_coluna_1 tipo_de_dado tipo_de_dado [DEFAULT expressão] [restri[DEFAULT expressão] [restriçção_coluna_1],ão_coluna_1], ...... nome_da_coluna_Nnome_da_coluna_N tipo_de_dado tipo_de_dado [DEFAULT expressão] restri[DEFAULT expressão] restriçção_coluna_N] );ão_coluna_N] ); 26 � Detalhes sobre a sintaxe do comando - restrições (constraints) DDL - Criação de Tabelas NOME USO null Informa se o campo pode receber valores nulos ou não (null ou not null) unique Indica que os valores da coluna não se repetem check Determian uma regra de validação. Especifica os valores que uma coluna pode assumir primary key Identifica a chave primária da tabela. foreign key Identifica a chave estrangeira da tabela. Implementada pela cláusula REFERENCES CREATE TABLE [schema.] nome_da_tabela (nome_da_coluna_1 tipo_de_dado [DEFAULT expressão] [restrição_coluna_1], ... nome_da_coluna_N tipo_de_dado [DEFAULT expressão] restrição_coluna_N] ); CREATE TABLECREATE TABLE [[schemaschema.] .] nome_da_tabelanome_da_tabela ((nome_da_coluna_1nome_da_coluna_1 tipo_de_dado tipo_de_dado [DEFAULT expressão] [restri[DEFAULT expressão] [restriçção_coluna_1],ão_coluna_1], ...... nome_da_coluna_Nnome_da_coluna_N tipo_de_dado tipo_de_dado [DEFAULT expressão] restri[DEFAULT expressão] restriçção_coluna_N] );ão_coluna_N] ); 27 CREATE TABLECREATE TABLE BD DDL - Criação de Tabelas (CodDep, Nome) CREATE TABLECREATE TABLE DEPARTAMENTODEPARTAMENTO ((codDepcodDep NUMBER (4) NUMBER (4) PRIMARYKEYPRIMARY KEY,, nomenome VARCHAR2 (30) VARCHAR2 (30) NOT NULLNOT NULL);); codigo nome DEPARTAMENTO Modelo lógico Modelo conceitual Modelo físico Departamento 28 DDL - Criação de Tabelas Aluno (Aluno (MatriculaMatricula, Nome, CPF, Telefone, Cidade, UF), Nome, CPF, Telefone, Cidade, UF) CREATE TABLECREATE TABLE ALUNOALUNO ((matriculamatricula NUMBER (4) NUMBER (4) PRIMARY KEYPRIMARY KEY,, nomenome VARCHAR2 (20) VARCHAR2 (20) NOT NULLNOT NULL,, cpfcpf VARCHAR2 (11) VARCHAR2 (11) UNIQUEUNIQUE,, telefonetelefone VARCHAR2 (10),VARCHAR2 (10), cidadecidade VARCHAR2 (20) VARCHAR2 (20) DEFAULT 'BRASDEFAULT 'BRASÍÍLIA'LIA',, ufuf VARCHAR2 (2) VARCHAR2 (2) CHECK (UF IN ('PR', 'SC', 'SP', 'DF'CHECK (UF IN ('PR', 'SC', 'SP', 'DF')));))); Modelo lógico Modelo conceitual Modelo físico 29 � Exemplos: DDL - Criação de Tabelas Departamento CREATE TABLECREATE TABLE DEPARTAMENTODEPARTAMENTO ((coddepcoddep NUMBER (4),NUMBER (4), nomenome VARCHAR2 (20) VARCHAR2 (20) NOT NULLNOT NULL,, cidadecidade VARCHAR2 (15),VARCHAR2 (15), bairrobairro VARCHAR2 (15),VARCHAR2 (15), PRIMARY KEYPRIMARY KEY ((coddepcoddep));)); CREATE TABLE [schema.] nome_da_tabela (nome_da_coluna_1 tipo_de_dado [DEFAULT expressão] [restrição_coluna_1], ... nome_da_coluna_N tipo_de_dado [DEFAULT expressão] restrição_coluna_N] ); CREATE TABLECREATE TABLE [[schemaschema.] .] nome_da_tabelanome_da_tabela ((nome_da_coluna_1nome_da_coluna_1 tipo_de_dado tipo_de_dado [DEFAULT expressão] [restri[DEFAULT expressão] [restriçção_coluna_1],ão_coluna_1], ...... nome_da_coluna_Nnome_da_coluna_N tipo_de_dado tipo_de_dado [DEFAULT expressão] restri[DEFAULT expressão] restriçção_coluna_N] );ão_coluna_N] ); CREATE TABLECREATE TABLE DEPARTAMENTODEPARTAMENTO ((coddepcoddep NUMBER (4) NUMBER (4) PRIMARY KEYPRIMARY KEY,, nomenome VARCHAR2 (20) VARCHAR2 (20) NOT NULLNOT NULL,, cidadecidade VARCHAR2 (15),VARCHAR2 (15), bairrobairro VARCHAR2 (15));VARCHAR2 (15)); (CodDep, Nome, Cidade, Bairro) 30 ((CodAlCodAl, , CodDiscCodDisc, , DataData, Nota), Nota) DDL - Criação de Tabelas ParticipacaoParticipacao CodDiscCodDisc referencia Disciplinareferencia Disciplina CodAlCodAl referencia Alunoreferencia Aluno ((CodAlunoCodAluno, Nome), Nome)AlunoAluno ((CodDisciplinaCodDisciplina, Nome), Nome)DisciplinaDisciplina 6 31 Roteiro da Apresentação �� IntroduIntroduççãoão �� Linguagem SQL com BD Oracle Database 11g Express Linguagem SQL com BD Oracle Database 11g Express EditionEdition:: �� Linguagem de DefiniLinguagem de Definiçção de Dados (DDL): ão de Dados (DDL): �� AutenticaAutenticaçção no Banco de Dados Oracle Express 11gão no Banco de Dados Oracle Express 11g �� CriaCriaçção de Tabelas (Create ão de Tabelas (Create TableTable)) �� Exclusão de Tabelas (Exclusão de Tabelas (DropDrop table)table) �� Linguagem de Consulta de Dados (DML):Linguagem de Consulta de Dados (DML): �� Inserindo dados em tabelas (Inserindo dados em tabelas (InsertInsert)) �� ExercExercíício cio -- solusoluçção 1ão 1 �� ExercExercíício cio -- solusoluçção 2ão 2 32 � Oracle: Login Linguagem SQL 33 � Oracle: Login Linguagem SQL SYSTEM IESB 34 � Oracle: Login Linguagem SQL SYSTEM IESB 35 � Oracle: Login Linguagem SQL 36 � Oracle: Login Linguagem SQL iesb iesb 7 37 � Oracle: Login Linguagem SQL 38 � Oracle: Login Linguagem SQL HR iesb iesb 39 � Oracle: Login Linguagem SQL 40 � Oracle: Login Linguagem SQL 41 � Oracle: Login Linguagem SQL 42 Roteiro da Apresentação �� IntroduIntroduççãoão �� Linguagem SQL com BD Oracle Database 11g Express Linguagem SQL com BD Oracle Database 11g Express EditionEdition:: �� Linguagem de DefiniLinguagem de Definiçção de Dados (DDL): ão de Dados (DDL): �� AutenticaAutenticaçção no Banco de Dados Oracle Express 11gão no Banco de Dados Oracle Express 11g �� CriaCriaçção de Tabelas (Create ão de Tabelas (Create TableTable)) �� Exclusão de Tabelas (Exclusão de Tabelas (DropDrop table)table) �� Linguagem de Consulta de Dados (DML):Linguagem de Consulta de Dados (DML): �� Inserindo dados em tabelas (Inserindo dados em tabelas (InsertInsert)) �� ExercExercíício cio -- solusoluçção 1ão 1 �� ExercExercíício cio -- solusoluçção 2ão 2 8 43 � Exemplos: DDL - Criação de Tabelas Departamento (Departamento (CodDepCodDep, Nome, Cidade, Bairro), Nome, Cidade, Bairro) Código Nome Cidade Bairro DEPARTAMENTO BDBD ProblemaProblema ?????? CREATE TABLE [schema.] nome_da_tabela (nome_da_coluna_1 tipo_de_dado [DEFAULT expressão] [restrição_coluna_1], ... nome_da_coluna_N tipo_de_dado [DEFAULT expressão] restrição_coluna_N] ); CREATE TABLECREATE TABLE [[schemaschema.] .] nome_da_tabelanome_da_tabela ((nome_da_coluna_1nome_da_coluna_1 tipo_de_dado tipo_de_dado [DEFAULT expressão] [restri[DEFAULT expressão] [restriçção_coluna_1],ão_coluna_1], ...... nome_da_coluna_Nnome_da_coluna_N tipo_de_dado tipo_de_dado [DEFAULT expressão] restri[DEFAULT expressão] restriçção_coluna_N] );ão_coluna_N] ); 44 � Exemplos: DDL - Criação de Tabelas Departamento (Departamento (CodDepCodDep, Nome, Cidade, Bairro), Nome, Cidade, Bairro) Código Nome Cidade Bairro DEPARTAMENTO BDBD CREATE TABLE [schema.] nome_da_tabela (nome_da_coluna_1 tipo_de_dado [DEFAULT expressão] [restrição_coluna_1], ... nome_da_coluna_N tipo_de_dado [DEFAULT expressão] restrição_coluna_N] ); CREATE TABLECREATE TABLE [[schemaschema.] .] nome_da_tabelanome_da_tabela ((nome_da_coluna_1nome_da_coluna_1 tipo_de_dado tipo_de_dado [DEFAULT expressão] [restri[DEFAULT expressão] [restriçção_coluna_1],ão_coluna_1], ...... nome_da_coluna_Nnome_da_coluna_N tipo_de_dado tipo_de_dado [DEFAULT expressão] restri[DEFAULT expressão] restriçção_coluna_N] );ão_coluna_N] ); ProblemaProblema ?????? 45 DDL - Criação de Tabelas CREATE TABLECREATE TABLE ALUNOALUNO ((codalunocodaluno NUMBER (4) NUMBER (4) PRIMARY KEYPRIMARY KEY ,, nomenome VARCHAR2 (20) VARCHAR2 (20) NOT NULLNOT NULL));; CREATE TABLECREATE TABLE DISCIPLINADISCIPLINA ((coddisciplinacoddisciplina NUMBER (4) NUMBER (4) PRIMARY KEYPRIMARY KEY,, nomenome VARCHAR2 (20) VARCHAR2 (20) NOT NULLNOT NULL));; ((CodAlunoCodAluno, Nome), Nome)AlunoAluno ((CodDisciplinaCodDisciplina, Nome), Nome)DisciplinaDisciplina 46 DDL - Criação de Tabelas CREATE TABLECREATE TABLE ALUNOALUNO ((codalunocodaluno NUMBER (4) NUMBER (4) PRIMARY KEYPRIMARY KEY ,, nomenome VARCHAR2 (20) VARCHAR2 (20) NOT NULLNOT NULL));; CREATE TABLECREATE TABLE DISCIPLINADISCIPLINA ((coddisciplinacoddisciplina NUMBER (4) NUMBER (4) PRIMARY KEYPRIMARY KEY,, nomenome VARCHAR2 (20) VARCHAR2 (20) NOT NULLNOT NULL));; ((CodAlunoCodAluno, Nome), Nome)AlunoAluno ((CodDisciplinaCodDisciplina, Nome), Nome)DisciplinaDisciplina Como saber se as tabelas foram realmente criadas ??Como saber se as tabelas foram realmente criadas ?? SELECT SELECT ** FROM FROM catcat;; SHIFT + DELSHIFT + DEL ENTERENTER 47 (CodAl, CodDisc, Data, Nota) DDL - Criação de Tabelas Participacao CodDisc referencia Disciplina CodAl referencia Aluno ((CodAlunoCodAluno, Nome), Nome)AlunoAluno ((CodDisciplinaCodDisciplina, Nome), Nome)DisciplinaDisciplina 48 DDL - Criação de Tabelas (CodAl, CodDisc, Data, Nota)Participacao CodDisc referencia Disciplina CodAl referencia Aluno ((CodAlunoCodAluno, Nome), Nome)AlunoAluno ((CodDisciplinaCodDisciplina, Nome), Nome)DisciplinaDisciplina 9 49 CursoCurso InstrutorInstrutor ((CodCursoCodCurso, Nome), Nome) ((CodInstrCodInstr, Nome, Obs), Nome, Obs) TurmaTurma CodICodI referenciareferencia InstrutorInstrutor CodCCodC referenciareferencia CursoCurso ((CodTurmaCodTurma, Sala, , Sala, CodCCodC, , CodICodI)) 50 CursoCurso ((CodCursoCodCurso, Nome), Nome) InstrutorInstrutor ((CodInstrCodInstr,Nome, Obs), Nome, Obs) 51 TurmaTurma CodICodI referenciareferencia InstrutorInstrutor CodCCodC referenciareferencia CursoCurso ((CodTurmaCodTurma, Sala, , Sala, CodCCodC, , CodICodI)) CursoCurso ((CodCursoCodCurso, Nome), Nome) InstrutorInstrutor ((CodInstrCodInstr, Nome, Obs), Nome, Obs) 52 TurmaTurma CodICodI referenciareferencia InstrutorInstrutor CodCCodC referenciareferencia CursoCurso ((CodTurmaCodTurma, Sala, , Sala, CodCCodC, , CodICodI)) CursoCurso ((CodCursoCodCurso, Nome), Nome) InstrutorInstrutor ((CodInstrCodInstr, Nome, Obs), Nome, Obs) 53 Roteiro da Apresentação �� IntroduIntroduççãoão �� Linguagem SQL com BD Oracle Database 11g Express Linguagem SQL com BD Oracle Database 11g Express EditionEdition:: �� Linguagem de DefiniLinguagem de Definiçção de Dados (DDL): ão de Dados (DDL): �� CriaCriaçção de Tabelas (Create ão de Tabelas (Create TableTable)) �� AutenticaAutenticaçção no Banco de Dados Oracle Express 11gão no Banco de Dados Oracle Express 11g �� Exclusão de Tabelas (Exclusão de Tabelas (DropDrop table)table) �� Linguagem de Consulta de Dados (DML):Linguagem de Consulta de Dados (DML): �� Inserindo dados em tabelas (Inserindo dados em tabelas (InsertInsert)) �� ExercExercíício cio -- solusoluçção 1ão 1 �� ExercExercíício cio -- solusoluçção 2ão 2 54 DDL - Exclusão de Tabelas Departamento (CodDep, Nome) BD codigo nome DEPARTAMENTO Modelo lógico Modelo conceitual Modelo físico 10 55 � Detalhes sobre a sintaxe do comando DDL - Exclusão de Tabelas DROP TABLE [schema.] nome_da_tabelaDROP TABLEDROP TABLE [[schemaschema.] nome_da_tabela.] nome_da_tabela DROP TABLE DEPARTAMENTO; codigo nome 10 ELETRO 20 BRINQUEDOS 30 ALIMENTOS 40 IMPORTADOS DEPARTAMENTO codigo nome DEPARTAMENTO 56 � Eliminando uma tabela: � Todos os dados e a estrutura da tabela é apagada � Todas as transações pendentes são validadas � Não se pode desfazer esta operação DDL - Exclusão de Tabelas DROP TABLE DEPARTAMENTO; codigo nome ... bairro 10 ELETRO FERROVIARIOS 20 BRINQUEDOS CENTRO 30 ALIMENTOS CENTRO 40 IMPORTADOS DEPARTAMENTO 57 � Observação: não apaga tabela referenciada DDL - Exclusão de Tabelas CREATE TABLE CREATE TABLE DEPARTAMENTODEPARTAMENTO ((codigocodigo NUMBER (2) PRIMARY KEY,NUMBER (2) PRIMARY KEY, nome VARCHAR2 (20) NOT NULL,nome VARCHAR2 (20) NOT NULL, cidade VARCHAR2 (15),cidade VARCHAR2 (15), bairro VARCHAR2 (15));bairro VARCHAR2 (15)); CREATE TABLE CREATE TABLE EMPREGADOEMPREGADO (( codigocodigo NUMBER (4) PRIMARY KEY NOT NULL,NUMBER (4) PRIMARY KEY NOT NULL, nome VARCHAR2 (20) NOT NULL,nome VARCHAR2 (20) NOT NULL, comissaocomissao NUMBER (7,2),NUMBER (7,2), deptnodeptno NUMBER (2) NUMBER (2) REFERENCES DEPARTAMENTOREFERENCES DEPARTAMENTO ((codigocodigo));)); ERRO na linha 1: ERRO na linha 1: ORAORA--02449: chaves prim02449: chaves primáárias/exclusivas na tabela referenciadas por chaves externasrias/exclusivas na tabela referenciadas por chaves externas DROP TABLEDROP TABLE DEPARTAMENTODEPARTAMENTO;; codigo nome ... ... ... ... comissao deptno 7839 JOSE DA SILVA 8698 PAULO FERNANDES 30 8782 ANTONIO CARLOS 10 8566 LUIS DA SILVA 20 7654 CARLA SILVA 500 30 EMPREGADO codigo nome ... bairro 10 ELETRO FERROVIARIOS 20 BRINQUEDOS CENTRO 30 ALIMENTOS CENTRO 40 IMPORTADOS DEPARTAMENTO 58 � Cuidado: ordem de exclusão DDL - Exclusão de Tabelas DROP TABLEDROP TABLE AlunoAluno;;11 DROP TABLEDROP TABLE DisciplinaDisciplina;;22 DROP TABLEDROP TABLE ParticipacaoParticipacao;;33 ERRO na linha 1:ERRO na linha 1: ORAORA--02449: chaves 02449: chaves primprimáárias/exclusivas na tabela rias/exclusivas na tabela referenciada por chavesreferenciada por chaves 59 � Cuidado: ordem de exclusão DDL - Exclusão de Tabelas DROP TABLEDROP TABLE DisciplinaDisciplina;;33 DROP TABLEDROP TABLE AlunoAluno;;22 DROP TABLEDROP TABLE ParticipacaoParticipacao;;11 DROP TABLEDROP TABLE AlunoAluno;;33 DROP TABLEDROP TABLE DisciplinaDisciplina;;22 DROP TABLEDROP TABLE ParticipacaoParticipacao;;11 60 � Banco de Dados Oracle Linguagem Definição de Manipulação de Dados (DML) DECLARAÇÃO DESCRIÇÃO Inserir (Insert) Permite inserir novos dados em uma tabela Modificar (Update) Possibilita modificar dados existentes em uma tabela Remover (Delete) Permite remover dados de uma tabela 11 61 Roteiro da Apresentação �� IntroduIntroduççãoão �� Linguagem SQL com BD Oracle Database 11g Express Linguagem SQL com BD Oracle Database 11g Express EditionEdition:: �� Linguagem de DefiniLinguagem de Definiçção de Dados (DDL): ão de Dados (DDL): �� CriaCriaçção de Tabelas (Create ão de Tabelas (Create TableTable)) �� AutenticaAutenticaçção no Banco de Dados Oracle Express 11gão no Banco de Dados Oracle Express 11g �� Exclusão de Tabelas (Exclusão de Tabelas (DropDrop table)table) �� Linguagem de Consulta de Dados (DML):Linguagem de Consulta de Dados (DML): �� Inserindo dados em tabelas (Inserindo dados em tabelas (InsertInsert)) �� ExercExercíício cio -- solusoluçção 1ão 1 �� ExercExercíício cio -- solusoluçção 2ão 2 62 � Regra geral e estrutura básica: � Somente uma linha é inserida ao mesmo tempo com a sintaxe abaixo � A inserção de dados é posicional (deve-se respeitar a ordem) � Para a inserção de caracteres na tabela usa-se: ' ' DML - Inserir novos dados em uma tabela INSERT INTOINSERT INTO nome_da_tabela [ (nome_da_coluna [, nome_da_coluna . . .] ) ]nome_da_tabela [ (nome_da_coluna [, nome_da_coluna . . .] ) ] VALUESVALUES (valor [, valor . . .] );(valor [, valor . . .] ); INSERT INTOINSERT INTO nome_da_tabelanome_da_tabela VALUESVALUES (valor [, valor . . .] );(valor [, valor . . .] ); 63 DML - Inserir novos dados em uma tabela 30 ALIMENTOS CENTRO INSERT INTOINSERT INTO DEPARTAMENTO (DEPARTAMENTO (codigocodigo, , nomenome, , cidadecidade, , bairrobairro)) VALUESVALUES ((3030, ', 'ALIMENTOSALIMENTOS', '', 'SAO LEOPOLDOSAO LEOPOLDO', '', 'CENTROCENTRO');'); INSERT INTOINSERT INTO nome_da_tabela [ (nome_da_coluna . . .) ]nome_da_tabela [ (nome_da_coluna . . .) ] VALUESVALUES (valor [, valor . . .] );(valor [, valor . . .] ); 30 ALIMENTOS CENTRO codigo nome ... bairro 10 ELETRO FERROVIARIOS 20 BRINQUEDOS CENTRO DEPARTAMENTO 11 11 22 33 44 22 33 44 64 � Inserindo dados nulos: � implicitamente: omitindo a coluna de sua lista. � explicitamente: especificando a palavra chave NULL DML - Inserir novos dados em uma tabela 40 IMPORTADOS ... codigo nome ... bairro 10 ELETRO FERROVIARIOS 20 BRINQUEDOS CENTRO 30 ALIMENTOS CENTRO 40 IMPORTADOS DEPARTAMENTO codigo nome ... bairro 10 ELETRO FERROVIARIOS 20 BRINQUEDOS CENTRO 30 ALIMENTOS CENTRO DEPARTAMENTO 65 Roteiro da Apresentação �� IntroduIntroduççãoão �� Linguagem SQL com BD Oracle Database 11g Express Linguagem SQL com BD Oracle Database 11g Express EditionEdition:: �� Linguagem de DefiniLinguagem de Definiçção de Dados (DDL): ão de Dados (DDL): �� CriaCriaçção de Tabelas (Create ão de Tabelas (Create TableTable)) �� AutenticaAutenticaçção no Banco de Dados Oracle Express 11gão no Banco de Dados Oracle Express 11g �� Exclusão de Tabelas (Exclusão de Tabelas (DropDrop table)table) �� Linguagem de Consulta de Dados (DML):Linguagem de Consulta de Dados (DML): �� Inserindo dados em tabelas (Inserindo dados em tabelas (InsertInsert)) �� ExercExercíício cio -- solusoluçção 1ão 1 �� ExercExercíício cio -- solusoluçção 2ão 2 66 Exercício 1 - Venda de produtos Uma firma vende produtos de limpeza, e deseja melhor controlar os produtos que vende, seus clientes e as notas fiscais. Cada produto é caracterizado por um código único, nome do produto, categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A firma possui informações sobre todos seus clientes. Cada clienteé identificado por um código único (interno à firma), o nome do cliente, endereço e o status do cliente ("bom", "médio", "ruim"). Todo cliente é associado a um único estado da federação, do qual se armazena o código (único) e o nome. Um estado da federação poderá estar associado a nenhum ou vários clientes. Guarda-se igualmente a informação de cada nota fiscal (NF) emitida aos clientes. Cada NF possui um número único, a data de emissão. Cada NF registra de 1 a vários produtos e, para cada produto, indica-se a quantidade vendida. Em um mesma nota fiscal não se registra mais de uma vez o mesmo produto. Um produto pode estar presente em várias NF. Cada NF é emitida para um único cliente e um cliente pode ter várias NF. Deve ser possível cadastrar um produto independentemente de qualquer associação a outro dado. Crie um Diagrama Entidade-Relacionamento (DER) de modo que seja possível identificar somente os Clientes, somente os Produtos, todas as NF emitidas para um Cliente e os correspondentes Produtos adquiridos, assim como os clientes e respectivos estados. 12 67 Exercício 1 - Venda de produtos 68 Roteiro da Apresentação �� IntroduIntroduççãoão �� Linguagem SQL com BD Oracle Database 11g Express Linguagem SQL com BD Oracle Database 11g Express EditionEdition:: �� Linguagem de DefiniLinguagem de Definiçção de Dados (DDL): ão de Dados (DDL): �� CriaCriaçção de Tabelas (Create ão de Tabelas (Create TableTable)) �� AutenticaAutenticaçção no Banco de Dados Oracle Express 11gão no Banco de Dados Oracle Express 11g �� Exclusão de Tabelas (Exclusão de Tabelas (DropDrop table)table) �� Linguagem de Consulta de Dados (DML):Linguagem de Consulta de Dados (DML): �� Inserindo dados em tabelas (Inserindo dados em tabelas (InsertInsert)) �� ExercExercíício cio -- solusoluçção 1ão 1 �� ExercExercíício cio -- solusoluçção 2ão 2 69 Modelo fModelo fíísico sico -- 11 Modelo conceitual 6969
Compartilhar