Presentation is loading. Please wait.

Presentation is loading. Please wait.

SQL Training Insert, Update & Delete. Insert, Update, Delete.

Similar presentations


Presentation on theme: "SQL Training Insert, Update & Delete. Insert, Update, Delete."— Presentation transcript:

1 SQL Training Insert, Update & Delete

2 Insert, Update, Delete

3 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Manipulating Data Referential Integrity “Thou shall not create orphans.” Every child (foreign key) must have a matching parent (primary key). You can not delete a parent if there is a matching child. You can not add a child record if you do not have a matching parent record. Update Insert Delete Database You must remember the referential integrity rules when you manipulate data in the database. Page 3

4 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Insert Add a new vendor: VendorName: New2You Address: 9983 Buy Now Ave Miami FL 32940 Contact: Tracy Knew Phone: 321-987-1001 Fax: 321-987-1000 Email: tknew@new2you.comtknew@new2you.com FL  ProvinceID = 9 Referential Integrity Rules require which table to be populated first? How are we going to determine the value for the vendorid? Approved to supply component: ComponentID: 14 Vendor Code: N2U9870-C Vendor Price: $45.98 Page 4

5 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Insert Insert into Vendor (VendorID, VendorName, Address1, City, ProvinceID, Phone, Fax, Email, VendorFirstName, VendorLastName) Values (102, 'New2You', '9983 Buy Now Ave','Melbourne',9, '321-987-1001', '321-987-1000','tknew@new2you.com', 'Tracy', 'Knew'); 1.You can assign unique numbers, such as ID’s, to columns in your database using a sequence. Create Sequence VendorID increment by 1 start with 1; We will assume that the next available vendorid is 102 2.We need to populate the data for the parent table (Vendor) first. 3.After each update to the database you need to commit. If you forget to commit, the changes will be rolled-back when you exit SQL Plus (the default action). Commit; Page 5

6 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Insert 4.Next, we need to insert the data into the child (VendorComponent) table. Commit; Insert into VendorComponent (VendorID, ComponentID, VendorPartNumber, VendorPrice) Values ((Select max(VendorID) from Vendor), 14, ‘N2U9870-C’,45.98); 5.Again, we will need to commit to make the changes permanent in the database. We have to figure out what VendorID was assigned in the parent table. Page 6

7 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Insert – Select INSERT INTO FrenchVendor (VendorID, VendorName, ProvinceID, Address1, City, PostalCode) SELECT VendorID, VendorName, Province.ProvinceID, Address1, City, PostalCode FROM Vendor, Province, Country, Region WHERE Vendor.ProvinceID = Province.ProvinceID and Region.CountryID = Country.CountryID and Province.RegionID = Region.RegionID and CountryName = 'France'; CREATE TABLE FrenchVendor ( VendorIDINTEGER, VendorNameVARCHAR2(30), ProvinceIDINTEGER, Address1VARCHAR2(30), CityVARCHAR2(20), PostalCodeVARCHAR2(15) ); Page 7

8 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Update Update the conversion rate of Canada to.00911. UPDATE Country SET CurrencyRate =.00911, CurrencyDate = sysdate WHERE CountryID = 2; Updates the column values within one or more rows of a table. 1 row updated. Page 8

9 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Update Multiple Rows Increase the unit price of all Butane Homegens by 2%. UPDATE Product SET ProductPrice = ProductPrice * 1.02 WHERE ProductDescription Like '%Butane%' 21 rows updated. Page 9

10 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Delete Delete ProductCode HG5000-01B from the PurchaseOrder table. DELETE FROM Product WHERE ProductCode = ‘HG5000-01B’; Note: The WHERE clause determines the rows that are deleted. If the WHERE clause is not specified, all rows are deleted (subject to referential integrity constraints). ERROR at line 1: ORA-02292: integrity constraint (Oracle.SYS_C0042860) violated - child record found Why do we get this error? Page 10

11 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Delete Multiple Rows Delete ProductCode HG5000-01B from the Product table. Step 1: Delete the child rows from the Manifest Table. DELETE FROM Manifest WHERE ProductID = (SELECT ProductID FROM Product WHERE ProductCode = 'HG5000-01B'); Step 2: Delete parent record from the PurchaseOrder Table. DELETE FROM Product WHERE ProductCode = 'HG5000-01B'; Step 3: Commit If you forget to commit after you have updated the database your changes will be rolled back (undo) as soon as you exit SQL Plus. Page 11

12 Workshop

13 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Insert Add a new Survey record: ColumnValue Surveyid803 Customerid4 Userid7 Requiredproductid54 surveydate2/8/2010 Q15 Q26 Q37 Q43 Q54 Q68 Q79 Page 13

14 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Update Change the values below for survey is 803. ColumnValue Surveyid803 Customerid Userid Requiredproductid surveydate Q14 Q2 Q36 Q4 Q58 Q6 Q72 Page 14

15 Confidential & Proprietary Copyright © 2009 Cardinal Directions, Inc. Delete Delete survey 803. ColumnValue Surveyid803 Customerid Userid Requiredproductid surveydate Q14 Q2 Q36 Q4 Q58 Q6 Q72 Page 15


Download ppt "SQL Training Insert, Update & Delete. Insert, Update, Delete."

Similar presentations


Ads by Google