Lecture Notes for CS 142
Fall 2010
John Ousterhout
CREATE TABLE students ( id INT AUTO_INCREMENT, name VARCHAR(30), birth DATE, gpa FLOAT, grad INT, PRIMARY KEY(id));
INSERT INTO students(name, birth, gpa, grad) VALUES ('Anderson', '1987-10-22', 3.9, 2009); INSERT INTO students(name, birth, gpa, grad) VALUES ('Jones', '1990-4-16', 2.4, 2012); INSERT INTO students(name, birth, gpa, grad) VALUES ('Hernandez', '1989-8-12', 3.1, 2011); INSERT INTO students(name, birth, gpa, grad) VALUES ('Chen', '1990-2-4', 3.2, 2011);
DELETE FROM students WHERE name='Anderson';
DROP TABLE students;
SELECT * FROM students; +----+-----------+------------+------+------+ | id | name | birth | gpa | grad | +----+-----------+------------+------+------+ | 1 | Anderson | 1987-10-22 | 3.9 | 2009 | | 2 | Jones | 1990-04-16 | 2.4 | 2012 | | 3 | Hernandez | 1989-08-12 | 3.1 | 2011 | | 4 | Chen | 1990-02-04 | 3.2 | 2011 | +----+-----------+------------+------+------+
SELECT name, gpa FROM students; +-----------+------+ | name | gpa | +-----------+------+ | Anderson | 3.9 | | Jones | 2.4 | | Hernandez | 3.1 | | Chen | 3.2 | +-----------+------+
SELECT name, gpa FROM students WHERE gpa > 3.0; +-----------+------+ | name | gpa | +-----------+------+ | Anderson | 3.9 | | Hernandez | 3.1 | | Chen | 3.2 | +-----------+------+
SELECT gpa, name, grad FROM students WHERE gpa > 3.0 ORDER BY gpa DESC; +------+-----------+------+ | gpa | name | grad | +------+-----------+------+ | 3.9 | Anderson | 2009 | | 3.2 | Chen | 2011 | | 3.1 | Hernandez | 2011 | +------+-----------+------+
UPDATE students SET gpa = 2.6, grad = 2013 WHERE id = 2;
+----+----------+-----------+ | id | name | title | +----+----------+-----------+ | 1 | Fujimura | assocprof | | 2 | Bolosky | prof | +----+----------+-----------+
+----+-----------+------------+------+------+------------+ | id | name | birth | gpa | grad | advisor_id | +----+-----------+------------+------+------+------------+ | 1 | Anderson | 1987-10-22 | 3.9 | 2009 | 2 | | 2 | Jones | 1990-04-16 | 2.4 | 2012 | 1 | | 3 | Hernandez | 1989-08-12 | 3.1 | 2011 | 1 | | 4 | Chen | 1990-02-04 | 3.2 | 2011 | 1 | +----+-----------+------------+------+------+------------+
SELECT s.name, s.gpa FROM students s, advisors p WHERE s.advisor_id = p.id AND p.student = 'Fujimura'; +-----------+------+ | name | gpa | +-----------+------+ | Jones | 2.4 | | Hernandez | 3.1 | | Chen | 3.2 | +-----------+------+
+----+--------+-----------------+-------------+ | id | number | name | quarter | +----+--------+-----------------+-------------+ | 1 | CS142 | Web stuff | Winter 2009 | | 2 | ART101 | Finger painting | Fall 2008 | | 3 | ART101 | Finger painting | Winter 2009 | | 4 | PE204 | Mud wrestling | Winter 2009 | +----+--------+-----------------+-------------+
+-----------+------------+ | course_id | student_id | +-----------+------------+ | 1 | 1 | | 3 | 1 | | 4 | 1 | | 1 | 2 | | 2 | 2 | | 1 | 3 | | 2 | 4 | | 4 | 4 | +-----------+------------+
SELECT s.name, c.quarter FROM students s, courses c, courses_students cs WHERE c.id = cs.course_id AND s.id = cs.student_id AND c.number = 'ART101'; +----------+-------------+ | name | quarter | +----------+-------------+ | Jones | Fall 2008 | | Chen | Fall 2008 | | Anderson | Winter 2009 | +----------+-------------+