Last active
October 3, 2018 01:10
-
-
Save m1k3yfoo/608233f6ee56d5bc61482c54e03d0a88 to your computer and use it in GitHub Desktop.
[Oracle SQL Exercise 1] #Oracle #SQL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--1. | |
SET AUTO OFF; | |
DROP TABLE TOY_STORE_1579349 CASCADE CONSTRAINTS; | |
DROP TABLE TOY_DTLS_1579349 CASCADE CONSTRAINTS; | |
DROP TABLE TOY_REL_1579349 CASCADE CONSTRAINTS; | |
DROP SEQUENCE TOY_STORE_SN_1579349; | |
DROP SEQUENCE TOY_DTLS_SN_1579349; | |
CREATE TABLE TOY_STORE_1579349 | |
( | |
TOY_STORE_ID NUMBER(3) PRIMARY KEY, | |
TOY_STORE_NAME VARCHAR2(30) NOT NULL, | |
CITY VARCHAR2(30) DEFAULT 'Delhi', | |
PHONENUMBER NUMBER(10) UNIQUE NOT NULL, | |
STORE_OPENING_TIME TIMESTAMP CHECK(EXTRACT(MINUTE FROM STORE_OPENING_TIME) >= 0 AND (EXTRACT(HOUR FROM STORE_OPENING_TIME)) >= 8), | |
STORE_CLOSING_TIME TIMESTAMP CHECK(EXTRACT(HOUR FROM STORE_CLOSING_TIME) < 22) | |
); | |
--3. | |
INSERT INTO TOY_STORE_1579349 VALUES(1, 'Kid''s Cave', 'Delhi', 9912312312, TO_TIMESTAMP('09:10:12', 'HH24:MI:SS'), TO_TIMESTAMP('21:42:05', 'HH24:MI:SS')); | |
INSERT INTO TOY_STORE_1579349 VALUES(2, 'Kid''s Corner', 'Mumbai', 9912312313, TO_TIMESTAMP('09:00:00', 'HH24:MI:SS'), TO_TIMESTAMP('20:00:00', 'HH24:MI:SS')); | |
INSERT INTO TOY_STORE_1579349 VALUES(3, 'Play and Grow', 'Mumbai', 9912312301, TO_TIMESTAMP('09:00:00', 'HH24:MI:SS'), TO_TIMESTAMP('20:00:00', 'HH24:MI:SS')); | |
INSERT INTO TOY_STORE_1579349 VALUES(4, 'Puzzles and More', 'Delhi', 8112312301, TO_TIMESTAMP('08:15:00', 'HH24:MI:SS'), TO_TIMESTAMP('20:00:00', 'HH24:MI:SS')); | |
INSERT INTO TOY_STORE_1579349 VALUES(5, 'Uncle Sam Toys Den', 'Delhi', 8112312314, TO_TIMESTAMP('08:01:00', 'HH24:MI:SS'), TO_TIMESTAMP('20:00:00', 'HH24:MI:SS')); | |
INSERT INTO TOY_STORE_1579349 VALUES(6, 'Mickey Toys', 'Delhi', 8222312301, TO_TIMESTAMP('09:00:00', 'HH24:MI:SS'), TO_TIMESTAMP('20:00:00', 'HH24:MI:SS')); | |
CREATE TABLE TOY_DTLS_1579349 | |
( | |
TOY_ID NUMBER(4), | |
TOY_NAME VARCHAR2(30), | |
TOY_PRICE NUMBER(7,2), | |
DISCOUNT_PERCENT NUMBER(5,2), | |
AGEGROUP NUMBER(3) default 5, | |
TOY_RATING NUMBER(1), | |
TOY_CATEGORY CHAR(1), | |
TOY_PIC BLOB | |
); | |
--2. | |
CREATE SEQUENCE TOY_STORE_SN_1579349; | |
CREATE SEQUENCE TOY_DTLS_SN_1579349; | |
ALTER TABLE TOY_DTLS_1579349 ADD | |
( | |
CONSTRAINT pk_1 PRIMARY KEY(TOY_ID), | |
CONSTRAINT uc1_ UNIQUE(TOY_NAME), | |
CONSTRAINT chk_TOY_NAME CHECK(TOY_NAME IS NOT NULL), | |
CONSTRAINT chk_TOY_PRICE CHECK(TOY_PRICE > 10 AND TOY_PRICE IS NOT NULL), | |
CONSTRAINT chk_DISCOUNT_PERCENT CHECK(DISCOUNT_PERCENT < 90), | |
CONSTRAINT chk_TOY_RATING CHECK(TOY_RATING BETWEEN 1 AND 5), | |
CONSTRAINT chk_TOY_CATEGORY CHECK(TOY_CATEGORY IN ('I', 'O', 'B', 'Indoor', 'Outdoor', 'Both')) | |
); | |
--4. | |
INSERT INTO TOY_DTLS_1579349 VALUES(1, 'Bat', 500, NULL, 5, NULL, NULL, NULL); | |
INSERT INTO TOY_DTLS_1579349 VALUES(2, 'Ball', 50, NULL, 5, NULL, 'o', NULL); | |
INSERT INTO TOY_DTLS_1579349 VALUES(3, 'Brainvita', 250, 2, 10, 5, 'I', NULL); | |
INSERT INTO TOY_DTLS_1579349 VALUES(4, 'Scrabble', 100, 80, 15, 1, 'I', NULL); | |
INSERT INTO TOY_DTLS_1579349 VALUES(5, 'Snakes and Ladders', 40, 0, 5, 2, 'I', NULL); | |
SAVEPOINT S1; | |
COMMIT; | |
INSERT INTO TOY_DTLS_1579349 VALUES(6, 'Chess', 50, 5, 10, 4, 'I', NULL); | |
INSERT INTO TOY_DTLS_1579349 VALUES(7, 'Basket Ball', 150, 5, 10, 4, 'I', NULL); | |
INSERT INTO TOY_DTLS_1579349 VALUES(8, 'Volley Ball', 150, 5, 10, 4, 'o', NULL); | |
INSERT INTO TOY_DTLS_1579349 VALUES(9, 'Ping pong Ball', 30, 2, 5, 2, 'b', NULL); | |
INSERT INTO TOY_DTLS_1579349 VALUES(10, 'Skates', 450, NULL, 10, 3, 'o', NULL); | |
SAVEPOINT S1; | |
COMMIT; | |
INSERT INTO TOY_DTLS_1579349 VALUES(11, 'Racing _-_ cars', 50, NULL, 5, 3, 'I', NULL); | |
CREATE TABLE TOY_REL_1579349 | |
( | |
TOY_ID NUMBER(4), | |
TOY_STORE_ID NUMBER(3), | |
IN_STOCK CHAR(1) DEFAULT 'N' CHECK(IN_STOCK IN ('Y', 'N')), | |
AVAILABLE_QTY NUMBER(3) DEFAULT 0, | |
PRIMARY KEY(TOY_ID, TOY_STORE_ID), | |
CONSTRAINT fk_RelDtls FOREIGN KEY(TOY_ID) REFERENCES TOY_DTLS_1579349, | |
CONSTRAINT fk_RelStore FOREIGN KEY(TOY_STORE_ID) REFERENCES TOY_STORE_1579349 | |
); | |
--4. | |
INSERT INTO TOY_REL_1579349 VALUES(1, 1, 'N', 0); | |
INSERT INTO TOY_REL_1579349 VALUES(2, 2, 'Y', 4); | |
INSERT INTO TOY_REL_1579349 VALUES(3, 2, 'Y', 6); | |
INSERT INTO TOY_REL_1579349 VALUES(1, 4, 'N', 0); | |
INSERT INTO TOY_REL_1579349 VALUES(3, 4, 'Y', 12); | |
SAVEPOINT S1; | |
COMMIT; | |
INSERT INTO TOY_REL_1579349 VALUES(4, 4, 'N', 0); | |
INSERT INTO TOY_REL_1579349 VALUES(5, 5, 'Y', 4); | |
INSERT INTO TOY_REL_1579349 VALUES(6, 6, 'Y', 6); | |
INSERT INTO TOY_REL_1579349 VALUES(7, 1, 'N', 0); | |
INSERT INTO TOY_REL_1579349 VALUES(8, 2, 'Y', 12); | |
SAVEPOINT S1; | |
COMMIT; | |
INSERT INTO TOY_REL_1579349 VALUES(9, 3, 'N', 0); | |
INSERT INTO TOY_REL_1579349 VALUES(10, 4, 'Y', 4); | |
INSERT INTO TOY_REL_1579349 VALUES(6, 5, 'Y', 6); | |
INSERT INTO TOY_REL_1579349 VALUES(7, 6, 'N', 0); | |
INSERT INTO TOY_REL_1579349 VALUES(8, 4, 'Y', 12); | |
SAVEPOINT S1; | |
COMMIT; | |
INSERT INTO TOY_REL_1579349 VALUES(4, 4, 'Y', 16); | |
SAVEPOINT S1; | |
--5. | |
UPDATE TOY_REL_1579349 SET IN_STOCK = 'N', AVAILABLE_QTY = 0 WHERE TOY_STORE_ID = 1 OR TOY_ID = 1; | |
SAVEPOINT S2; | |
--6. | |
INSERT INTO TOY_REL_1579349 VALUES(11, 6, 'Y', 1); | |
--SELECT td.TOY_ID, ts.TOY_STORE_ID, TOY_PRICE FROM TOY_REL_1579349 tr | |
-- JOIN TOY_STORE_1579349 ts ON tr.TOY_STORE_ID = ts.TOY_STORE_ID | |
-- JOIN TOY_DTLS_1579349 td ON tr.TOY_ID = td.TOY_ID | |
--WHERE TOY_STORE_NAME = 'Mickey Toys' OR TOY_NAME = 'Racing _-_ cars'; | |
DELETE FROM ( | |
SELECT td.TOY_ID, ts.TOY_STORE_ID, TOY_PRICE FROM TOY_REL_1579349 tr | |
JOIN TOY_STORE_1579349 ts ON tr.TOY_STORE_ID = ts.TOY_STORE_ID | |
JOIN TOY_DTLS_1579349 td ON tr.TOY_ID = td.TOY_ID | |
WHERE TOY_STORE_NAME = 'Mickey Toys' OR TOY_NAME = 'Racing _-_ cars' | |
); | |
SAVEPOINT S3; | |
--7. | |
--ROLLBACK TO S1; | |
--ROLLBACK TO S2; | |
--8. | |
--SELECT td.TOY_ID, ts.TOY_STORE_ID, TOY_PRICE FROM TOY_REL_1579349 tr | |
-- JOIN TOY_STORE_1579349 ts ON tr.TOY_STORE_ID = ts.TOY_STORE_ID | |
-- JOIN TOY_DTLS_1579349 td ON tr.TOY_ID = td.TOY_ID | |
-- WHERE TOY_STORE_NAME = 'Puzzles and More'; | |
UPDATE ( | |
SELECT td.TOY_ID, TOY_PRICE FROM TOY_REL_1579349 tr | |
JOIN TOY_STORE_1579349 ts ON tr.TOY_STORE_ID = ts.TOY_STORE_ID | |
JOIN TOY_DTLS_1579349 td ON tr.TOY_ID = td.TOY_ID | |
WHERE TOY_STORE_NAME = 'Puzzles and More' | |
) | |
SET TOY_PRICE = TOY_PRICE*1.05; | |
--9. | |
SET AUTO ON; | |
UPDATE TOY_STORE_1579349 SET | |
STORE_OPENING_TIME = LOCALTIMESTAMP, | |
STORE_CLOSING_TIME = LOCALTIMESTAMP; | |
SELECT STORE_OPENING_TIME, STORE_CLOSING_TIME FROM TOY_STORE_1579349; | |
--10. | |
ALTER TABLE TOY_REL_1579349 | |
ADD SOLD_QUANTITY NUMBER(3); | |
--11. | |
ALTER TABLE TOY_REL_1579349 MODIFY (SOLD_QUANTITY DEFAULT 0); | |
--12. | |
ALTER TABLE TOY_REL_1579349 MODIFY (SOLD_QUANTITY NUMBER(5)); | |
--13. | |
UPDATE TOY_REL_1579349 SET SOLD_QUANTITY = ROWNUM; | |
SELECT SOLD_QUANTITY, ROWNUM FROM TOY_REL_1579349; | |
--14. | |
ALTER TABLE TOY_REL_1579349 MODIFY (SOLD_QUANTITY DEFAULT NULL); | |
--15. | |
ALTER TABLE TOY_REL_1579349 DROP COLUMN SOLD_QUANTITY; | |
--16. | |
ALTER TABLE TOY_REL_1579349 DROP CONSTRAINT fk_RelDtls; | |
ALTER TABLE TOY_REL_1579349 DROP CONSTRAINT fk_RelStore; | |
ALTER TABLE TOY_REL_1579349 ADD ( | |
CONSTRAINT fk_RelDtls FOREIGN KEY(TOY_ID) | |
REFERENCES TOY_DTLS_1579349 | |
ON DELETE CASCADE, | |
CONSTRAINT fk_RelStore FOREIGN KEY(TOY_STORE_ID) | |
REFERENCES TOY_STORE_1579349 | |
ON DELETE CASCADE | |
); | |
--17. | |
ALTER TABLE TOY_REL_1579349 DISABLE CONSTRAINT fk_RelStore; | |
TRUNCATE TABLE TOY_STORE_1579349; | |
--ALTER TABLE TOY_REL_1579349 ENABLE CONSTRAINT fk_RelStore; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment