Buscar

aula_22-23_bd_IESB_2013_1_sul_6

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais