im currently working on an sql database homework for a
fundamentals class but im not too sure if my results are alright
and would like to compare results, the assignment is as
follows:
SOLUTION
The solution has been executed in Oracle Live SQL Schema.
QUESTION 1:
--DROP TABLE --
DROP TABLE ASSIGNED_EQUIPMENT_TB;
DROP TABLE WORKERS_TB;
DROP TABLE EQUIPMENT_TB;
--CREATE TABLE --
CREATE TABLE EQUIPMENT_TB(SERIAL_NUMBER INT PRIMARY KEY, BRAND CHAR(10) NOT NULL, MODEL CHAR(15) NOT NULL, PROCESSOR CHAR(15),
PROCESSOR_VELOCITY NUMBER(3,2) NOT NULL, MEMORY CHAR(7) NOT NULL, HARD_DISK CHAR(6) NOT NULL);
CREATE TABLE WORKERS_TB(WORKER_ID INT PRIMARY KEY, LASTNAME CHAR(100) NOT NULL, FIRSTNAME CHAR(50) NOT NULL, DEPARTMENT INT, EMAIL CHAR(200) NOT NULL);
CREATE TABLE ASSIGNED_EQIUPMENT_TB(SERIAL_NUMBER INT, WORKER_ID INT, ASSIGNED_DATE DATE,
CONSTRAINT PK_SERIAL_WORKER PRIMARY KEY(SERIAL_NUMBER, WORKER_ID),
CONSTRAINT FK_SERIAL_NUMBER FOREIGN KEY(SERIAL_NUMBER) REFERENCES EQUIPMENT_TB(SERIAL_NUMBER),
CONSTRAINT FK_WORKER_ID FOREIGN KEY(WORKER_ID) REFERENCES WORKERS_TB(WORKER_ID));
-- INSERT DATA --
INSERT INTO EQUIPMENT_TB VALUES(00000001, 'DELL', 'OPTIPLEX 7040', 'INTEL I7-6700', 3.6, '32.0 GB', '3.0 TB');
INSERT INTO EQUIPMENT_TB VALUES(00000002, 'DELL', 'OPTIPLEX 7040', 'INTEL I7-6700', 3.6, ' ', '3.0 TB');
INSERT INTO WORKERS_TB VALUES(1, 'JOHNSON WILLIAMS', 'ROBB', 1, '[email protected]');
INSERT INTO WORKERS_TB VALUES(2, 'RIVERA LOPEZ', 'JOEL', 2, '[email protected]');
INSERT INTO ASSIGNED_EQIUPMENT_TB VALUES(00000001, 1, TO_DATE('15-JAN-20'));
INSERT INTO ASSIGNED_EQIUPMENT_TB VALUES(00000002, 2, TO_DATE('21-JAN-20'));
-- DISPLAY DATA --
SELECT * FROM EQUIPMENT_TB;
SELECT * FROM WORKERS_TB;
SELECT * FROM ASSIGNED_EQIUPMENT_TB;
QUESTION 2:
-- ADD PHONE NUMBER COLUMN TO WORKERS_TB TABLE--
ALTER TABLE WORKERS_TB ADD PHONE_NUMBER CHAR(12);
--CHECK TABLE STRUCTURE --
SELECT COLUMN_NAME, DATA_TYPE FROM ALL_TAB_COLUMNS WHERE TABLE_NAME='WORKERS_TB';
QUESTION 3:
--CREATE VIEW WORKER_EQUIPMENT_V --
CREATE VIEW WORKER_EQUIPMENT_V AS SELECT A.SERIAL_NUMBER, E.BRAND, E.MODEL, E.PROCESSOR, E.MEMORY, TRIM(W.LASTNAME)||', '|| TRIM(W.FIRSTNAME) AS "ASSIGNED TO", DEPARTMENT
FROM ASSIGNED_EQIUPMENT_TB A, WORKERS_TB W, EQUIPMENT_TB E
WHERE (A.WORKER_ID=W.WORKER_ID) AND (A.SERIAL_NUMBER = E.SERIAL_NUMBER);
--DISPLAY VIEW DATA --
SELECT * FROM WORKER_EQUIPMENT_V
QUESTION 4:
--CREATE FUNCTION BRAND_MODEL_FN--
CREATE OR REPLACE FUNCTION BRAND_MODEL_FN(BRAND CHAR, MODEL CHAR)
RETURN VARCHAR2 IS
BRAND_MODEL VARCHAR2(50);
BEGIN
BRAND_MODEL := CONCAT(CONCAT(TRIM(BRAND), ':'), MODEL);
RETURN BRAND_MODEL;
END;
/
--TEST FUNCTION BRAND_MODEL_FN --
SELECT BRAND_MODEL_FN(BRAND,MODEL) FROM EQUIPMENT_TB;
QUESTION 5:
--CREATE VIEW COMPANY_BRAND_MODEL_V --
CREATE VIEW COMPANY_BRAND_MODEL_V AS SELECT SERIAL_NUMBER, BRAND_MODEL_FN(BRAND,MODEL) AS "BRAND MODEL" FROM EQUIPMENT_TB;
--DISPLAY VIEW DATA --
SELECT * FROM COMPANY_BRAND_MODEL_V;
OUTPUT
HENCE THE SOLUTION...!
im currently working on an sql database homework for a fundamentals class but im not too...
I need help for SQL homework. the question: the code for part 1,2: drop table Customer; drop table Company; drop table Cruise; drop table TravelAgent; drop table Reservation; drop sequence customerID_seq; drop sequence cruiseID_seq; drop sequence travelAgentID_seq; drop sequence reservationID_seq; create table Customer( customerID number, firstName varchar2(15), lastName varchar2(15), address varchar2(30), phone number(10) not null, age number(3), Constraint Customer_PK Primary Key (customerID), constraint Customer_unique unique (firstName,lastName,phone), constraint Customer_check check(phone is not null) ); create sequence customerID_seq start with 1 increment...