CSCI 3410 -- Creation, Population and Conditions

Clément Aubert

February 6, 2018


/*
 * Part I  Constructing and Populating a New Example
 */

-- DROP SCHEMA HW_UNIV;
CREATE SCHEMA HW_UNIV;

USE HW_UNIV;

CREATE TABLE PROF(
    Login VARCHAR(25) PRIMARY KEY,
    Name VARCHAR(25),
    Department CHAR(5)
);

CREATE TABLE DEPARTMENT(
    Code CHAR(5) PRIMARY KEY,
    Name VARCHAR(25),
    Head VARCHAR(25),
    FOREIGN KEY (Head) REFERENCES PROF(Login)
        ON UPDATE CASCADE
);

ALTER TABLE PROF ADD FOREIGN KEY (Department) REFERENCES DEPARTMENT(Code);

CREATE TABLE STUDENT(
    Login VARCHAR(25) PRIMARY KEY,
    Name VARCHAR(25),
    Registered DATE,
    Major CHAR(5),
    FOREIGN KEY (Major) REFERENCES DEPARTMENT(Code)
);

INSERT INTO DEPARTMENT VALUES
    ('MATH', 'Mathematics', NULL),
    ('CS', 'Computer Science', NULL);
 
INSERT INTO DEPARTMENT (Code, Name) VALUES
    ('CYBR', 'Cyber Secturity');
    
INSERT INTO PROF (Login, Department, Name) VALUES
    ('caubert', 'CS', 'Clément Aubert');

INSERT INTO PROF (Login, Name, Department) VALUES
    ('aturing', 'Alan Turing', 'CS'),
    ('perdos', 'Paul Erdős', 'MATH'),
    ('bgates', 'Bill Gates', 'CYBR');

INSERT INTO STUDENT (Login, Name, Registered, Major) VALUES
    ('jrakesh', 'Jalal Rakesh', DATE'2017-12-01', 'CS'),
    ('svlatka', 'Sacnite Vlatka', '2015-03-12', 'MATH'),
    ('cjoella', 'Candice Joella', '20120212', 'CYBR'),
    ('aalyx', 'Ava Alyx', 20121011, 'CYBR');

/*
 * Part II - A First Look at Conditions
 */
 
UPDATE Department SET Head = 'aturing' WHERE Code = 'MATH';

UPDATE Department SET Head = 'bgates' WHERE Code = 'CS' OR Code = 'CYBR';

SELECT Login FROM STUDENT WHERE Major = 'CYBR';

SELECT Login, Name FROM PROF WHERE Department = 'CS';

SELECT Login FROM STUDENT WHERE Major = 'CYBR' AND Registered > DATE'20121001';

SELECT Login FROM STUDENT;

SELECT Login FROM STUDENT WHERE Name LIKE 'Ava%';

SELECT Name FROM PROF WHERE Login LIKE '_aubert';

Back ~ Code ~ Printable document