CS157a
Chris Pollett
Nov 6, 2019
Movies(title, year, length, genre, studioName, producerC#) MovieExec(name, address, cert#, netWorth)We could select on Movies to get the producerC# of the producer of Star Wars then use that number to look up the name in MovieExec for that producer.
SELECT name FROM Movies, MovieExec WHERE title = 'Star Wars' AND producerC# = cert#;
MovieStar(name, address, gender, birthdate) MovieExec(name, address, cert#, netWorth)and we want to find pairs of stars and movie execs who share an address.
SELECT MovieStar.name, MovieExec.name FROM MovieStar, MovieExec WHERE MovieStar.address = MovieExec.address;
SELECT Star1.name, Star2.name FROM MovieStar Star1, MovieStar Star2 WHERE Star1.address = Star2.address AND Star1.name < Star2.name;
LET the tuple variables in the FROM-clause range over relations R_1 , R_2, ..., R_n ; FOR each tuple t_1 in relation R_1 DO FOR each tuple t_2 in relation R_2 DO ... FOR each tuple t_n in relation R_n DO IF the WHERE-clause is satisfied when the values from t_1, t_2, ... t_n are substituted for all attribute references THEN evaluate the expressions of the SELECT-clause according to t_1, t_2, ... , t_n and produce the tuple of values that results.
(SELECT name, address FROM MovieStar WHERE gender = 'F') INTERSECT (SELECT name, address FROM MovieExec WHERE netWorth > 10000000);
Product(maker, model, type) PC(model, speed, ram, hd, price) Laptop(model, speed, ram, hd, screen, price) Printer(model, color, type, price)
SELECT name FROM Movies, MovieExec WHERE title = 'Star Wars' AND producerC# = cert#;
SELECT name FROM MovieExec WHERE cert# = (SELECT producerC# FROM Movies WHERE title = 'Star Wars' );
SELECT name FROM MovieExec WHERE cert# IN (SELECT producerC# FROM Movies WHERE (title, year) IN (SELECT movieTitle, movieYear FROM StarsIn WHERE starName = 'Harrison Ford' ) );
SELECT name FROM MovieExec, Movies, StarsIn WHERE cert# = producerC# AND title = movieTitle AND year = movieYear AND starName = 'Harrison Ford';
SELECT title FROM Movies Old WHERE year < ANY (SELECT year FROM Movies WHERE title = Old.title );