CREATE TABLE DEPARTMENT( name VARCHAR(50) NOT NULL, code CHAR(5) NOT NULL, total_staff_number DECIMAL(2) NOT NULL, chair VARCHAR(50) NULL, budget DECIMAL(9,1) NOT NULL, CONSTRAINT dept_pkey PRIMARY KEY(name), CONSTRAINT dept_ckey1 UNIQUE(code), CONSTRAINT dept_ckey2 UNIQUE(chair), CONSTRAINT dept_check1 CHECK (total_staff_number BETWEEN 1 AND 50) );
CREATE TABLE COURSE(
cnum CHAR(7) NOT NULL,
title VARCHAR(200) NOT NULL,
credits DECIMAL(2) NOT NULL,
offered_by VARCHAR(50) NULL,
CONSTRAINT course_pkey PRIMARY KEY(cnum),
CONSTRAINT course_check1 CHECK (credits IN (6, 12)),
CONSTRAINT course_fkey1 FOREIGN KEY(offered_by)
REFERENCES DEPARTMENT(name) ON DELETE CASCADE );
SELECT title FROM COURSE WHERE credits = 6;
SELECT title FROM COURSE WHERE credits IN (6, 12);
SELECT title, cnum FROM COURSE WHERE UPPER(title) LIKE '%DATABASE%';
SELECT title FROM COURSE WHERE (credits = 6) AND (offered_by ='Physics');
SELECT title FROM COURSE WHERE (credits = 6) OR (offered_by ='Physics');
SELECT title FROM COURSE WHERE NOT (offered_by = 'Physics') AND (credits = 6);
SELECT title FROM COURSE WHERE (offered_by != 'Physics') AND (credits = 6);
SELECT title FROM COURSE WHERE (offered_by = 'Physics') OR (offered_by = 'Mathematics');
SELECT title
FROM COURSE
WHERE offered_by IN ('Physics', 'Mathematics');
SELECT title FROM COURSE WHERE(offered_by = 'Physics') AND (offered_by = 'Mathematics');

SELECT DISTINCT credits FROM COURSE WHERE (offered_by = 'Physics') OR (offered_by = 'Mathematics');
SELECT credits FROM COURSE WHERE offered_by = 'Physics' UNION SELECT credits FROM COURSE WHERE offered_by = 'Mathematics';
SELECT credits FROM COURSE WHERE (offered_by = 'Physics') OR (offered_by = 'Mathematics');
SELECT credits FROM COURSE WHERE offered_by = 'Physics' UNION ALL SELECT credits FROM COURSE WHERE offered_by = 'Mathematics';
SELECT DISTINCT credits
FROM COURSE
WHERE offered_by = 'Physics' AND
credits IN (SELECT credits
FROM COURSE
WHERE offered_by = 'Mathematics');
SELECT DISTINCT credits
FROM COURSE
WHERE offered_by = 'Physics' AND
credits NOT IN (SELECT credits
FROM COURSE
WHERE offered_by = 'Mathematics');

SELECT cnum, title FROM COURSE WHERE credits = 6 ORDER BY title ASC;
SELECT cnum, title FROM COURSE WHERE credits = 6 ORDER BY 2 ASC;
SELECT cnum, title FROM COURSE WHERE credits = 6 ORDER BY title DESC;
SELECT cnum, title FROM COURSE WHERE credits = 6 ORDER BY 2 DESC;
SELECT cnum, title, credits FROM COURSE ORDER BY credits ASC, title DESC;
SELECT cnum, title, credits FROM COURSE ORDER BY 3 ASC, 2 DESC;
SELECT title FROM COURSE WHERE offered_by IS NULL;
SELECT title FROM COURSE WHERE offered_by = NULL;
SELECT title FROM COURSE WHERE offered_by IS NOT NULL;
SELECT title FROM COURSE WHERE offered_by <> NULL;



SELECT DISTINCT offered_by FROM COURSE;
SELECT offered_by FROM COURSE GROUP BY offered_by;
SELECT offered_by, COUNT(*) FROM COURSE GROUP BY offered_by;
+---------+------------+---------+------------------+ | cnum | title | credits | offered_by | +---------+------------+---------+------------------+ | CSCI111 | C++ | 6 | Computer Science | | PHYS312 | Relativity | 6 | Physics | | MATH111 | Calculus | 12 | Mathematics | | CSCI235 | Databases | 6 | Computer Science | | MECH111 | Mechanics | 12 | Physics | +---------+------------+---------+------------------+
SELECT offered_by, COUNT(*) FROM COURSE GROUP BY offered_by;
+---------+------------+---------+------------------+ | cnum | title | credits | offered_by | +---------+------------+---------+------------------+ | CSCI111 | C++ | 6 | Computer Science | | CSCI235 | Databases | 6 | Computer Science | | MATH111 | Calculus | 12 | Mathematics | | MECH111 | Mechanics | 12 | Physics | | PHYS312 | Relativity | 6 | Physics | +---------+------------+---------+------------------+
SELECT offered_by, COUNT(*) FROM COURSE GROUP BY offered_by;
+------------------+----------+ | offered_by | count(*) | +------------------+----------+ | Computer Science | 2 | | Mathematics | 1 | | Physics | 2 | +------------------+----------+
SELECT credits, COUNT(*) FROM COURSE GROUP BY credits;
SELECT offered_by, SUM(credits) FROM COURSE GROUP BY offered_by;
SELECT MAX(total)
FROM (SELECT COUNT(*) total
FROM COURSE
GROUP BY offered_by) T;
SELECT offered_by, COUNT(*) FROM COURSE GROUP BY offered_by;
+------------------+----------+ | offered_by | count(*) | +------------------+----------+ | Computer Science | 2 | | Mathematics | 1 | | Physics | 2 | +------------------+----------+
SELECT offered_by, count(*) FROM COURSE GROUP BY offered_by HAVING count(*) > 1;
+------------------+----------+ | offered_by | count(*) | +------------------+----------+ | Computer Science | 2 | | Physics | 2 | +------------------+----------+