Skip to content

Commit 1fbd9ed

Browse files
committed
Adding class12
1 parent d9c5333 commit 1fbd9ed

File tree

3 files changed

+141
-53
lines changed

3 files changed

+141
-53
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
-- FUNÇÕES PARA MANIPULAÇÃO DE DADOS NUMÉRICOS
2+
3+
ABS() -- retorna o valor absoluto de um número.
4+
5+
SELECT ABS(-50), ABS(-1200) FROM DUAL;
6+
7+
UPDATE PRODUTO SET vlr_produto = -1.50 WHERE id_produto = 1;
8+
9+
SELECT nom_produto, ABS(vlr_produto) vlr_produto from PRODUTO;
10+
11+
SELECT nom_produto, vlr_produto FROM PRODUTO;
12+
13+
14+
CEIL() -- retorna o maior inteiro.
15+
SELECT CEIL(-10.4), CEIL(-9.9), CEIL(9.9) FROM DUAL;
16+
17+
18+
FLOOR() -- retorna o maior inteiro menor ou igual ao valor informado (n).
19+
SELECT FLOOR(-10.4), FLOOR(-9.9), FLOOR(9.9) FROM DUAL;
20+
21+
22+
MOD() -- retorna o resto da divisão, ou seja, função módulo.
23+
24+
-- Sintaxe:
25+
MOD(n1, n2) -- retorna o resto da divisão de n1 por n2.
26+
27+
SELECT MOD(9, 2) RESTO FROM DUAL;
28+
29+
30+
POWER() -- retorna a exponenciação de um número a potência de outro.
31+
SELECT POWER(3, 3) RESULTADO FROM DUAL
32+
33+
34+
TRUNC() -- truncar um número, ou seja, eliminar casas decimais.
35+
36+
UPDATE PRODUTO SET vlr_produto = 8.50333 WHERE id_produto = 1;
37+
38+
SELECT TRUNC(10.50333,3) FROM DUAL;
39+
SELECT TRUNC(vlr_produto) FROM PRODUTO;
40+
41+
42+
ROUND() -- arredondamento de um número, pode-se informar a quantidade de dígitos de precisão (casas decimais).
43+
44+
SELECT ROUND(10.50833, 2) FROM DUAL;
45+
SELECT ROUND(10.50333, 2) FROM DUAL;
46+
47+
48+
SIGN() -- retorna 1 se o valor for positivo, -1 se o valor for negativo e retorna 0 se o valor for zero
49+
50+
SELECT SIGN(-1000) NEGATIVO, SIGN(1000) POSITIVO, SIGN(0) ZERO FROM DUAL;
51+
52+
53+
54+
-- FUNÇÕES PARA MANIPULAÇÃO DE DATAS
55+
56+
MONTHS_BETWEEN(data1, data2) -- RETORNA
57+
58+
ALTER TABLE CLIENTE ADD dtn_cliente DATE;
59+
60+
SELECT cod_cliente, nom_cliente FROM CLIENTE;
61+
62+
UPDATE CLIENTE SET dtn_cliente = TO_DATE('10/07/1978','DD/MM/YYYY');
63+
64+
SELECT MONTHS_BETWEEN(SYSDATE, dtn_cliente) FROM CLIENTE;
65+
SELECT MONTHS_BETWEEN(SYSDATE, dtn_cliente) / 12 FROM CLIENTE;
66+
67+
-- Mostrar a idade dos clientes
68+
SELECT TRUNC(MONTHS_BETWEEN(SYSDATE, dtn_cliente) / 12) IDADE FROM CLIENTE;
69+
70+
SELECT SYSDATE FROM DUAL;

exam_2020_05_21_parcial.sql

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ CREATE TABLESPACE "VIAGEM828507"
1111
DATAFILE 'C:\app\Wesley\product\18.0.0\oradata\XE\viagem828507.dbf'
1212
SIZE 10M;
1313

14+
COMMIT;
15+
1416
SELECT TABLESPACE_NAME from DBA_TABLESPACES;
1517

1618

@@ -27,6 +29,8 @@ TEMPORARY TABLESPACE "TEMP"
2729
ACCOUNT UNLOCK
2830
PROFILE DEFAULT;
2931

32+
COMMIT;
33+
3034
SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE
3135
FROM DBA_USERS
3236
WHERE USERNAME = '828507AVP';
@@ -36,6 +40,8 @@ WHERE USERNAME = '828507AVP';
3640
-- 3. Elaborar um script para atribuir o direito de administrador de banco de dados (DBA) ao usuário criado anteriormente (0.50 ponto);
3741
GRANT DBA TO "828507AVP" WITH ADMIN OPTION;
3842

43+
COMMIT;
44+
3945
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE LIKE '828507AVP';
4046
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = '828507AVP';
4147

@@ -65,7 +71,7 @@ CREATE TABLE TELEFONE(
6571
num_telefone NUMBER,
6672
ddd_telefone NUMBER,
6773
CONSTRAINT pk_telefone PRIMARY KEY (cod_cliente), -- Esta chave primária, é um identificador único da tabela, ela será utilizada também como referência em outra tabela caso necessário.
68-
CONSTRAINT fk__telefonecliente FOREIGN KEY (cod_cliente) REFERENCES CLIENTE -- Esta chave estrangeira faz referencia a um cliente já existente, é uma forma de referenciar duas tabelas informando que o cliente tem um ou mais telefones.
74+
CONSTRAINT fk_telefone_cliente FOREIGN KEY (cod_cliente) REFERENCES CLIENTE -- Esta chave estrangeira faz referencia a um cliente já existente, é uma forma de referenciar duas tabelas informando que o cliente tem um ou mais telefones.
6975
);
7076

7177
CREATE TABLE CIDADE(
@@ -85,7 +91,8 @@ CREATE TABLE HOTEL(
8591
cod_hotel INTEGER, -- (PK)
8692
id_classific_hotel INTEGER, -- (FK)
8793
nom_hotel VARCHAR(30),
88-
CONSTRAINT pk_hotel PRIMARY KEY (cod_hotel) -- Esta chave primária, é um identificador único da tabela, ela será utilizada também como referência em outra tabela caso necessário.
94+
CONSTRAINT pk_hotel PRIMARY KEY (cod_hotel), -- Esta chave primária, é um identificador único da tabela, ela será utilizada também como referência em outra tabela caso necessário.
95+
CONSTRAINT fk_pacote_hotel FOREIGN KEY (id_classific_hotel) REFERENCES HOTEL -- Esta chave estrangeira faz referencia a um hotel já existente, é uma forma de referenciar duas tabelas.
8996
);
9097

9198
CREATE TABLE PACOTE(
@@ -115,6 +122,8 @@ CREATE TABLE CONTRATO_VIAGEM(
115122
CONSTRAINT fk_contrato_viagem_agente FOREIGN KEY (cod_agente) REFERENCES AGENTE -- Esta chave estrangeira faz referencia a um agente já existente, é uma forma de referenciar duas tabelas.
116123
);
117124

125+
COMMIT;
126+
118127

119128
----------
120129
-- 5. Elaborar script para gerar as sequências para gerenciar o código do cliente, o código do agente,
@@ -152,6 +161,8 @@ NOCYCLE;
152161
-- Nestas sequencias, quando utilizadas no registro de algum elemento na tabela, iniciará em 1, será incrementado por 1 e seu valor mínimo é 1,
153162
-- e máximo determinado de acordo com os tipos de tabela, variando de 99 ou 9999, e com uma sequencia não cíclica.
154163

164+
COMMIT;
165+
155166

156167
----------
157168
-- 6. Elaborar script para adicionar na tabela CLIENTE os atributos DTN_CLIENTE DATE e EMAIL_CLIENTE VARCHAR2(50) (0.5 ponto).
@@ -162,6 +173,8 @@ ALTER TABLE CLIENTE
162173
ADD dtn_cliente DATE; -- (JÁ É CRIADO NA CRIAÇÃO DAS TABELAS)
163174
-- Estes comandos alteram uma tabela específica, adicionando um novo atributo a ela.
164175

176+
COMMIT;
177+
165178

166179
----------
167180
-- 7. Elaborar o script para inserir o cadastro de um cliente, sendo você o cliente (1.0 ponto).
@@ -178,11 +191,13 @@ VALUES (
178191
179192
);
180193

194+
COMMIT;
195+
181196

182197
-- 8. Mostrar quantos hotéis são da classificação “5 estrelas” (1.0 ponto).
183198
SELECT CH.dsc_classificacao HOTEIS, COUNT(H.cod_hotel) QTD
184199
FROM CLASSIFIC_HOTEL CH, HOTEL H WHERE H.id_classific_hotel = CH.id_classific_hotel
185-
GROUP BY CH.dsc_classificacao HAVING CH.dsc_classificacao = '5 estrela';
200+
GROUP BY CH.dsc_classificacao HAVING CH.dsc_classificacao = '5 estrelas';
186201
-- Neste comando foi utilizado alguns aliases como por exemplo:
187202
-- - HOTEIS e QTD: são aliases de coluna para que seja melhor identificado o que que é cada coluna do resultado da consulta.
188203
-- - CH e H: é um aliase da tabela CLASSIFIC_HOTEL e da HOTEL, respectivamente, para que na refenciação dos atributos do comando, sejá mais organizado e facilite o entendimento.

exam_parcial_database_inserts.sql

Lines changed: 53 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,57 @@
1+
-- AGENTE
2+
CREATE SEQUENCE seq_num_agente
3+
START WITH 1
4+
INCREMENT BY 1
5+
NOCYCLE;
6+
7+
-- HOTEL
8+
CREATE SEQUENCE seq_num_hotel
9+
START WITH 1
10+
INCREMENT BY 1
11+
NOCYCLE;
12+
13+
-- CLASSIFIC HOTEL
14+
CREATE SEQUENCE seq_num_classific_hotel
15+
START WITH 1
16+
INCREMENT BY 1
17+
NOCYCLE;
18+
19+
-- CIDADE
20+
CREATE SEQUENCE seq_num_cidade
21+
START WITH 1
22+
INCREMENT BY 1
23+
NOCYCLE;
24+
25+
SELECT TABLE_NAME FROM USER_TABLES;
26+
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS;
27+
28+
DROP SEQUENCE seq_cod_agente;
29+
DROP SEQUENCE seq_cod_cliente;
30+
DROP SEQUENCE seq_num_pacote;
31+
DROP SEQUENCE seq_num_contrato;
32+
33+
DROP TABLE CONTRATO_VIAGEM;
34+
DROP TABLE PACOTE;
35+
DROP TABLE HOTEL;
36+
DROP TABLE CLASSIFIC_HOTEL;
37+
DROP TABLE CIDADE;
38+
DROP TABLE TELEFONE;
39+
DROP TABLE CLIENTE;
40+
DROP TABLE AGENTE;
41+
42+
SELECT * FROM CLIENTE;
43+
SELECT * FROM TELEFONE;
44+
SELECT * FROM AGENTE;
45+
SELECT * FROM CLASSIFIC_HOTEL;
46+
SELECT * FROM HOTEL;
47+
SELECT * FROM PACOTE;
48+
SELECT * FROM CONTRATO_VIAGEM;
49+
50+
51+
52+
153
-- 'cod_cliente', nom_cliente. dtn_cliente, email_cliente
2-
-- INSERT INTO CLIENTE VALUES (1, 'Client 1', TO_DATE('1995-06-06', 'YYYY-MM-DD'), '[email protected]');
54+
INSERT INTO CLIENTE VALUES (1, 'Client 1', TO_DATE('1995-06-06', 'YYYY-MM-DD'), '[email protected]');
355
INSERT INTO CLIENTE VALUES (2, 'Client 2', TO_DATE('1990-06-06', 'YYYY-MM-DD'), '[email protected]');
456
INSERT INTO CLIENTE VALUES (3, 'Client 3', TO_DATE('1980-06-06', 'YYYY-MM-DD'), '[email protected]');
557
INSERT INTO CLIENTE VALUES (4, 'Client 4', TO_DATE('1980-06-06', 'YYYY-MM-DD'), '[email protected]');
@@ -120,52 +172,3 @@ INSERT INTO CONTRATO_VIAGEM VALUES (27, 3, 2, 2, TO_DATE('2020-10-07', 'YYYY-MM-
120172
INSERT INTO CONTRATO_VIAGEM VALUES (28, 15, 4, 4, TO_DATE('2020-12-07', 'YYYY-MM-DD'), 'S');
121173
INSERT INTO CONTRATO_VIAGEM VALUES (29, 1, 3, 3, TO_DATE('2020-09-07', 'YYYY-MM-DD'), 'S');
122174
INSERT INTO CONTRATO_VIAGEM VALUES (30, 11, 1, 1, TO_DATE('2020-08-07', 'YYYY-MM-DD'), 'S');
123-
124-
-- AGENTE
125-
CREATE SEQUENCE seq_num_agente
126-
START WITH 1
127-
INCREMENT BY 1
128-
NOCYCLE;
129-
130-
-- HOTEL
131-
CREATE SEQUENCE seq_num_hotel
132-
START WITH 1
133-
INCREMENT BY 1
134-
NOCYCLE;
135-
136-
-- CLASSIFIC HOTEL
137-
CREATE SEQUENCE seq_num_classific_hotel
138-
START WITH 1
139-
INCREMENT BY 1
140-
NOCYCLE;
141-
142-
-- CIDADE
143-
CREATE SEQUENCE seq_num_cidade
144-
START WITH 1
145-
INCREMENT BY 1
146-
NOCYCLE;
147-
148-
SELECT TABLE_NAME FROM USER_TABLES;
149-
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS;
150-
151-
DROP SEQUENCE seq_cod_agente;
152-
DROP SEQUENCE seq_cod_cliente;
153-
DROP SEQUENCE seq_num_pacote;
154-
DROP SEQUENCE seq_num_contrato;
155-
156-
DROP TABLE CONTRATO_VIAGEM;
157-
DROP TABLE PACOTE;
158-
DROP TABLE HOTEL;
159-
DROP TABLE CLASSIFIC_HOTEL;
160-
DROP TABLE CIDADE;
161-
DROP TABLE TELEFONE;
162-
DROP TABLE CLIENTE;
163-
DROP TABLE AGENTE;
164-
165-
SELECT * FROM CLIENTE;
166-
SELECT * FROM TELEFONE;
167-
SELECT * FROM AGENTE;
168-
SELECT * FROM CLASSIFIC_HOTEL;
169-
SELECT * FROM HOTEL;
170-
SELECT * FROM PACOTE;
171-
SELECT * FROM CONTRATO_VIAGEM;

0 commit comments

Comments
 (0)