All pastes #2093225 Raw Edit

Vecinu

public sql v1 · immutable
#2093225 ·published 2011-11-09 01:42 UTC
rendered paste body
1. a) COUNT(*)|---------12b)f1 f2 f3 f4|------------1  2  3  84  5  6  94  5  6  11c)f1 f2 f3 f4|------------1  2  3  84  5  6  94  5  6  117  9  |  12d)f1 f2 f3 f4|------------1  2  3  84  5  6  94  5  6  117  8  9  |e)f1 f2 f3 f4|------------1  2  3  84  5  6  94  5  6  117  8  9  |7  9  |  122.r1 | SUM(r2)|-------------3		195		2513		43. a)SELECT repId, repName, sin, nameFROM customer c NATURAL RIGHT OUTER JOIN customerRep cr NATURAL JOIN rep r;b)SELECT repName, COUNT(sin) AS customersFROM	 rep NATURAL JOIN customerRepGROUP BY repNameHAVING COUNT(sin) > 20;RA:c)d)SELECT transdate, numcustomersFROM (SELECT transdate, COUNT(sin) AS numcustomers	  FROM customer NATURAL JOIN trans NATURAL JOIN fund	  WHERE fundName = 'Energy'	  GROUP BY transdate) AS numcustomersORDER BY ASC;e)DROP TABLE Customer;CREATE TABLE Customer(	cid int PRIMARY KEY,	name char(20) NOT NULL,	address VARCHAR(20) NOT NULL);DROP TABLE Book;CREATE TABLE Book(	title char(20),	year int,	length int CHECK(length>=0),	PRIMARY KEY(title,year));	DROP TABLE Branch;CREATE TABLE Branch(	bid int PRIMARY KEY,	location varchar(20));	DROP TABLE BranchHoldings;CREATE TABLE BranchHoldings(	bid REFERENCES Branch(bid),	title REFERENCES Book(title),	year REFERENCES Book(year));	DROP TABLE Borrow;CREATE TABLE Borrow(	cid int REFERENCES Customer(cid) ON UPDATE CASCADE								 ON DELETE CASCADE,	bid int REFERENCES Book(bid) ON UPDATE CASCADE							 ON DELETE CASCADE,	title char(20) REFERENCES Book(title) ON UPDATE CASCADE								 ON DELETE CASCADE,	year int REFERENCES Book(year) ON UPDATE CASCADE							   ON DELETE CASCADE,	borrowDate DATE DEFAULT current_date,	returnDate DATE CHECK(returnDate=NULL or returnDate>borrowDate));	CREATE FUNCTION borrowMax() RETURN trigger AS $borrowMax$	DECLARE		numBorrowed RECORD;	BEGIN		SELECT INTO numBorrowed *		FROM (SELECT cid, COUNT(*)			  FROM customer NATURAL JOIN Borrow			  WHERE returnDate=NULL			  GROUP BY cid) AS numborrowed		WHERE numborrowed > 5;		IF FOUND THEN			RAISE EXCEPTION 'Customer can only borrow 5 books at one time';		END IF;		RETURN NULL;	END;$pct$ LANGUAGE plpgsql;CREATE TRIGGER borrowMax AFTER INSERT or UPDATE ON Borrow FOR EACH STATEMENT EXECUTE PROCEDURE borrowMax();