-- Drop in dependency order
DROP TABLE Enrollments CASCADE CONSTRAINTS PURGE;
DROP TABLE SchClasses CASCADE CONSTRAINTS PURGE;
DROP TABLE Students CASCADE CONSTRAINTS PURGE;
DROP TABLE Courses CASCADE CONSTRAINTS PURGE;
-- Create tables
CREATE TABLE Students (
snum NUMBER CONSTRAINT pk_students PRIMARY KEY,
sname VARCHAR2(50),
standing NUMBER CONSTRAINT ck_students_standing CHECK (standing BETWEEN 1 AND 4),
majorid VARCHAR2(15),
major_gpa NUMBER,
gpa NUMBER
);
CREATE TABLE Courses (
dept VARCHAR2(10),
cnum NUMBER CONSTRAINT pk_courses PRIMARY KEY,
ctitle VARCHAR2(100),
crhr NUMBER,
standing NUMBER
);
CREATE TABLE SchClasses (
classnum NUMBER CONSTRAINT pk_schclasses PRIMARY KEY,
cnum NUMBER NOT NULL,
class_year NUMBER,
semester VARCHAR2(10),
section NUMBER,
class_day VARCHAR2(50),
class_time VARCHAR2(50),
room VARCHAR2(50),
instructor VARCHAR2(50),
capacity NUMBER,
CONSTRAINT fk_schclasses_courses FOREIGN KEY (cnum) REFERENCES Courses(cnum)
);
CREATE TABLE Enrollments (
classnum NUMBER NOT NULL,
snum NUMBER NOT NULL,
grade VARCHAR2(10),
CONSTRAINT pk_enrollments PRIMARY KEY (classnum, snum),
CONSTRAINT fk_enrollments_schclasses FOREIGN KEY (classnum) REFERENCES SchClasses(classnum),
CONSTRAINT fk_enrollments_students FOREIGN KEY (snum) REFERENCES Students(snum)
);
-- Students
INSERT INTO Students VALUES (101, 'Andy', 4, 'IS', 2.8, 3.2);
INSERT INTO Students VALUES (102, 'Betty', 2, NULL, 3.2, NULL);
INSERT INTO Students VALUES (103, 'Cindy', 3, 'IS', 2.5, 3.5);
INSERT INTO Students VALUES (104, 'Dan', 1, 'ACCT', 3.0, 2.9);
INSERT INTO Students VALUES (105, 'Emily', 3, 'IS', 3.4, 3.6);
INSERT INTO Students VALUES (106, 'Frank', 2, 'MKT', 2.2, 2.5);
INSERT INTO Students VALUES (107, 'Grace', 4, 'IS', 3.8, 3.9);
INSERT INTO Students VALUES (108, 'Henry', 1, NULL, NULL, 2.1);
-- Courses
INSERT INTO Courses VALUES ('IS', 300, 'Intro to MIS', 3, 2);
INSERT INTO Courses VALUES ('IS', 310, 'Statistics', 3, 3);
INSERT INTO Courses VALUES ('IS', 380, 'Database Administration', 3, 3);
INSERT INTO Courses VALUES ('MKT', 320, 'Intro to Marketing', 4, 2);
INSERT INTO Courses VALUES ('IS', 480, 'Advanced Databases', 3, 4);
INSERT INTO Courses VALUES ('ACCT',301, 'Financial Accounting', 3, 2);
-- SchClasses
INSERT INTO SchClasses VALUES (10110, 300, 2025, 'Sp', 1, 'MW', '800-930', '222', 'Smith', 45);
INSERT INTO SchClasses VALUES (10115, 300, 2025, 'Sp', 2, 'MW', '900-1015', '235', 'Lee', 35);
INSERT INTO SchClasses VALUES (10112, 380, 2025, 'Fa', 1, 'TTh', '1330-1445', '122', 'Jones', 65);
INSERT INTO SchClasses VALUES (10113, 320, 2025, 'Fa', 1, 'MWF', '1000-1100', '122', 'TBA', 65);
INSERT INTO SchClasses VALUES (10120, 310, 2025, 'Sp', 1, 'TTh', '1100-1215', '305', 'Park', 40);
INSERT INTO SchClasses VALUES (10125, 480, 2026, 'Sp', 1, 'MW', '1400-1515', '210', 'Pineda',30);
INSERT INTO SchClasses VALUES (10130, 301, 2025, 'Fa', 1, 'MWF', '800-850', '150', 'Adams', 50);
INSERT INTO SchClasses VALUES (10135, 300, 2025, 'Fa', 1, 'TTh', '1500-1615', '222', 'Smith', 45);
-- Enrollments
INSERT INTO Enrollments VALUES (10110, 101, 'F');
INSERT INTO Enrollments VALUES (10110, 102, 'A');
INSERT INTO Enrollments VALUES (10113, 103, 'A');
INSERT INTO Enrollments VALUES (10120, 101, 'B');
INSERT INTO Enrollments VALUES (10112, 101, 'A');
INSERT INTO Enrollments VALUES (10115, 105, 'B');
INSERT INTO Enrollments VALUES (10120, 105, 'A');
INSERT INTO Enrollments VALUES (10130, 104, 'C');
INSERT INTO Enrollments VALUES (10135, 106, NULL);
INSERT INTO Enrollments VALUES (10125, 107, NULL);
COMMIT;