Sunteți pe pagina 1din 2

/* Script of Statements for Lab 0.

1 */

DROP SCHEMA Class_Ex1;

CREATE SCHEMA Class_Ex1;

USE Class_Ex1;

CREATE TABLE STUDENT(


Student_id VARCHAR(6) PRIMARY KEY,
First_name VARCHAR(10),
Last_name VARCHAR(10));

CREATE TABLE COURSE(


Course_id VARCHAR(6) PRIMARY KEY,
Course_name VARCHAR(20),
Location_id NUMERIC(2));

CREATE TABLE SEMESTER_COURSE(


Student_id VARCHAR(6) NOT NULL,
Course_id VARCHAR(6) NOT NULL,
Semester NUMERIC(2),
/* This Option ensures that your cascade action is guaranteed
to work */
CONSTRAINT FOREIGN KEY Student_fk (Student_id) REFERENCES
STUDENT(Student_id) ON DELETE CASCADE,
CONSTRAINT FOREIGN KEY Course_fk (Course_id) REFERENCES
COURSE(Course_id) ON DELETE CASCADE);

/* Using this Option has the effect of not allowing a cascade


action
if the foreign key was pre-defined without the DML action. If
this is introducing foreign
keys while introducing DML action in one go the cascade will
work*/
ALTER TABLE SEMESTER_COURSE
ADD CONSTRAINT FOREIGN KEY Student_fk (Student_id) REFERENCES
STUDENT(Student_id)
ON DELETE CASCADE,

ADD CONSTRAINT FOREIGN KEY Course_fk (Course_id) REFERENCES


COURSE(Course_id)
ON DELETE CASCADE;

/* Test Data for the Cascade Action */


INSERT INTO STUDENT VALUES('01-001', 'John', 'Chambers');
INSERT INTO COURSE VALUES('CMP101', 'Intro To Logic', 03);
INSERT INTO SEMESTER_COURSE VALUES('01-001', 'CMP101', 02);
DELETE FROM STUDENT WHERE Student_id = '01-001';

/*Insert the Data into the tables:


You can enter the data per record:*/
/* STUDENT Table Data: */
INSERT INTO STUDENT VALUES('01-001', 'John', 'Chambers');
INSERT INTO STUDENT VALUES('01-002', 'William', 'Gates');
INSERT INTO STUDENT VALUES('01-003', 'Mark', 'Zukerberg');
INSERT INTO STUDENT VALUES('01-004', 'Richard', 'Branson');

/* COURSE Table Data: */


INSERT INTO COURSE VALUES('CMP101', 'Intro To Logic', 03);
INSERT INTO COURSE VALUES('CMP102', 'Parallel Programming',
05);
INSERT INTO COURSE VALUES('CMP103', 'Business Computing', 07);
INSERT INTO COURSE VALUES('CMP104', 'Social network design',
09);

/* SEMESTER_COURSE Table Data: */


INSERT INTO SEMESTER_COURSE VALUES('01-001', 'CMP101', 02);
INSERT INTO SEMESTER_COURSE VALUES('01-002', 'CMP102', 02);
INSERT INTO SEMESTER_COURSE VALUES('01-003', 'CMP101', 02);
INSERT INTO SEMESTER_COURSE VALUES('01-004', 'CMP104', 02);

/* Enter data in one INSERT statement per table: */


INSERT INTO STUDENT VALUES(
('01-001', 'John', 'Chambers'),
('01-002', 'William', 'Gates'),
('01-003', 'Mark', 'Zukerberg'),
('01-004', 'Richard', 'Branson'));

INSERT INTO COURSE VALUES(


('CMP101', 'Intro To Logic', 03),
('CMP102', 'Parallel Programming', 05),
('CMP103', 'Business Computing', 07),
('CMP104', 'Social network design', 09));

INSERT INTO SEMESTER_COURSE VALUES(


('01-001', 'CMP101', 02),
('01-002', 'CMP102', 02),
('01-003', 'CMP101', 02),
('01-004', 'CMP104', 02));

S-ar putea să vă placă și