more sql statements to modify tables. library database books isbn bktitle bkprice pubid publishers...

50
More SQL More SQL Statements Statements To Modify Tables To Modify Tables

Upload: may-hutchinson

Post on 19-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

More SQL Statements More SQL Statements To Modify TablesTo Modify Tables

Page 2: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Library Database

Books ISBN bkTitle bkPrice pubID

Publishers pubID pubName pubPhone

Authors auID auName auPone

Books/Authors ISBN auID

Page 3: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

INNER JOIN Simplified in SELECT Query

SELECT bkTitle, pubNameFROM Books INNER JOIN PublishersON Books.pubID = Publishers.pubIDWHERE Books.bkPrice <= 50;

SELECT bkTitle, pubNameFROM Books, PublishersWHERE Books.pubID = Publishers.pubIDAND Books.bkPrice <= 50;

is equivalent to

Page 4: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

INNER JOIN Simplified in SELECT Query (2)SELECT bkTitle, auNameFROM Books INNER JOIN BooksAuthors INNER JOIN Authors ON BooksAuthors.auID = Authors.auIDON Books.ISBN = BooksAuthors.ISBN WHERE Books.bkPrice <= 50;

SELECT bkTitle, auNameFROM Books, BooksAuthors, AuthorsWHERE Books.ISBN = BooksAuthors.ISBNAND (BooksAuthors.auID = Authors.auIDAND (Books.bkPrice <= 50) );

is equivalent to

Page 5: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

UPDATE More Than One Column

Change the price of “Iliad” to $50 and pubID to 3.

UPDATE Books SET bkPrice = 50, pubID = 3WHERE title= ‘Iliad’;

What will result from the following statement? UPDATE Books SET bkPrice = 50;

Page 6: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

UPDATE Statement with Subquery

Raise the price of all books from publisher “Big House” by 10 %

Required Tables:Books (ISBN, bkTitle, bkPrice, pubID)Publishers (pubID, pubName, pubPhone)

Page 7: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

UPDATE Statement with Subquery

Raise the price of all books from publisher “Big House” by 10 %

UPDATE BooksSET bkPrice = bkPrice * 1.1WHERE pubID in Subquery

Note: subquery

SELECT pubIDFROM PublishersWHERE pubName = “Big House”

Page 8: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Raise the price of all books from publisher “Big House” by 10 %

UPDATE BooksSET bkPrice = bkPrice * 1.1WHERE Books.pubID in (SELECT Publishers.pubID FROM Publishers WEHRE pubName = “Big House”)

Page 9: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Alternately…

UPDATE Books INNER JOIN Publishers ON Books.pubID = Publishers.pubIDSET Books.bkPrice = Books.bkPrice * 1.1WHERE Publishers.pubName=”Big House";

Page 10: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

UPDATE with Data from Another Table

Update price column in Books table, with new prices from table NewPrices (ISBN, price).

NewPrices ISBN price

Books ISBN bkTitle bkPrice pubID

Page 11: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

UPDATE with Data from Another Table

Update price column in Books table, with new prices from table NewPrices (ISBN, price).

UPDATE Books INNER JOIN NewPricesON Books.ISBN = NewPrices.ISBNSET Books.bkPrice = NewPrices.priceWHERE Books.bkPrice <> NewPrices.price

Page 12: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Previewing Update

To check which records will be modified by the UPDATE statement…

SELECT Books.* FROM Books INNER JOIN NewPrices ON Books.ISBN = NewPrices.ISBNWHERE BOOKS.bkPrice<>NewPrices.price;

Page 13: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Your Turn

Change author “Shakespeare’s” telephone number to “123-4568”.

Reduce the price of all books from publisher “Small House” by 10%.

Raise the price of all books by author “Shakespeare” by 10%.

Page 14: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Change author Shakespear's phone number to "123-4568“.

UPDATE Authors SET auPhone = "123-4568“WHERE auName = "Shakespeare";

Page 15: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Reduce the price of all books published by "Small House" by 10%.

UPDATE Books SET Books.bkPrice = Books.bkPrice * 0.90WHERE Books.pubID IN (SELECT Publishers.pubID FROM Publishers WHERE Publishers.pubName="Small House");

Page 16: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Difference Between “IN” and “=“

WHERE Books.pubID = (single value)

But,SELECT Publishers.pubIDFROM PublishersWHERE Publishers.pubName = “XXX”OR Publishers.pubName = “YYY”

may return multiple values.

WHERE Books.pubID IN (No1, No2)same as Books.pubID = No1 OR Books.pubID = No2

Page 17: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Raise by 10% the price of all books authored by Shakespeare.

BooksISBNbkPrice

BooksAuthosISBNauID

AuthorsauIDauName

SELECT BooksAuthors.ISBNFROM BooksAuthorsWHERE BooksAuthors.auID =

UPDATE BooksSET bkPrice = bkPrice * 1.10WHERE ISBN IN

SELECT auIDFROM AuthorsWHERE auName = “Shakespeare”

Page 18: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Raise by 10% the price of all books authored by "Shakespeare”.

UPDATE Books SET Books.bkPrice = Books.bkPrice * 1.10WHERE Books.ISBN IN (SELECT BooksAuthors.ISBN FROM BooksAuthors WHERE BooksAuthors.auID = (SELECT Authors.auID FROM Authors WHERE Authors.auName = "Shakespeare“ ) );

Page 19: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Raise the price by 5% of all books by Author Shakespeare.

UPDATE BooksSET bkPrice = bkPrice * 1.05FROM Books INNER JOIN BooksAuthors INNER JOIN Authors ON BooksAuthors.auID = Authors.auIDON Books.ISBN = BooksAuthors.ISBNWHERE Authors.auName = “Shakespeare”;

Page 20: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Adding New RecordsINSERT INTO Statement

INSERT INTO TableNameVALUES (“value-1”, “value-2”, “value-3”)

INSERT INTO TableName (field-2, field-3)VALUES (“value-2”, “value-3”)

Page 21: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Adding New RecordsINSERT INTO Statement

INSERT INTO BooksVALUES (“1-1111-1111-1”, “SQL Is Fun”, 1, 25.00)

INSERT INTO Books (ISBN, Title)VALUES (“2-2222-2222-2”, “Born to Code”)

Page 22: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Your Turn

Add the following record to Books• ISBN: 1-2345-6789-0• title: SQL for Dummies• pubID: 3• price: $35.50

Add the following record to Authors• auID: 14• auName: Brando

Page 23: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Inserting from Another Table

Create a new table called NewAuthors with same fields as Authors.

Add to NewAuthors a field called new (boolean)

Add 3 new authors in NewAuthors.

Page 24: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Inserting from Another Table

To copy data from NewAuthors to Authors

INSERT into Authors (auName, auPhone) SELECT NewAuthors,auName, NewAuthors.auPhone FROM NewAuthors WHERE NewAuthors.new = true;

Page 25: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Removing RecordsDELETE Statement

SyntaxDELETE

FROM TableName

WHERE Criteria

Deletes whole records (rows)

Criteria chooses the rows to be deleted

Can delete whole table data, but not structure

Page 26: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Delete Statement (cont)

Delete the book whose ISBN is 0-12-345678-9

DELETE FROM BooksWHERE ISBN=“0-12-345678-9”

Page 27: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Delete Statement (cont)

Delete all books published by “Small House”

DELETE FROM Books WHERE Books.pubID = (Subquery to return pubID for “Small House” from Publishers table)

Page 28: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Delete Statement (cont)

Delete all books published by “Small House”

DELETE FROM Books WHERE Books.pubID = (SELECT Publishers.pubID FROM Publishers WHERE Publishers.pubName="Small House“ );

Page 29: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Your Turn

1. Delete a book titled “Born in Maui”

2. Delete all books priced $50 or above

3. Delete all books published by “Small House”

4. Delete all books written by Shakespeare

User
User
1. DELETE FROM Books WHERE title="Born in Maui"2. DELETE FROM Books WHERE price>=503. DELETE FROM Books WHERE Books.pubID in SELECT pubID FROM Publishers WHERE pubName="Small House"4. DELETE FROM Books WHERE Books.bkID in SLECT bkID FROM BooksAuthors INNER JOIN Authors ON BooksAuthors.auID=Authors.auID WHERE auName="Shakespeare'
Page 30: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Delete all books priced $50 or above.

DELETE FROM BooksWHERE bkPrice >= 50.00;

Page 31: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Delete all books published by “Small House”

DELETEFROM BooksWHERE Books.pubID IN (SELECT Publishers.pubID FROM Publishres WHERE Publishers.pubName=“Small House” );

Page 32: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Delete all books written by Shakespeare

DELETEFROM BooksWHERE Books.ISBN IN (SELECT BooksAuthors.ISBN FROM BooksAuthors WHERE BooksAuthors.auID = (SELECT Authors.auID FROM Authors WHERE Authors.auName = "Shakespeare“ ) );

Page 33: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Used-Car Dealership DB(available from Resources/320/ on the server)

Page 34: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Your Turn (dealership DB)SELECT1. List all cars that were made in 2000 or later.

2. Who was the salesperson that took care of Customer “John Wayne”?

3. Who was the salesperson that sold “Ford” “Edsel” in carlot at “Windward Cars”?

Update1. Reduce price of all Honda cars by 30%.

2. Reduce the price of all non-Honda cars by 50%.

3. Mark as sold all cars which are located at “Windward Cars”

Page 35: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Your TurnDelete

1. Remove from Salespeople table an employee named “Linda” “Gingle”.

2. Remove from Cars table all cars which are located at “Windward Cars”.

Insert

1. Add a customer whose name is “Zeke” “Zorro” with a phone number of “808-123-4567”.

2. Add to Cars table the cars from the Newcars table.

Page 36: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

SolutionsSELECT1. List all cars that were made in 2000 or later.

SELECT *FROM carsWHERE year >= 2000;

2. Who was the salesperson that took care of Customer “John Wayne”?SELECT salespeople.firstName, salespeople.lastNameFROM salespeople, transactions, customersWHERE salespeople.salesID = transactions.salesIDAND transactions.custID = customers.custIDAND customers.nameFirst = “John”AND customers.nameLast = “Wayne”;

Page 37: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

SolutionsSELECT3. Who was the salesperson that sold “Ford” “Edsel”

in carlot at “Windward Cars”?SELECT salespeople.firstName, salespeople.lastNameFROM salespeople, transactions, carsWHERE salespeople.salesID = transactions.salesIDAND transactions.carID = cars.carIDAND cars.make = “Ford”AND cars.model = “Edsel”;

Page 38: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

SolutionsUpdate1. Reduce price of all Honda cars by 30%.

UPDATE cars

SET carListPrice = carListPrice * 0.7

WHERE carMake = 'Honda';

2. Reduce the price of all non-Honda cars by 50%.UPDATE Cars

SET carListPrice = carListPrice * 0.5

WHERE carMake <> 'Honda';

Page 39: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

SolutionsUpdate3. Mark as sold all cars which are located at

“Windward Cars”

UPDATE cars

SET carSold = true

WHERE cars.lotID IN

(SELECT carlots.lotID

FROM cars, carlots

WHERE cars.lotID = carLots.lotID

AND carlots.lotName = 'Windward Cars');

Page 40: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

SolutionsDelete1. Remove from Salespeople table an employee

named “Elmo” “Jones”.DELETE FROM salePeople

WHERE salNameFirst = 'Elmo'

AND salNameLast = 'Jones';

2. Remove from Cars table all cars which are located at “Lemons Are Us”.DELETEFROM CarsWHERE Cars.lotID = (SELECT Carlots.lotID FROM Carlots WHERE Carlots.lotName = 'Lemons Are Us');

Page 41: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

SolutionsInsert1. Add a customer whose name is “Zeke” “Zorro”

with a phone number of “808-123-4567”.INSERT INTO Customers (nameFirst, nameLast, phoneNumber)VALUES (“Zeke”, “Zorro”, “808-123-457”);

Add to Cars table the cars from the Newcars table.INSERT INTO Cars (carMake, carModel, carYear, carDoors, carListPrice,lotID) (SELECT make, model, year, doors, listPrice, lotID FROM newcars );

Page 42: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

SQL Statements

SELECT field1, field2FROM TableWHERE someCondtion;

SELECT Table1.field1, Table2.field1FROM Table1, Table2WHERE Table1.prKey = forKeyAND someCondtion;

Page 43: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

SQL Statements

UPDATE TableSET field1 = value1, field2 = value2WHERE someCondition

UPDATE TableSET field1 = value1WHERE (subquery)

Page 44: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

SQL Statements

INSERT INTO Table(field1, field2)VALUES (value1, value2);

Page 45: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

SQL Statements

DELETE FROM TableWHERE someCondition;

Page 46: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Functions

Aggregate Functions—perform on set of data

Value Functions—perform on individual values

Page 47: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Aggregate Functions

COUNT – returns count of rowsSELECT COUNT(auName)

FROM Authors

AVG – returns average value of columnSELECT AVG(bkPrice)

FROM BOOKS

MAX

MIN

SUM

Page 48: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

VALUE FUNCTIONS

String Value Functions

Numeric Value Functions

Datetime Value Functions

Page 49: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

String Value Functions

SUBSTRING(sourceString FROM start [FOR length])

sourceString=“Ala Moana”SUBSTRING(sourceString FROM 5 FOR 3) -- “Moa”

UPPER(sourceString) -- “ALA MOANA”

Page 50: More SQL Statements To Modify Tables. Library Database Books ISBN bkTitle bkPrice pubID Publishers pubID pubName pubPhone Authors auID auName auPone Books/Authors

Numeric Value Function

POSITION (subString IN sourceString)

sourceString = “Ala Moana”POSITION (“Moana” in sourceString) -- 5

CHARACTER_LENGTH(sourceString)

CHARACTER_LENGTH(“Ala Moana”) -- 9