A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Exercícios SQL Marilde Santos.

Cópias: 1
SQL Structured Query Language Juliano Brito da Justa Neves PESCD – Programa de Estágio Supervisionado de Capacitação Docente.

Apresentações semelhantes


Apresentação em tema: "Exercícios SQL Marilde Santos."— Transcrição da apresentação:

1 Exercícios SQL Marilde Santos

2 Sumário Revisão SQL Restrições, Datas e mais SQL
Conjunto de slides disponibilizado por Juliano Neves. Restrições, Datas e mais SQL Exercícios Laboratório de Banco de Dados Controle acadêmico Controle bancário Dicas

3 SQL Structured Query Language
Juliano Brito da Justa Neves PESCD – Programa de Estágio Supervisionado de Capacitação Docente 2003

4 SQL Linguagem padrão para SGBDs relacionais
Motivo pelo grande sucesso dos SGBDs relacionais Linguagem de Definição de Dados (DDL) Linguagem de Manipulação de Dados (DML)

5 Esquema Agrupar tabelas e outros elementos (constraints, views...) que pertencem a mesma aplicação de banco de dados CREATE SCHEMA <esquema> AUTHORIZATION <autorização> ;

6 Esquema Esquemas no Oracle
Criar várias tabelas e views e dar permissões em uma única transação. CREATE SCHEMA AUTHORIZATION <esquema> [create_table, create_view, grant]+ ;

7 Esquema Esquemas no Oracle
O CREATE SCHEMA não cria realmente um esquema. O esquema é automaticamente criado quando um usuário é criado. Vamos utilizar um dos usuários previamente criados.

8 Oracle Conexão com o SGBD Oracle Putty SSH: falcon.comp.ufscar.br
Login: Pessoal de cada um No prompt do linux: sqlplus Login: compX  X número de 1 a 20 Senha: igual ao login

9 Estudo de Caso EQUIPE (#Codigo_Equipe,Nome_Equipe,Cidade,Estado)
JOGADOR (#Codigo_Jogador,Nome_Jogador,Posição_Jog,#Codigo_Equipe) PARTIDA (#Codigo_Partida,Cidade,Estado,Nome_Juiz,Data) JOGA (#Codigo_Jogador,#Codigo_Partida,Numero_Gols)

10 Tabelas CREATE TABLE [esquema.]tabela (
coluna1 tipo_dado [DEFAULT expr] [constraint_coluna], ... colunaN tipo_dado [DEFAULT expr] [constraint_tabela] );

11 Tipos de Dados Integer, Float, Real... Char (n) Varchar2 (n) Clob Long
Blob Raw e Long Raw Number (p,e) Date Timestamp Interval Year (p) to month Interval Day (dp) to second (sp)

12 Constraints Grupo 1 Grupo 2 CONSTRAINT nome tipo expr
NOT NULL Unique Grupo 2 Check Primary key Foreign key CONSTRAINT nome tipo expr constraint cod Primary Key constraint fcod Foreign Key references tabela(coluna) constraint chk Check (uf in (‘SP’, ‘MG’))

13 Exemplo CREATE TABLE equipe (
(#Codigo_Equipe,Nome_Equipe,Cidade,Estado) CREATE TABLE equipe ( codigo_equipe INTEGER constraint equipe_pk Primary Key, nome_equipe Varchar2(20) NOT NULL, cidade Varchar2(10), estado Varchar2(10) );

14 Exemplo JOGADOR (#Codigo_Jogador,Nome_Jogador,Posição_Jog,#Codigo_Equipe) Codigo_jogador  INTEGER Nome_jogador  Varchar2(20) Posicao_jog  Varchar2(15) Codigo_Time  INTEGER

15 Exemplo CREATE TABLE jogador (
(#Codigo_Jogador,Nome_Jogador,Posição_Jog,Codigo_equipe) CREATE TABLE jogador ( codigo_jogador INTEGER constraint jogador_pk Primary Key, nome_jogador Varchar2(20) NOT NULL, posicao_jog Varchar2(15), codigo_equipe INTEGER, constraint jogador_fk Foreign Key (codigo_equipe) references equipe(codigo_equipe) );

16 Exemplo PARTIDA (#Codigo_Partida,Cidade,Estado,Nome_Juiz,Data)
Codigo_partida  INTEGER cidade  Varchar2(10) estado  Varchar2(10) nome_juiz  Varchar2(20) data  date

17 Exemplo CREATE TABLE partida (
(#Codigo_Partida,Cidade,Estado,Nome_Juiz,Data) CREATE TABLE partida ( codigo_partida INTEGER constraint partida_pk Primary Key, cidade Varchar2(10) NOT NULL, estado Varchar2(10), nome_juiz Varchar2(20) NOT NULL, data Date );

18 Mais Constraints! ON DELETE SET NULL CASCADE SET DEFAULT ON UPDATE

19 Exemplo JOGA (#Codigo_Jogador,#Codigo_Partida,Numero_Gols)
codigo_jogador  Integer Se apagar jogador, apaga. codigo_partida  Integer Se apagar partida, apaga. numero_gols  Integer

20 Exemplo JOGA (#Codigo_Jogador,#Codigo_Partida,Numero_Gols)
CREATE TABLE joga ( codigo_jogador integer, constraint joga1_fk foreign key (codigo_jogador) references jogador(codigo_jogador) on delete cascade, codigo_partida integer, constraint joga2_fk foreign key (codigo_partida) references partida(codigo_partida) numero_gols integer );

21 Alteração de tabelas Criar, alterar ou eliminar colunas
Renomear a tabela Criar ou eliminar constraints Habilitar ou desabilitar constraints

22 Alteração de Tabelas ALTER TABLE [esquema.]tabela
[add coluna tipo_dado [DEFAULT expr] [constraint_coluna] ] [modify coluna tipo_dado [DEFAULT expr] [constraint_coluna] ] [add constraint_coluna/constraint_tabela] [drop constraint_coluna/constraint_tabela [cascade]] [enable constraint_coluna/constraint_tabela] [disable constraint_coluna/constraint_tabela] ;

23 Exemplo Alterar a tabela joga para que o valor default de Numero_gols seja 0; ALTER TABLE joga MODIFY numero_gols INTEGER DEFAULT ‘0’; Adicionar uma Primary Key em joga ALTER TABLE joga ADD constraint joga_pk Primary Key (codigo_jogador, codigo_partida);

24 Apagando Tabelas DROP TABLE [esquema.]tabela [CASDADE CONSTRAINTS];
CASCADE CONSTRAINTS elimina todas as restrições presentes em outras tabelas que façam referência à tabela que está sendo eliminada.

25 Índices Criar CREATE [UNIQUE] INDEX índice ON tabela (coluna [ASC | DESC]); UNIQUE  Índice não aceita valores repetidos. É criado um índice UNIQUE sempre que uma Primary Key é criada. Apagando o índice DROP INDEX índice;

26 Exemplo select index_name from user_indexes;
CREATE UNIQUE INDEX my_index ON partida (nome_juiz);

27 Linguagem de manipulação de dados
Inserindo dados INSERT INTO [esquema.]tabela (coluna1, coluna2, ... colunaN) VALUES (valor1, valor2 ... valorN);

28 Inserindo dados Se for inserir na mesma ordem da definição da tabela:
INSERT INTO [esquema.]tabela VALUES (valor1, ... valorN); Inserção em determinados campos INSERT INTO [esquema.]tabela (colunaX, colunaY) VALUES (valorX, valorY);

29 Exemplo Criar o time Saravá Saci Soccer
INSERT INTO equipe (codigo_equipe,nome_equipe,cidade,estado) VALUES (1,’SSS’,’São Carlos’, ‘São Paulo’); Opção INSERT INTO equipe VALUES (1, ‘SSS’, ‘São Carlos’, ‘São Paulo’);

30 Exemplo Inserir time “Tiradentes”, de Brasília, DF
INSERT INTO equipe VALUES (2,’Tiradentes’,’Brasilia’,’DF’); Inserir time “Enc97FC” INSERT INTO equipe (codigo_equipe, nome_equipe) VALUES (3,’Enc97FC’);

31 Inserindo dados Cuidados com as restrições (constraints)!
INSERT INTO JOGADOR VALUES (1,’Juliano’,’goleiro’,4); INSERT INTO equipe (codigo_equipe, nome_equipe) VALUES (4, ‘Selecao’);

32 Atualizando dados UPDATE tabela SET coluna = valor [, coluna = valor...] [WHERE condição]; Exemplo: Juliano mudou para atacante! UPDATE jogador SET posicao_jog = ‘atacante’ where codigo_jogador = 1;

33 Apagando dados DELETE [FROM] tabela [WHERE condição];
Exemplo: Apagar Enc97FC DELETE FROM equipe WHERE codigo_equipe = 3;

34 Apagando dados Cuidados com as restrições (constraints)!
DELETE FROM equipe WHERE codigo_equipe = 4; FALHA! DELETE jogador; DELETE FROM equipe WHERE codigo_equipe = 4; OK!

35 Consultando dados: SELECT
Até o final da aula! Álgebra relacional Endereço do script Execução do script sql.txt

36 Selecionando dados Forma básica: SELECT <lista de atributos>
FROM <lista de tabelas> WHERE <condição>

37 Selecionando dados SELECT [DISTINCT] {*, colunas
[AS alias], expressões, funções..} FROM {tabelas [AS alias]} [WHERE condição] [GROUP BY colunas] [HAVING condição] [ORDER BY colunas [ASC | DESC]];

38 Álgebra Relacional π(*) jogador SELECT DISTINCT * FROM jogador;
σ(posicao_jog = atacante) jogador SELECT * FROM jogador WHERE posicao_jog = ‘Atacante’;

39 Álgebra Relacional πnome_jogador(σ(posicao_jog = Atacante)Jogador)
SELECT DISTINCT nome_jogador FROM jogador where posicao_jog = ‘Atacante’; ρNome(πnome_jogador(σ(posicao_jog = Atacante)Jogador)) SELECT DISTINCT nome_jogador AS Nome FROM jogador where posicao_jog = ‘Atacante’;

40 União R1  πnome_jogador(σ(posicao_jog = Atacante)Jogador)
R2  πnome_jogador(σ(codigo_equipe = 2)Jogador) Resultado  R1 U R2 SELECT DISTINCT nome_jogador FROM jogador WHERE posicao_jog = ‘Atacante’ UNION SELECT DISTINCT nome_jogador FROM jogador WHERE codigo_equipe = 2;

41 Interseção R1  πnome_jogador(σ(posicao_jog = Atacante)Jogador)
R2  πnome_jogador(σ(codigo_equipe = 2)Jogador) Resultado  R1 ∩ R2 SELECT DISTINCT nome_jogador FROM jogador WHERE posicao_jog = ‘Atacante’ INTERSECT SELECT DISTINCT nome_jogador FROM jogador WHERE codigo_equipe = 2;

42 Subtração R1  πnome_jogador(σ(posicao_jog = Atacante)Jogador)
R2  πnome_jogador(σ(codigo_equipe = 2)Jogador) Resultado  R1 – R2 SELECT DISTINCT nome_jogador FROM jogador WHERE posicao_jog = ‘Atacante’ MINUS SELECT DISTINCT nome_jogador FROM jogador WHERE codigo_equipe = 2;

43 Produto Cartesiano R1  πnome_jogador(π(*) Jogador)
R2  πnome_equipe(π(*) Equipe) Resultado  R1 × R2 SELECT DISTINCT nome_jogador, nome_equipe FROM jogador, equipe;

44 Join (Equijoin) R1  π(*) Jogador R2  π(*) Equipe
Resultado  R1 |x|equipe.codigo_equipe = jogador.codigo_equipe R2 SELECT * FROM jogador, equipe WHERE equipe.codigo_equipe = jogador.codigo_equipe;

45 Theta Join R1  π(*) Jogador R2  π(*) Equipe
Resultado  R1 |x|equipe.codigo_equipe > jogador.codigo_equipe R2 SELECT * FROM jogador, equipe WHERE equipe.codigo_equipe > jogador.codigo_jogador;

46 Natural Join R1  πnome_jogador, codigo_equipe(π(*) Jogador)
R2  πnome_equipe, codigo_equipe(π(*) Equipe) Resultado  πnome_jogador,nome_equipe( R1 *codigo_equipe R2) SELECT DISTINCT nome_jogador, nome_equipe, codigo_equipe FROM jogador, equipe WHERE equipe.codigo_equipe = jogador.codigo_equipe;

47 Outer Join ]x| R1  πnome_jogador, codigo_equipe(π(*) Jogador)
R2  πnome_equipe, codigo_equipe(π(*) Equipe) Resultado  πnome_jogador,nome_equipe( R1 ]x|equipe.codigo_equipe = jogador.codigo_equipe R2) SELECT nome_jogador, nome_equipe FROM jogador, equipe WHERE equipe.codigo_equipe (+) = jogador.codigo_jogador;

48 Divisão Todos os jogadores que fizeram gol em partidas onde Fabio Simplicio fez gol Fabio  σnome_jogador = ‘Fabio Simplicio’(Jogador) F_Par  πcodigo_partida(Joga |x|joga.codigo_jogador = Fabio.codigo_jogador Fabio) Jog_Par  πcodigo_jogador,codigo_partida(Joga) Result  Jog_Par F_Par

49 Divisão SELECT * FROM jogador WHERE nome_jogador = ‘Fabio Simplicio’;
SELECT DISTINCT codigo_partida FROM joga WHERE codigo_jogador = 51; SELECT DISTINCT codigo_jogador, codigo_partida FROM joga; SELECT DISTINCT codigo_jogador FROM joga WHERE (codigo_partida = 1 OR codigo_partida = 5) AND (codigo_jogador != 51);

50 Outras consultas Cobrimos todos os operadores da álgebra relacional.
Veremos agora outros tipos de consultas comuns em SGBDs relacionais.

51 Consultas úteis Várias condições
SELECT nome_jogador FROM Jogador WHERE posicao_jog = ‘Goleiro’ AND codigo_equipe != 2; SELECT nome_jogador FROM Jogador WHERE posicao_jog = ‘Goleiro’ OR posicao_jog = ‘Atacante’;

52 Consultas úteis DISTINCT SELECT DISTINCT posicao_jog FROM jogador;
LIKE SELECT nome_jogador FROM jogador WHERE nome_jogador LIKE ‘%Luis%’;

53 Consultas úteis Operadores Matemáticos
SELECT codigo_partida, numero_gols * 10 FROM joga; BETWEEN SELECT codigo_jogador, nome_jogador FROM jogador WHERE codigo_jogador BETWEEN 10 AND 20;

54 Consultas úteis IN SELECT nome_jogador FROM jogador WHERE codigo_jogador IN (SELECT codigo_jogador FROM joga WHERE numero_gols = 2); ALL SELECT codigo_jogador FROM joga WHERE numero_gols > ALL (SELECT numero_gols FROM joga WHERE codigo_partida = 2);

55 Consultas úteis EXISTS
SELECT nome_jogador FROM jogador WHERE EXISTS (SELECT * FROM joga WHERE jogador.codigo_jogador = joga.codigo_jogador); NOT SELECT nome_jogador FROM jogador WHERE NOT EXISTS (SELECT * FROM joga WHERE jogador.codigo_jogador = joga.codigo_jogador);

56 Consultas úteis SUM, MAX, MIN, AVG
SELECT SUM(numero_gols), MAX(numero_gols), MIN(numero_gols), AVG(numero_gols) FROM joga; COUNT SELECT COUNT(*)FROM jogador WHERE codigo_equipe = 1;

57 Consultas úteis GROUP BY
SELECT COUNT(*), codigo_equipe FROM jogador GROUP BY codigo_equipe; HAVING SELECT COUNT(*), codigo_equipe FROM jogador GROUP BY codigo_equipe HAVING COUNT(*) > 30;

58 Consultas úteis IS [NOT] NULL
SELECT * FROM partida WHERE nome_juiz IS NULL; SELECT * FROM partida WHERE nome_juiz IS NOT NULL;

59 Exercícios (desafios)
Selecione os nomes das equipes que fizeram gols nos jogos apitados por Silvia πnome_equipe(σ(nome_juiz = ‘Silvia’)( (((Partida |x|partida.codigo_partida joga.codigo_partidaJoga) |x|codigo_jogador = jogador.codigo_jogadorJogador) |x|codigo_equipe = equipe.codigo_equipeEquipe) )

60 Exercícios (desafios)
Selecione os nomes das equipes que fizeram gols nos jogos apitados por Silvia SELECT DISTINCT nome_equipe FROM equipe e, jogador j, partida p, joga WHERE p.nome_juiz ='Silvia' AND p.codigo_partida = joga.codigo_partida AND joga.codigo_jogador = j.codigo_jogador AND j.codigo_equipe = e.codigo_equipe;

61 Exercícios (desafios)
Selecione os nomes das equipes que fizeram gols nos jogos apitados por Silvia NOME_EQUIPE Sao Paulo

62 Exercícios (desafios)
Daqueles jogadores que marcaram gols, selecione o nome daqueles que não marcaram gols em Santos SELECT DISTINCT nome_jogador FROM jogador j, joga WHERE joga.codigo_jogador = j.codigo_jogador AND j.codigo_jogador NOT IN (SELECT codigo_jogador FROM joga, partida p WHERE p.cidade = ‘Santos’ AND joga.codigo_partida = p.codigo_partida);

63 Exercícios (desafios)
Daqueles jogadores que marcaram gols, selecione o nome daqueles que não marcaram gols em Santos NOME_JOGADOR Anderson Carlos Alberto Diego Fabio Simplicio Leandro Amaral Nenem William 7 linhas selecionadas.

64 Exercícios (desafios)
Quantos gols cada equipe já fez? SELECT nome_equipe, SUM(numero_gols) FROM equipe e, joga, jogador j WHERE e.codigo_equipe = j.codigo_equipe AND j.codigo_jogador = joga.codigo_jogador GROUP BY nome_equipe;

65 Exercícios (desafios)
Quantos gols cada equipe já fez? NOME_EQUIPE SUM(NUMERO_GOLS) Corinthians Santos Sao Paulo

66 Exercícios (desafios)
Quem são, para que time jogam, os jogadores que fizeram gols em mais de um jogo? SELECT nome_jogador, nome_equipe FROM jogador j, equipe e WHERE j.codigo_equipe = e.codigo_equipe AND (SELECT COUNT(*) FROM joga WHERE j.codigo_jogador = joga.codigo_jogador) > 1;

67 Exercícios (desafios)
Quem são, para que time jogam, os jogadores que fizeram gols em mais de um jogo? NOME_JOGADOR NOME_EQUIPE Fabio Simplicio Sao Paulo Luis Fabiano Sao Paulo

68 Constraints Pode ser definido em nível de coluna ou em nível de tabela
Uma restrição representa um mecanismo capaz de implementar controles que garantam a consitência dos dados (integridade de dados e referencial). Pode ser definido em nível de coluna ou em nível de tabela Alternativa: utilização de triggers que apresentam desempenho menor mas oferecem toda a flexibilidade de uma linguagem de programação (PL/SQL).

69 Tabela de constraints null
Informa se o campo em questão pode receber valores nulos. Caso não possa deve ser precedido pela palavra not. unique Indica que os valores na coluna não podem ser repeidos. Cria um índice automaticamente. check Determina uma regra de validação (especifica que valores a coluna pode assumir). Primary key Indica a chave primária da relação. Cria um índice automaticamente. Foreign key Identifica uma chave estrangeira da tabela. Implementada pela cláusula references.

70 Check Pode-se criar regra de validação (constraint check)
Create table aluno (…. uf char(2) default ‘RJ’ constraint alunos_uf_ch check (uf in (‘SP’, ‘MG’, ‘RJ’, ‘ES’)) );

71 Foreign Key Ao definir chaves estrangeiras (foreign key)
A cláusula references informa que a tabela corrente estará relacionada com a mencionada na forma de 1 (mencionada) para N (corrente). O campo referenciado deve ser chave primária ou possuir restrição unique e ser do mesmo tipo do campo corrente. Note a impossibilidade da criação de um relacionamento N:M. O relacionamento 1:1 deve ser resolvido por programação (Triggers).

72 Alter table Para alterar a estrutura de uma tabela:
Criar, alterar ou eliminar colunas Renomear a tablea Criar ou eliminar constraints Habilitar ou desabilitar constraints

73 Sintaxe Alter table Alter table [schema.]tabela
[add (coluna tipo_dado [default expressão] [constraint_coluna, …)] [modify (coluna tipo_dado [default expressão] [constraint_coluna , …)] [rename to novo_nome_tabela] [add constraint_coluna/constraint_tabela] [drop constraint_coluna/constraint_tabela [cascade]] [enable constraint_coluna/constraint_tabela] [disable constraint_coluna/constraint_tabela];

74 Insert into O bd pode ser alimentado via aplicativos produzidos por ferramentas front-end, tais como: Oracle Forms, MS-Visual Basic ou Borland Delphi. Via SQL: Insert into [schema.]tabela Coluna1, coluna2, colunaN Values (valor1, valor2, valorN); Para os dados serem definitivamente gravados logo após alguns comandos insert emita o comando commit;

75 Select Select [distinct] {*, colunas [alias], expressões, funções,…}
From {tabelas [alias],} [Where condição] [group by colunas] [having condição] [order by colunas [asc|desc]];

76 Funções de Datas Add_months(data,n)  adiciona n meses à data
Months_between(data1, data2)  número de meses entre 2 datas Next_day(data, ‘dia_semana’)  uma data, após a data especificada, em que o dia da semana seja igual ao dia_semana. Last_day(data)  data do último dia do mês em que se encontra a variável data. Sysdate  a data corrente do servidor de BD Current_date  data corrente da sessão. Extract  permite extrair um campo de uma data (ano, mês, hora,etc)

77 Funções de conversão de dados
To_char(número ou data, ‘formato’) Converte um número ou data em uma cadeia de caracteres do tipo varchar2 com o formato definido pela variável formato To_date(char, [‘formato’]) Converte uma cadeia de caracteres, especificando uma data, no tipo date, de acordo com a variável formato. (default: DD-MM-AA)

78 Funções de conversão de dados
Select to_char(sysdate, ‘dd/mm/yy hh24:mi’) “Hoje”, to_char(sysdate+28/24, ‘dd/mmyy hh24:mi’) “Amanhã + 4 horas” Hoje Amanhã + 4 horas 25/03/04 16: /03/04 20:23

79 Funções de conversão de dados
Select * from instrutor where admissao > to_date(’ ’, ‘dd/mm/yyyy’);

80 Dicionário de Dados Prefixo user_
Consiste em um conjunto de tabelas e views que proporcionam um acesso apenas de leitura a todos os usuários de um banco de dados. Prefixo user_ Contém tosdos os objetos dos quais o usuário é proprietário. Ex.: user_objects, user_tables, user_constraints, user_tab_columns. Prefixo all_ Objetos públicos. Ex.: all_objects, all_tables, all_constraints, all_tab_columns.

81 Dicionário de Dados Dictionary (dict) Tab, cat Col
Mostra todas as tabelas e visões do dicionário de dados Tab, cat Exibem as tabelas do usuário corrente. Col Exibe as colunas das tabelas do usuário corrente

82 Dicas Pode-se criar em editor externo arquivos para criação, alimentação e consulta em tabelas (scripts) Salvar em arquivos .sql Para ativar o arquivo gerado, utilize o comando start Também é possível abrir o arquivo utilizando o SQLPlus Worksheet usando o comando Arquivo e Abrir. Todo comando SQL deve ser finalizado por ponto e vírgula (;)

83 Dicas É recomendável criar primeiro as tabelas sem constraints e depois incluí-los via alter table. Para comprovar a criação de tabelas: select * from tab; select * from cat; Para verificar como é a tabela (describe): desc <nome da tabela> Para listar todas as constraints criadas pelo usuário corrente: select constraint_name from user_constraints; Para excluir tabelas: drop table [schema.]tabela [cascade constraints]

84 Dicas O oracle possui uma tabela, de uso comum, denominada DUAL, que contém uma única coluna dummy, e uma única linha, com o valor “X”. Esta tabela é usada quando se deseja retornar um valor em uma única ocorrência, como o de uma constante ou expressão que nãos eja derivada de uma tabela de dados do usuário. select sysdate Hoje, next_day(sysdate, ‘domingo’) Domingo from dual; Hoje Domingo 26/03/ /03/04

85 Controle Acadêmico

86 Esquema Relacional Aluno(RA, cpf, nro_rg, est_rg, Prenome, Sobrenome, telefone, endereço, UF, data_matricula) Histórico(cod_turma, RA, nota_final) Turma(cod_turma, sala, cod_instrutor, cód_curso) Instrutor(código instrutor, cpf, nro_rg, est_rg, Prenome, Sobrenome, fone, admissão) Curso(cód_curso, nome, carga_horaria, preco) PreRequisito(cod_curso, pré_requisito)

87 Exemplo create table aluno
Aluno(RA, cpf, nro_rg, est_rg, Prenome, sobrenome, telefone, endereço, UF, data_matricula) create table aluno (RA number(3) constraint instr_pk primary key, cpf varchar2(11) constraint instr_cpf_nul not null, nro_rg varchar2(10) constraint inst_Nrg_nul not null, est_rg varchar2(2) constraint inst_Estrg_nul not null, prenome varchar2(15) constraint inst_pnome_nul not null, sobrenome varchar2(15) constraint inst_snome_nul not nul, fone varchar2(10), endereco varchar2(40), UF varchar2(2), data_matricula date default sysdate);

88 Exercício Fazer scripts com:
Criação de todas as tabelas Alimentação da base de dados Escrever, em português, consultas úteis a este sistema Resolver tais consultas usando SQL (de preferência fazer scripts)

89 Controle Bancário

90 cliente N possui poupança (T,D) M conta N corrente pertence 1 N 1 em
Pré Sobre rua nro CPF nome end CEP cliente N titular possui poupança aniversário (T,D) M nro conta saldo Limite crédito N corrente pertence 1 cod cod N 1 em cidade agência nome nome estado

91 1 efetua N movimento cliente N possui correntista poupança (T,D) M
Pré Sobre rua nro CodTrans tipo valor CPF nome end CEP data 1 efetua N movimento cliente hora descrição N titular possui correntista poupança aniversário (T,D) M nro conta saldo Limite crédito N corrente pertence 1 cod cod N 1 em cidade agência nome nome estado

92 Tarefas Efetuar o mapeamento para um esquema relacional
Criar tabelas no Oracle Alimentar o banco de dados Listar um conjunto de consultas interessantes para esse sistema Executar tais consultas no banco de dados

93 Tarefas Efetuar as seguintes consultas nas relações:
Listar as contas corrente conjuntas e seus respectivos correntistas onde o titular da conta tem o sobrenome “Silva” Listar a movimentação (descrição, tipo, valor, data) da(s) conta(s) corrente cujo titular é “André Silva” no período entre 01/03/2004 e 26/03/2004.


Carregar ppt "Exercícios SQL Marilde Santos."

Apresentações semelhantes


Anúncios Google