structured query language (sql). book relation titleauthorpublisheryearisbn...

16
Structured Query Language (SQL)

Upload: joseph-hamilton

Post on 16-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

Structured Query Language(SQL)

Page 2: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

BOOK RELATION

TITLE AUTHOR PUBLISHER YEAR ISBN

JAWS BENCHLEY HARPER 1976 003-02-0045

IT KING RANDOM HOUSE

1989 123-45-6798

HYPERION SIMMONS EOS 1990 443-27-6645

SNOW CRASH STEPHENSON RANDOM HOUSE

1992 553-24-667

Page 3: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

CREATE TABLE SYNTAXCREATE TABLE <RELATION NAME> (

<ATTRIBUTE> <TYPE> [NOT NULL],<ATTRIBUTE> <TYPE> [NOT NULL],...CONSTRAINT PRIMARY KEY (<ATTRIBUTE(S)>)[,][FOREIGN KEY (<ATTRIBUTE(S)>)

REFERENCES <RELATION> (<ATTRIBUTE(S)>)][,][FOREIGN KEY (<ATTRIBUTE(S)>)

REFERENCES <RELATION> (<ATTRIBUTE(S)>)]...

)

Page 4: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

SUPPLY DATABASE

Page 5: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

EMPLOYEE & DEPARTMENT RELATIONS

NAME SSN DNAME

BOB 1123 MAIL

MIKE 1234 MAIL

TIM 3314 SECURITY

EMPLOYEE

DNAME MGRSSN

MAIL 1123

SECURITY 3314

DEPARTMENT

Page 6: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

SQL FOR GET NAMES OF DEPARMENT MANAGERS

SELECT NAMEFROM EMPLOYEE, DEPARTMENTWHERE EMPLOYEE.SSN = DEPARTMENT.MGRSSN

Page 7: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

NAME SSN DNAME DNAME MGRSSN

BOB 1123 MAIL MAIL 1123

BOB 1123 MAIL SECURITY 3314

MIKE 1234 MAIL MAIL 1123

MIKE 1234 MAIL SECURITY 3314

TIM 3314 SECURITY MAIL 1123

TIM 3314 SECURITY SECURITY 3314

CARTESIAN PRODUCT OF FROM CLAUSE

Page 8: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

CARTESIAN PRODUCT FILTERED BY WHERE CLAUSE

NAME SSN DNAME DNAME MGRSSN

BOB 1123 MAIL MAIL 1123

TIM 3314 SECURITY SECURITY 3314

Page 9: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

PROJECT DOWN TO ATTRIBUTES IN SELECT CLAUSE

NAME

BOB

TIM

Page 10: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

Name Age Spouse Dependents

Bob 39 Becky 0

Becky 32 Bob 0

Mike 38 Carrie 0

Carrie 39 Mike 0

Kathy 34 Mark 2

Mark 34 Kathy 2

Tim 37 Stacy 0

Stacy 37 Tim 0

Pat 34 Deb 0

Deb 32 Pat 0

Jeff 34 --- 0

People

The PEOPLE Relation

Page 11: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

Name Age

Bob 39

Carrie 39

Mike 38

Stacy 37

Tim 37

Jeff 34

Pat 34

Becky 32

Deb 32

Result

SELECT Name, AgeFROM PeopleWHERE Dependents = 0ORDER BY Age DESC, Name ASC

Ordering Query Results

Page 12: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

Name Age Spouse Dependents

Bob 39 Becky 0

Carrie 39 Mike 0

Becky 32 Bob 0

Deb 32 Pat 0

Kathy 34 Mark 2

Mark 34 Kathy 2

Pat 34 Deb 0

Jeff 34 --- 0

Tim 37 Stacy 0

Stacy 37 Tim 0

Mike 38 Carrie 0

People

The PEOPLE RelationPartitioned Into Groups

SELECT Age, COUNT(*)

FROM People

GROUP BY Age

Page 13: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

S# SNAME STATUS CITY S# P# J# QTY

S1 Smith 20 London S1 P1 J1 200

S2 Jones 10 Paris S2 P3 J1 400

S3 Blake 30 Paris S3 P3 J1 200

S4 Clark 20 London --- --- --- ---

S5 Adams 30 Athens --- --- --- ---

Intermediary table for LEFT OUTER JOIN QUERY:

SELECT SNAME, P#FROM S, (SELECT * FROM SPJ WHERE J#=‘J1’) SPJ1WHERE S.S#=SPJ.S# (+)

Page 14: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

ActionDate Action Item Quantity QuantityType Cost Total PersonLEDGER

ActionDate Action Item Quantity QuantityType Cost Total PersonLEDGER_AUDIT

TRIGGERS: LEDGER and LEDGER_AUDIT TABLES

Page 15: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

create trigger ledger_updatebefore update on LEDGERfor each rowwhen ((new.Amount/old.Amount)>1.1)begininsert into LEDGER_AUDIT values (:old.ActionDate, :old.Action, :old.Item, :old.Quantity, :old.QuantityType, :old.Cost, :old.Total, :old.Person);end;

TRIGGERS: EXAMPLE

Page 16: Structured Query Language (SQL). BOOK RELATION TITLEAUTHORPUBLISHERYEARISBN JAWSBENCHLEYHARPER1976003-02-0045 ITKINGRANDOM HOUSE 1989123-45-6798 HYPERIONSIMMONSEOS1990443-27-6645

TRIGGERS: SYNTAX