1 Chapter 3: Using SQL Queries to Insert, Update, Delete, and View Data.

Slides:



Advertisements
Similar presentations
Advanced SQL Topics Edward Wu.
Advertisements

© Abdou Illia MIS Spring 2014
Virtual training week 4 structured query language (SQL)
Copyright © by Royal Institute of Information Technology Introduction To Structured Query Language (SQL) 1.
Introduction to Structured Query Language (SQL)
XP Chapter 3 Succeeding in Business with Microsoft Office Access 2003: A Problem-Solving Approach 1 Analyzing Data For Effective Decision Making.
Introduction to Structured Query Language (SQL)
Introduction to Oracle9i: SQL1 Basic SQL SELECT Statements.
A Guide to Oracle9i1 Using SQL Queries to Insert, Update, Delete, and View Data Chapter 3.
1 Chapter 3: Using Oracle to Add, View, and Update Data.
Introduction to Oracle9i: SQL1 Selected Single-Row Functions.
Chapter 3: Using SQL Queries to Insert, Update, Delete, and View Data
Guide to Oracle 10g1 Chapter 3: Using SQL Queries to Insert, Update, Delete, and View Data.
Structured Query Language Chapter Three (Excerpts) DAVID M. KROENKE’S DATABASE CONCEPTS, 2 nd Edition.
Introduction to Structured Query Language (SQL)
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 7 Introduction to Structured Query Language (SQL)
Concepts of Database Management Sixth Edition
Using SQL Queries to Insert, Update, Delete, and View Data © Abdou Illia MIS Spring 2015 Wednesday 1/28/2015 Chapter 3A.
Microsoft Access 2010 Chapter 7 Using SQL.
Guide to Oracle10G1 Using SQL Queries to Insert, Update, Delete, and View Data Chapter 3.
Using SQL Queries to Insert, Update, Delete, and View Data Date Retrieval from a single table & Calculations © Abdou Illia MIS Spring 2015.
Chapter 3 Single-Table Queries
Chapter 6 Additional Database Objects
Analyzing Data For Effective Decision Making Chapter 3.
Chapter 10 Selected Single-Row Functions Oracle 10g: SQL.
Chapter 5 Selected Single-Row Functions. Chapter Objectives  Use the UPPER, LOWER, and INITCAP functions to change the case of field values and character.
ITBIS373 Database Development
Chapter 6 Additional Database Objects Oracle 10g: SQL.
SQL: Data Manipulation Presented by Mary Choi For CS157B Dr. Sin Min Lee.
Structure Query Language SQL. Database Terminology Employee ID 3 3 Last name Small First name Tony 5 5 Smith James
SQL SQL Server : Overview SQL : Overview Types of SQL Database : Creation Tables : Creation & Manipulation Data : Creation & Manipulation Data : Retrieving.
Using Special Operators (LIKE and IN)
Concepts of Database Management Seventh Edition
1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views.
Database Programming Sections 11 & 12 – Creating, and Managing Views, Sequences, Indexes, and Synonymns.
Oracle 11g: SQL Chapter 10 Selected Single-Row Functions.
SQL SELECT QUERIES CS 260 Database Systems. Overview  Introduction to SQL  Single-table select queries  Using the DBMS to manipulate data output 
Oracle 11g DATABASE DEVELOPMENT LAB1. Introduction  Oracle 11g Database:-  Oracle 11g database is designed for some features, which helps to the organizations.
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 7 Introduction to Structured.
ITBIS373 Database Development Lecture 3a - Chapter 3: Using SQL Queries to Insert, Update, Delete, and View Data.
Chapter 3 Selected Single-Row Functions and Advanced DML & DDL.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Advanced SELECT Queries CS 146. Review: Retrieving Data From a Single Table Syntax: Limitation: Retrieves "raw" data Note the default formats… SELECT.
Database Lab Lecture 1. Database Languages Data definition language ( DDL ) Data definition language –defines data types and the relationships among them.
Database Fundamental & Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
Database Programming Sections 11 & 12 –Sequences, Indexes, and Synonymns.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 (Part II) INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor.
Lecture 8 – SQL Joins – assemble new views from existing tables INNER JOIN’s The Cartesian Product Theta Joins and Equi-joins Self Joins Natural Join.
1 Creating and Maintaining Database Objects Part 1 Database Systems.
Enhanced Guide to Oracle 10g Chapter 3: Using SQL Queries to Insert, Update, Delete, and View Data.
Concepts of Database Management Seventh Edition Chapter 3 The Relational Model 2: SQL.
© 2002 by Prentice Hall 1 Structured Query Language David M. Kroenke Database Concepts 1e Chapter 3 3.
Single-Table Queries 2: Advanced Topics CS 320. Review: Retrieving Data From a Single Table Syntax: Limitation: Retrieves "raw" data SELECT field1, field2,
Lecture3b - Chapter 3: Using SQL Queries to Insert, Update, Delete, and View Data Guide to Oracle 10g ITBIS373 Database Development.
ITS232 Introduction To Database Management Systems Siti Nurbaya Ismail Faculty of Computer Science & Mathematics, Universiti Teknologi MARA (UiTM), Kedah.
 CONACT UC:  Magnific training   
Database Design lecture 3_2 Slide 1 Database Design Lecture 3_2 Data Manipulation in SQL Simple SQL queries References: Text Chapter 8 Oracle SQL Manual.
Oracle 11g: SQL Chapter 5 Data Manipulation and Transaction Control.
Concepts of Database Management, Fifth Edition Chapter 3: The Relational Model 2: SQL.
SQL Query Getting to the data ……..
Relational Database Design
Chapter 10 Selected Single-Row Functions Oracle 10g: SQL
Prepared by : Moshira M. Ali CS490 Coordinator Arab Open University
Basic Nested Queries and Views
Chapter # 7 Introduction to Structured Query Language (SQL) Part II.
Creating and Maintaining
Index Note: A bolded number or letter refers to an entire lesson or appendix. A Adding Data Through a View ADD_MONTHS Function 03-22, 03-23,
Contents Preface I Introduction Lesson Objectives I-2
Presentation transcript:

1 Chapter 3: Using SQL Queries to Insert, Update, Delete, and View Data

2  Script: text file that contains a sequence of SQL commands  Running a script: SQL> START path_to_script_file; OR path_to_script_file; Path cannot contain any blank spaces SQL Scripts

3  Syntax: INSERT INTO tablename VALUES (column1_value, column2_value, …);  You must insert a value or a NULL placeholder for every field  Fields must be entered in the order they appear in the table when you issue the DESCRIBE command Inserting a Value Into Every Field in a Record

4 Example:

5  Command to insert values for selected record fields: INSERT INTO tablename (column1_name, column2_name, …) VALUES (column1_value, column2_value, …); Inserting Selected Table Fields

6  Example: Inserting Selected Table Fields

7 Format Masks All data is stored in the database in a standard binary format Format masks are alphanumeric text strings that specify the format of input and output data Table 3-1: Number format masks Table 3-2: Date format masks

8  Date values must be converted from characters to dates using the TO_DATE function and a format mask  Example: Inserting Date Values

9  Must be enclosed in single quotes  Is case-sensitive  To insert a string with a single quote, type the single quote twice  Example: 'Mike''s Motorcycle Shop' Inserting Text Data

10  Year To Month Interval: TO_YMINTERVAL(‘years-months’) e.g. TO_YMINTERVAL(‘3-2’)  Day To Second Interval: TO_DSINTERVAL(‘days HH:MI:SS.99’) e.g. TO_DSINTERVAL(‘-0 01:15:00’) Inserting Interval Values

11  Transaction  Logical unit of work consisting of one or more SQL DML commands  INSERT, UPDATE, DELETE  All transaction commands must succeed or none can succeed  Transaction results are not visible to other users until they are “committed” to the database  Until a transaction is committed, it can easily be “rolled back” (undone) Transactions

12  A transaction starts when you type one or more DML commands in SQL*Plus  A transaction ends when you issue either the COMMIT or ROLLBACK command SQL>COMMIT; SQL>ROLLBACK; Transactions

13 Committing and Rolling Back Data COMMIT Makes transaction command changes permanent in the database and visible to other users ROLLBACK Rolls back transaction command changes and restores database to its state before the transaction

14  Used to mark individual sections of a transaction  You can roll back a transaction to a savepoint Savepoints

15  Syntax: UPDATE tablename SET column1 = new_value, column2 = new_value, … WHERE search_condition;  Each update statement can update row(s) in one table only  Can update multiple records if they all match the search condition Updating Records

16  Format: WHERE fieldname operator expression  Operators  Equal (=)  Greater than, Less than (>, <)  Greater than or Equal to (>=)  Less than or Equal to (<=)  Not equal (, !=, ^=)  LIKE  BETWEEN  IN  NOT IN Search Conditions

17 WHERE s_name = ‘Sarah’ WHERE s_age > 18 WHERE s_class <> ‘SR’  Text in single quotes is case sensitive Search Condition Examples

18  Syntax: DELETE FROM tablename WHERE search_condition;  Deletes multiple records if search condition specifies multiple records  If search condition is omitted, all table records are deleted  You can’t delete a record if it contains a primary key value that is referenced as a foreign key Deleting Records

19 Truncating Tables Removes ALL table data WITHOUT saving any rollback information Advantage: fast way to delete table data Disadvantage: can’t be undone Syntax: TRUNCATE TABLE tablename;

20  Sequential list of numbers that is automatically generated by the database  Used to generate values for surrogate keys Sequences

21  Syntax: CREATE SEQUENCE sequence_name [optional parameters];  Example: CREATE SEQUENCE f_id_sequence START WITH 200; Creating Sequences

22 Viewing Sequence Information Query the SEQUENCE Data Dictionary View:

23 Pseudocolumns Acts like a column in a database query Actually a command that returns a specific values Used to retrieve: Current system date Name of the current database user Next value in a sequence

24 Pseudocolumn Examples Pseudocolumn Name Output CURRVALMost recently retrieved sequence value NEXTVALNext value in a sequence SYSDATECurrent system date from database server USERUsername of current user

25  Retrieving the current system date : SELECT SYSDATE FROM DUAL; Retrieving the name of the current user: SELECT USER FROM DUAL;  DUAL is a system table that is used with pseudocolumns Using Pseudocolumns

26  Accessing the next value in a sequence: sequence_name.NEXTVAL  Inserting a new record using a sequence: INSERT INTO my_faculty VALUES (f_id_sequence.nextval, ‘Professor Jones’); Using Pseudocolumns With Sequences

27 Permissions that you can grant to other users to allow them to access or modify your database objects Granting object privileges: GRANT privilege1, privilege2, … ON object_name TO user1, user 2, …; Revoking object privileges: REVOKE privilege1, privilege2, … ON object_name FROM user1, user 2, …; Object Privileges

28 Examples of Object Privileges Object TypePrivilegeDescription Table, Sequence ALTERAllows user to change object’s structure using the ALTER command Table, Sequence DROPAllows user to drop object Table, Sequence SELECTAllows user to view object TableINSERT, UPDATE, DELETE Allows user to insert, update, delete table data Any database object ALLAllows user to perform any operation on object

29 Granting and Revoking Object Privileges

30  Syntax: SELECT column1, column2, … FROM tablename WHERE search_condition; Retrieving Data From a Single Table

31  To retrieve every column in a table: SELECT * FROM …  To retrieve every record in a table, omit the search condition SELECT column1, column2, … FROM tablename; Retrieving Data From a Single Table

32 Qualifying Table Names If you retrieve data from a table that is owned by another user, you must qualify the table name by prefacing it with the owner’s name

33  Sometimes queries retrieve duplicate records  To suppress duplicate outputs, use the DISTINCT qualifier : SELECT DISTINCT column1, column2, … FROM... Suppressing Duplicate Records

34  Combining search conditions  AND: both conditions must be true  OR: either condition can be true  Combining AND and OR in a single operation  AND comparisons are evaluated first  Always use parentheses to force conditions to be evaluated in the correct order Using Multiple Search Conditions

35  NULL: not defined  Use IS NULL search condition SELECT s_name, s_class FROM my_students WHERE s_class IS NULL; Searching for NULL Records

36  Use IS NOT NULL operator SELECT s_name, s_age FROM my_students WHERE s_class IS NOT NULL; Searching for NOT NULL Records

37 Using the IN and NOT IN Operators IN retrieves all values where the search column value matches a set of values SELECT * FROM enrollment WHERE grade IN (‘A’, ‘B’);

38 Using the IN and NOT IN Operators NOT IN retrieves all values where the search column value matches a set of values SELECT * FROM enrollment WHERE grade NOT IN (‘A’, ‘B’);

39 Using the LIKE Operator Performs inexact searches by matching part of a character string WHERE fieldname LIKE character_string;

40 Using the LIKE Operator Character string must be in single quotes and use wildcard characters % represents multiple wildcard characters _ represents a single wildcard character Wildcard characters can be placed at beginning or end of string Examples: WHERE s_class LIKE ‘_R’; WHERE s_name LIKE ‘J%’;

41  Use the ORDER BY clause  Specify sort key, which is column by which output is sorted SELECT s_name, s_age FROM my_students ORDER BY s_age; Sorting Query Output

42  Default sort order  Numerical: ascending  Character: A - Z  Date: oldest - newest  To force the sort order: use ASC or DESC  Example SELECT s_name, s_age FROM my_students ORDER BY s_age DESC; Sorting Query Data

43  Arithmetic operations on retrieved data  Addition (+)  Subtraction (-)  Multiplication (*)  Division (/)  Example: SELECT inv_id, qoh*price FROM inventory; Using Calculations in Queries

44  ABS - absolute value  CEIL – rounds a number up to the next integer  FLOOR – rounds a number down to the previous integer  MOD – returns the remainder of a number and a divisor  POWER - raises a number to an exponent  ROUND - rounds a number  SQRT – returns the square root of a value  TRUNC - truncates a number to the nearest whole number Single-Row Number Functions

45  Example: SELECT s_name, TRUNC((SYSDATE - s_dob)/365) FROM my_students; Using Single-Row Number Functions

46  CONCAT – joins 2 character strings  INITCAP – returns a string with the initial letter only uppercase  LENGTH – returns the length of a string  LPAD, RPAD – returns a string with a specific number of characters added on the left or right side  LTRIM, RTRIM – returns a string with all instances of a specific character trimmed from the left or right side  REPLACE – replaces all instances of a character with another character  UPPER/LOWER – returns a string in all upper/lower case letters Single-Row Character Functions

47  Example: SELECT UPPER(s_name) FROM my_students; Using Single-Row Character Functions

48  To find a date that is a specific number of days before or after a known date, add or subtract the number from the known date  Example: SELECT order_date + 30 FROM cust_order; Date Arithmetic

49  To find the number of days between two known dates, subtract the later date from the earlier date  Example: SELECT SYSDATE – s_dob FROM my_students; Date Arithmetic

50  ADD_MONTHS  returns a date that is a specific number of months after a given date  Example: SELECT ADD_MONTHS(SYSDATE, 6) FROM dual; Date Functions

51  LAST_DATE  Returns the date that is the last day of the month specified in the current date  Example: SELECT LAST_DATE(order_date) FROM cust_order WHERE order_id = 1057; Date Functions

52  MONTHS_BETWEEN  Returns the number of months between two input dates  Example: SELECT MONTHS_BETWEEN(order_date, SYSDATE) FROM cust_order WHERE order_id = 1057; Date Functions

53  Used to perform an operation on a field from a group of retrieved records  AVG (average of all retrieved values)  COUNT (number of records retrieved)  MAX (maximum value retrieved)  MIN (minimum value retrieved)  SUM (sum of all retrieved values) Group Functions

54 SELECT AVG (s_age) FROM my_students; SELECT MAX (s_age) FROM my_students; SELECT MIN (s_age) FROM my_students; SELECT SUM (s_age) FROM my_students; Group Function Examples

55  GROUP BY must be used if some columns in the SELECT clause are used in a group function and some are not  Group all fields that are not included in the group function  Example: SELECT s_class, AVG(s_age) FROM my_students GROUP BY s_class; Using the GROUP BY Clause

56 Creating Alternate Column Headings in SQL*Plus Syntax: SELECT column1 “heading1”, column2 “heading2”, … Example: SELECT (SYSDATE – s_dob) “Student Age” FROM my_students;

57 Creating a Column Alias Column alias: alternate column name that can be referenced in the ORDER BY and GROUP BY clauses Syntax: SELECT column1 AS alias1 …  Example: SELECT (SYSDATE – s_dob) AS age_alias ORDER BY age_alias

58 Dynamic SQL Queries Queries that allow users to specify search conditions at runtime Approaches Substitution Values Runtime Variables

59 Using Substitution Values Created when search expression is prefaced with an ampersand (&) System then prompts user for value

60 Using Runtime Variables Runtime variable: variable defined in SQL*Plus environment Syntax: DEFINE variable_name = variable_value; You can then substitute the variable name for a query search condition value

61 Using Runtime Variables Example:

62 Formatting Data Using the TO_CHAR Function Used to display NUMBER and DATE values using a specific format mask Syntax: TO_CHAR(fieldname, ‘format_mask’);

63 Join Queries Retrieve data from multiple tables by joining tables using foreign key references Join query types: Inner (equality) Outer Self Inequality

64 Inner Joins One record is retrieved for each matching row FACULTY

65  Syntax: SELECT column1, column2, … FROM table1, table2 WHERE table1.join_column = table2.join_column  You must include a join condition for every link between 2 tables Inner Joins Join condition

66  Example: SELECT s_name, f_name FROM student, faculty WHERE student.f_id = faculty.f_id;  If you have N tables in the FROM clause, you must have (N - 1) join conditions Inner Joins

67 Qualifying Field Names If a field in the SELECT clause exists in multiple tables in the FROM clause, you must qualify the field name by prefacing it with either table’s name

68 1.Identify all of the tables involved in the query, and label:  Display fields  Join fields  Search fields 2.Write the query  List all display fields in the SELECT clause  List all table names in the FROM clause  List all join condition links in the WHERE clause  List all search fields in the WHERE clause Process for Designing Complex Inner Join Queries

69 Outer Joins Limitation of inner joins: some records may be omitted if corresponding records don’t exist in one of the tables Example: retrieve records for all students, along with their corresponding ENROLLMENT information

70 Outer Joins Student 105 (Michael Connoly) does not have any ENROLLMENT records

71 Outer Joins No records retrieved for Michael:

72 Outer Joins To include records in first (inner) table, even when they do not have matching records in second (outer) table, place outer join marker (+) beside outer table name in join clause

73 Outer Joins Outer join marker

74 Self Joins Used to join a table to itself when the table has a hierarchical relationship

75 Self Joins To create a self-join, you need to create a table alias, which gives an alternate name to the table so you can create a join condition Syntax to create table alias in FROM clause: FROM table1 alias1, table2 alias2

76 Self Joins PARENT_PROJECT PROJECT SUB_PROJECT

77 Self Join Example

78 Inequality Joins Join created by placing making join condition satisfy an inequality condition Only makes sense when primary/foreign key values are not surrogate keys

79 Inequality Joins

80 Nested Queries Created when a subquery is nested within a main query Main query: first query listed in SELECT command Subquery: retrieves one or more values that specify the main query’s search condition

81 Nested Query Where Subquery Returns a Single Value Syntax: SELECT column1, column2, … FROM table1, table2, … WHERE join conditions AND search_column1 = (SELECT column1 FROM table1, table2, … WHERE search and join conditions) Subquery that returns one value

82 Nested Query Where Subquery Returns Multiple Values Syntax: SELECT column1, column2, … FROM table1, table2, … WHERE join conditions AND search_column1 IN (SELECT column1 FROM table1, table2, … WHERE search and join conditions) Subquery that returns multiple values

83 Performs set operations on outputs of two unrelated queries Both queries must have: same number of display fields corresponding display fields must have same data type Using Set Operators in Queries

84 UNION: combines results, suppresses duplicate rows UNION ALL: combines results, displays duplicates INTERSECT: finds matching rows MINUS: returns the difference between returned record sets Query Set Operators

85 Logical table based on a query Does not physically exist in the database Presents data in a different format from underlying tables Uses: Security Simplifying complex queries Database Views

86 Creating a view: CREATE VIEW view_name AS SQL_command; Views can be queried just like tables: SELECT * FROM view_name; Database Views

87 Simple Views Based on SQL query that retrieves data from only one table View can support all table DML operations: INSERT UPDATE DELETE

88 Complex Views Based on query that retrieves data from multiple tables Can only be used to support SELECT operations No DML operations supported

89 Synonyms Alternate name for a table Allows you to not have to preface table with owner’s username when you are querying a table that belongs to another user

90 Public Synonyms Can only be created by a DBA Syntax: CREATE PUBLIC SYNONYM synonym_name FOR owner_name.tablename; All users with privileges to use table can then use synonym instead of owner_name.tablename

91 Private Synonyms You can create private synonyms for any tables that you have privileges to use Only you can use the synonym Syntax: CREATE SYNONYM synonym_name FOR table_name.table_name;