The chapter objectives are to introduce database concepts and SQL. It defines key terms like database, DBMS, fields, records, columns, rows and their relationships. It explains the purpose of normalization to reduce data redundancy and improve data integrity. The steps of normalization into 1NF, 2NF and 3NF are covered. It also discusses linking tables through common primary and foreign keys. SQL is introduced as the language used to create, modify and retrieve data from a relational database. The chapter then provides examples of basic SQL SELECT statements to select columns, use aliases, do arithmetic and suppress duplicates.
Copyright:
Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online from Scribd
The chapter objectives are to introduce database concepts and SQL. It defines key terms like database, DBMS, fields, records, columns, rows and their relationships. It explains the purpose of normalization to reduce data redundancy and improve data integrity. The steps of normalization into 1NF, 2NF and 3NF are covered. It also discusses linking tables through common primary and foreign keys. SQL is introduced as the language used to create, modify and retrieve data from a relational database. The chapter then provides examples of basic SQL SELECT statements to select columns, use aliases, do arithmetic and suppress duplicates.
The chapter objectives are to introduce database concepts and SQL. It defines key terms like database, DBMS, fields, records, columns, rows and their relationships. It explains the purpose of normalization to reduce data redundancy and improve data integrity. The steps of normalization into 1NF, 2NF and 3NF are covered. It also discusses linking tables through common primary and foreign keys. SQL is introduced as the language used to create, modify and retrieve data from a relational database. The chapter then provides examples of basic SQL SELECT statements to select columns, use aliases, do arithmetic and suppress duplicates.
Copyright:
Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online from Scribd
The chapter objectives are to introduce database concepts and SQL. It defines key terms like database, DBMS, fields, records, columns, rows and their relationships. It explains the purpose of normalization to reduce data redundancy and improve data integrity. The steps of normalization into 1NF, 2NF and 3NF are covered. It also discusses linking tables through common primary and foreign keys. SQL is introduced as the language used to create, modify and retrieve data from a relational database. The chapter then provides examples of basic SQL SELECT statements to select columns, use aliases, do arithmetic and suppress duplicates.
Copyright:
Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online from Scribd
Chapter Objectives • Identify the purpose of a database management system (DBMS) • Distinguish a field from a record and a column from a row • Define the three types of relationships that can exist between entities
Chapter 1 Oracle9i: SQL 2
Chapter Objectives • Identify the problem associated with many- to-many relationships and the appropriate solutions • Explain the purpose of normalization • Describe the role of a primary key • Identify partial dependency and transitive dependency in the normalization process Chapter 1 Oracle9i: SQL 3 Chapter Objectives • Explain the purpose of a foreign key • Determine how to link data in different tables through the use of a common field • Explain the purpose of a structured query language (SQL)
Chapter 1 Oracle9i: SQL 4
Database Terminology • Database – logical structure to store data • Database Management System (DBMS) – software used to create and interact with the database
Chapter 1 Oracle9i: SQL 5
Database Components • Character • Field • Record • File
Chapter 1 Oracle9i: SQL 6
Database Components - Character • Basic unit of data • Can be a letter, number, or special symbol
Chapter 1 Oracle9i: SQL 7
Database Components - Field • A group of related characters • Represents an attribute or characteristic of an entity • Corresponds to a column in the physical database
Chapter 1 Oracle9i: SQL 8
Database Components - Record • A collection of fields for one specific entity • Corresponds to a row in the physical database
Chapter 1 Oracle9i: SQL 9
Database Components - File • A group of records about the same type of entity
Chapter 1 Oracle9i: SQL 10
Components Example
Chapter 1 Oracle9i: SQL 11
Review of Database Design • Systems Development Life Cycle (SDLC) • Normalization
Chapter 1 Oracle9i: SQL 12
Systems Development Life Cycle (SDLC) • Systems investigation – understanding the problem • Systems analysis – understanding the solution • Systems design – creating the logical and physical components
Chapter 1 Oracle9i: SQL 13
Systems Development Life Cycle (SDLC) • Systems implementation – placing completed system into operation • Systems maintenance and review – evaluating the implemented system
Chapter 1 Oracle9i: SQL 14
Relationships • The following relationships can be included in an E-R Model: – One-to-one – One-to-many – Many-to-many
Chapter 1 Oracle9i: SQL 15
One-to-one Relationship • Each occurrence of data in one entity is represented by only one occurrence of data in the other entity • Example: Each individual has just one Employee id and each Employee id is assigned to just one person
Chapter 1 Oracle9i: SQL 16
One-to-many Relationship • Each occurrence of data in one entity can be represented by many occurrences of the data in the other entity • Example: Shashank ---- Employees
Chapter 1 Oracle9i: SQL 17
Many-to-many Relationship • Data can have multiple occurrences in both entities • Example: A student can take many classes and each class is composed of many students • Can not be included in the physical database
Chapter 1 Oracle9i: SQL 18
Normalization • Determines required tables and columns for each table • Multi-step process • Used to reduce or control data redundancy
Chapter 1 Oracle9i: SQL 19
Unnormalized Data Contains repeating Hotels in the Oct_hotel table
Chapter 1 Oracle9i: SQL 20
First-Normal Form (1NF) • Primary key is identified • Repeating groups are eliminated
Chapter 1 Oracle9i: SQL 21
First-Normal Form (1NF) Oct_hotel_id is the primary key for Oct_hotel (Not null and Unique).
Chapter 1 Oracle9i: SQL 22
Composite Primary Key • More than one column is required to uniquely identify a row • Can lead to partial dependency - a column is only dependent on a portion of the primary key
Chapter 1 Oracle9i: SQL 23
Second-Normal Form (2NF) • Partial dependency must be eliminated – Break the composite primary key into two parts, each part representing a separate table
Chapter 1 Oracle9i: SQL 24
Second-Normal Form (2NF) Oct_hotel table in 2NF
Chapter 1 Oracle9i: SQL 25
Third-Normal Form (3NF) Partial and transitive dependency removed.
Chapter 1 Oracle9i: SQL 26
Summary of Normalization Steps • 1NF: eliminate repeating groups, identify primary key • 2NF: table is in 1NF and partial dependencies eliminated • 3NF: table is in 2NF and transitive dependencies eliminated
Chapter 1 Oracle9i: SQL 27
Linking Tables • Once tables are normalized, make certain tables are linked • Tables are linked through a common field • A common field is usually a primary key in one table and a foreign key in the other table
Chapter 1 Oracle9i: SQL 28
Chapter 1 Oracle9i: SQL 29 Structured Query Language (SQL) • Data sublanguage • Used to: – Create or modify tables – Add data to tables – Edit data in tables – Retrieve data from tables
Chapter 1 Oracle9i: SQL 30
Chapter 2 Basic SQL SELECT Statements » Select * from oct_hotel; » Select * from dst_destination; » Select * from Top_destination;
Chapter 1 Oracle9i: SQL 31
Chapter Objectives • Distinguish between an RDBMS and an ORDBMS • Identify keywords, mandatory clauses, and optional clauses in a SELECT statement • Select and view all columns of a table • Select and view one column of a table
Chapter 1 Oracle9i: SQL 32
Chapter Objectives • Display multiple columns of a table • Use a column alias to clarify the contents of a particular column • Perform basic arithmetic operations in the SELECT clause
Chapter 1 Oracle9i: SQL 33
Chapter Objectives • Remove duplicate lists, using either the DISTINCT or UNIQUE keyword • Combine fields, literals, and other data • Format output
Chapter 1 Oracle9i: SQL 34
Relational Database Management System (RDBMS) An RDBMS is the software program used to create the database and it allows you to enter, manipulate, and retrieve data
Chapter 1 Oracle9i: SQL 35
Object Relational Database Management System (ORDBMS) Same as an RDBMS except it can be used to reference objects such as maps and object fields
Chapter 1 Oracle9i: SQL 36
SELECT Statement Syntax • SELECT statements are used to retrieve data from the database • Syntax gives the basic structure, or rules, for a command
Chapter 1 Oracle9i: SQL 37
SELECT Statement Syntax Optional clauses and keywords are shown in brackets
Chapter 1 Oracle9i: SQL 38
SELECT Statement Syntax • SELECT and FROM clauses are required • SELECT clause identifies column(s) • FROM clause identifies table(s) • Each clause begins with a keyword
Chapter 1 Oracle9i: SQL 39
Selecting All Data in a Table Substitute an asterisk for the column names in a SELECT clause » Select * from oct_hotel;
Chapter 1 Oracle9i: SQL 40
Selecting Column from a Table Enter column name in SELECT clause
Chapter 1 Oracle9i: SQL 41
Operations Within the SELECT Statement • Column alias can be used for column headings • Perform arithmetic operations • Suppress duplicates • Concatenate data
Chapter 1 Oracle9i: SQL 42
Column Alias • List after column heading • AS keyword is optional • Enclose in double quotation marks: – If it contains blank space(s) – If it contains special symbol(s) – To retain case
Chapter 1 Oracle9i: SQL 43
Column Alias Example
Chapter 1 Oracle9i: SQL 44
Arithmetic Operations • Executed left to right • Multiplication and division are solved first • Addition and subtraction are solved last • Override order with parentheses
Chapter 1 Oracle9i: SQL 45
Suppressing Duplicates Enter DISTINCT or UNIQUE after SELECT keyword » Select distinct hotel_nme from oct_hotel;
Chapter 1 Oracle9i: SQL 46
Concatenation • Can combine data with string literal • Use concatenation operator, || • Allows use of column alias
Chapter 1 Oracle9i: SQL 47
Concatenation Example
Chapter 1 Oracle9i: SQL 48
Chapter 3 Restricting Rows and Sorting Data
Chapter 1 Oracle9i: SQL 49
Chapter Objectives • Use a WHERE clause to restrict the rows returned by a query • Create a search condition using mathematical comparison operators • Use the BETWEEN…AND comparison operator to identify records within a range of values
Chapter 1 Oracle9i: SQL 50
Chapter Objectives • Specify a list of values for a search condition using the IN comparison operator • Search for patterns using the LIKE comparison operator • Identify the purpose of the % and _ wildcard characters
Chapter 1 Oracle9i: SQL 51
Chapter Objectives • Join multiple search conditions using the appropriate logical operator • Perform searches for null values • Specify the order for the presentation of query results, using ORDER BY, DESC, ASC, and the SELECT clause
Chapter 1 Oracle9i: SQL 52
WHERE Clause • Used to retrieve rows based on a stated condition • Requires: – Column name – Comparison operator – Value or column for comparison • Case sensitive
Chapter 1 Oracle9i: SQL 53
WHERE Clause Example • List WHERE clause after FROM clause • Enclose non-numeric data in single quotes
Chapter 1 Oracle9i: SQL 54
Comparison Operators Indicates how the data should relate to the given search value
Chapter 1 Oracle9i: SQL 55
Arithmetic Comparison Operators
Chapter 1 Oracle9i: SQL 56
Other Comparison Operators
Chapter 1 Oracle9i: SQL 57
IN Operator • Match a value in a specified list • List must be in parentheses • Values separated by commas
Chapter 1 Oracle9i: SQL 58
IN Operator Example
Chapter 1 Oracle9i: SQL 59
LIKE Operator • Performs pattern searches • Used with wildcard characters – Underscore (_) for exactly one character in the indicated position – Percent sign (%) to represent any number of characters
Chapter 1 Oracle9i: SQL 60
LIKE Operator Example
Chapter 1 Oracle9i: SQL 61
Logical Operators • Used to combine conditions • Evaluated in order of NOT, AND, OR – NOT – reverses meaning – AND – both conditions must be TRUE – OR – at least one condition must be TRUE
Treatment of NULL Values • Absence of data • Requires use of IS NULL operator
Chapter 1 Oracle9i: SQL 65
ORDER BY Clause • Presents data in sorted order • Ascending order is default • Use DESC keyword to override column default • 255 columns maximum
Chapter 1 Oracle9i: SQL 66
Sort Sequence • In ascending order, values will be listed in the following sequence: – Numeric values – Character values – NULL values • In descending order, sequence is reversed
Chapter 1 Oracle9i: SQL 67
ORDER BY Example
Chapter 1 Oracle9i: SQL 68
Chapter 4 Joining Multiple Tables
Chapter 1 Oracle9i: SQL 69
Chapter Objectives • Create a Cartesian join • Create an equality join using the WHERE clause • Create an equality join using the JOIN keyword • Create a non-equality join using the WHERE clause • Create a non-equality join using the JOIN…ON approach
Chapter 1 Oracle9i: SQL 70
Chapter Objectives • Create a self-join • Distinguish an inner join from an outer join • Create an outer join using the WHERE clause • Create an outer join using the OUTER keyword • Use set operators to combine the results of multiple queries • Join three or more tables
Chapter 1 Oracle9i: SQL 71
Purpose of Joins • Joins are used to link tables and reconstruct data in a relational database • Joins can be created through: – Conditions in a WHERE clause – Use of JOIN keywords in FROM clause
Chapter 1 Oracle9i: SQL 72
Cartesian Join • Created by omitting joining condition in the WHERE clause or through CROSS JOIN keywords in the FROM clause • Results in every possible row combination (m * n)
Chapter 1 Oracle9i: SQL 73
Cartesian Join Example: Omitted Condition • select * from oct_hotel, dst_destination; • select * from oct_hotel cross join dst_destination;
Chapter 1 Oracle9i: SQL 74
Equality Join • Links rows through equivalent data that exists in both tables • Created by: – Creating equivalency condition in the WHERE clause – Using NATURAL JOIN, JOIN…USING, or JOIN…ON keywords in the FROM clause
Equality Join: JOIN…USING Syntax: tablename JOIN tablename USING (columnname)
Chapter 1 Oracle9i: SQL 78
Equality Join: JOIN…ON Syntax: tablename JOIN tablename ON condition
Chapter 1 Oracle9i: SQL 79
JOIN Keyword Overview • Use NATURAL JOIN when tables have one column in common • Use JOIN…USING when tables have more than one column in common • Use JOIN…ON when a condition is needed to specify a relationship other than equivalency • Using JOIN keyword frees the WHERE clause for exclusive use in restricting rows
Chapter 1 Oracle9i: SQL 80
Non-Equality Joins • In WHERE clause, use any comparison operator other than equal sign • In FROM clause, use JOIN…ON keywords with non-equivalent condition
Chapter 1 Oracle9i: SQL 81
Self-Joins • Used to link a table to itself • Requires use of column qualifier
Chapter 1 Oracle9i: SQL 82
Self-Join: WHERE Clause Example
Chapter 1 Oracle9i: SQL 83
Outer Joins • Use to include rows that do not have a match in the other table • In WHERE clause, include outer join operator (+) next to table with missing rows to add NULL rows • In FROM clause, use FULL, LEFT, or RIGHT with OUTER JOIN keywords
Chapter 1 Oracle9i: SQL 84
Outer Join: WHERE Clause Example
Chapter 1 Oracle9i: SQL 85
Outer Join: OUTER JOIN Keyword Example »select distinct(a.geoname_id),b.name from oct_hotel a left outer join dst_destination b on a.geoname_id=b.geoname_id; »select distinct(a.geoname_id),b.name from oct_hotel a right outer join dst_destination b on a.geoname_id=b.geoname_id; »select distinct(a.geoname_id),b.name from oct_hotel a full outer join dst_destination b on a.geoname_id=b.geoname_id;
Chapter 1 Oracle9i: SQL 86
Set Operators Used to combine the results of two or more SELECT statements
Chapter 1 Oracle9i: SQL 87
Set Operator Example
»select geoname_id from (select geoname_id from
dst_destination where rownum <11 order by geoname_id desc) minus select geoname_id from(selectOracle9i: Chapter 1 geoname_id SQL from dst_destination 88 where rownum <10 order by geoname_id desc); Joining Three or More Tables • Same procedure as joining two tables • Will always results in one less join than the number of tables being joined
Chapter 1 Oracle9i: SQL 89
Joining Three or More Tables: Example
Chapter 1 Oracle9i: SQL 90
Chapter 5 Selected Single-Row Functions
Chapter 1 Oracle9i: SQL 91
Chapter Objectives • Use the UPPER, LOWER, and INITCAP functions to change the case of field values and character strings • Extract a substring using the SUBSTR function • Determine the length of a character string using the LENGTH function
Chapter 1 Oracle9i: SQL 92
Chapter Objectives • Use the LPAD and RPAD functions to pad a string to a desired width • Use the LTRIM and RTRIM functions to remove specific characters strings • Round and truncate numeric data using the ROUND and TRUNC functions • Calculate the number of months between two dates using the MONTHS_BETWEEN function
Chapter 1 Oracle9i: SQL 93
Chapter Objectives • Identify and correct problems associated with calculations involving null values using the NVL function • Display dates and numbers in a specific format with the TO_CHAR function • Determine the current date setting using the SYSDATE keyword • Nest functions inside other functions
Chapter 1 Oracle9i: SQL 94
Terminology • Function – predefined block of code that accepts arguments • Single-row Function – returns one row of results for each record processed • Multiple-row Function – returns one result per group of data processed
Chapter 1 Oracle9i: SQL 95
Types of Functions
Chapter 1 Oracle9i: SQL 96
Case Conversion Functions Alter the case of data stored in a column or character string
Chapter 1 Oracle9i: SQL 97
LOWER Function Used to convert characters to lower-case letters
Chapter 1 Oracle9i: SQL 98
UPPER Function Used to convert characters to upper-case letters
Chapter 1 Oracle9i: SQL 99
INITCAP Function Used to convert characters to mixed-case
Chapter 1 Oracle9i: SQL 100
Character Manipulation Functions Manipulates data by extracting substrings, counting number of characters, replacing strings, etc.
Chapter 1 Oracle9i: SQL 101
SUBSTR Function Used to return a substring, or portion of a string
Chapter 1 Oracle9i: SQL 102
LENGTH Function Used to determine the number of characters in a string
Chapter 1 Oracle9i: SQL 103
LPAD and RPAD Functions Used to pad, or fill in, a character string to a fixed width
Chapter 1 Oracle9i: SQL 104
LTRIM and RTRIM Functions Used to remove a specific string of characters
Chapter 1 Oracle9i: SQL 105
REPLACE Function Substitutes a string with another specified string
Chapter 1 Oracle9i: SQL 106
CONCAT Function Used to concatenate two character strings
Chapter 1 Oracle9i: SQL 107
Number Functions Allows for manipulation of numeric data
Chapter 1 Oracle9i: SQL 108
ROUND Function Used to round numeric columns to a stated precision
Chapter 1 Oracle9i: SQL 109
TRUNC Function Used to truncate a numeric value to a specific position
Chapter 1 Oracle9i: SQL 110
Date Functions Used to perform date calculations or format date values
Chapter 1 Oracle9i: SQL 111
MONTHS_BETWEEN Function Determines the number of months between two dates
Chapter 1 Oracle9i: SQL 112
ADD_MONTHS Function Adds a specified number of months to a date
Chapter 1 Oracle9i: SQL 113
NEXT_DAY Function Determines the next occurrence of a specified day of the week after a given date
Chapter 1 Oracle9i: SQL 114
TO_DATE Function Converts various date formats to the internal format (DD-MON-YYYY) used by Oracle9i
Chapter 1 Oracle9i: SQL 115
Format Model Elements - Dates
Chapter 1 Oracle9i: SQL 116
NVL Function
Substitutes a value for a NULL value
store_name Sales Store A 300 Store B NULL Store C 150
»SELECT SUM(NVL(Sales,100)) FROM Sales_Data;
Chapter 1 Oracle9i: SQL 117
NVL2 Function Allows different actions based on whether a value is NULL
DECODE Function Determines action based upon values in a list
Chapter 1 Oracle9i: SQL 122
Nesting Functions • One function is used as an argument inside another function • Must include all arguments for each function • Inner function is resolved first, then outer function
Chapter 1 Oracle9i: SQL 123
Chapter 6 Group Functions
Chapter 1 Oracle9i: SQL 124
Chapter Objectives • Differentiate between single-row and multiple-row functions • Use the SUM and AVG functions for numeric calculations • Use the COUNT function to return the number of records containing non-NULL values • Use COUNT(*) to include records containing NULL values
Chapter 1 Oracle9i: SQL 125
Chapter Objectives • Use the MIN and MAX functions with non- numeric fields • Determine when to use the GROUP BY clause to group data • Identify when the HAVING clause should be used • List the order of precedence for evaluating WHERE, GROUP BY, and HAVING clauses
Chapter 1 Oracle9i: SQL 126
Chapter Objectives • State the maximum depth for nesting group functions • Nest a group function inside a single-row function • Calculate the standard deviation and variance of a set of data, using the STDDEV and VARIANCE functions
Chapter 1 Oracle9i: SQL 127
Group Functions • Return one result per group of rows processed • Also called multiple-row and aggregate functions • All group functions ignore NULL values except COUNT(*) • Use DISTINCT to suppress duplicate values
Chapter 1 Oracle9i: SQL 128
Group by Function Calculates total amount stored in a numeric column for a group of rows
Chapter 1 Oracle9i: SQL 129
GROUP BY Clause • Used to group data • Must be used for individual column in the SELECT clause with a group function • Cannot reference column alias
Chapter 1 Oracle9i: SQL 130
HAVING Clause Having
Chapter 1 Oracle9i: SQL 131
Order of Clause Evaluation When included in the same SELECT statement, evaluated in order of: – WHERE – GROUP BY – HAVING
Chapter 1 Oracle9i: SQL 132
Nesting Functions • Inner function resolved first • Maximum nesting depth: 2
Chapter 1 Oracle9i: SQL 133
Chapter 7 Subqueries
Chapter 1 Oracle9i: SQL 134
Chapter Objectives • Determine when it is appropriate to use a subquery • Identify which clauses can contain subqueries • Distinguish between an outer query and a subquery • Use a single-row subquery in a WHERE clause • Use a single-row subquery in a HAVING clause • Use a single-row subquery in a SELECT clause
Chapter 1 Oracle9i: SQL 135
Chapter Objectives • Distinguish between single-row and multiple- row comparison operators • Use a multiple-row subquery in a WHERE clause • Use a multiple-row subquery in a HAVING clause • Use a multiple-column subquery in a WHERE clause
Chapter 1 Oracle9i: SQL 136
Chapter Objectives • Create an inline view using a multiple- column subquery in a FROM clause • Compensate for NULL values in subqueries • Distinguish between correlated and uncorrelated subqueries • Nest a subquery inside another subquery
Chapter 1 Oracle9i: SQL 137
Subquery • Used when query is based on unknown value • A query nested inside another query • Requires SELECT and FROM clauses • Must be enclosed in parentheses • Place on right side of comparison operator
Chapter 1 Oracle9i: SQL 138
Types of Subqueries
Chapter 1 Oracle9i: SQL 139
Single-Row Subquery Operators • Can only return one result to outer query • Operators include =, >, <, >=, <=, < >
Chapter 1 Oracle9i: SQL 140
Single-Row Subquery – In WHERE Clause Used for comparison against individual data
Chapter 1 Oracle9i: SQL 141
Single-Row Subquery – In HAVING Clause Required when returned value is compared to grouped data
Chapter 1 Oracle9i: SQL 142
Single-Row Subquery – In SELECT Clause Replicates subquery value for each row displayed
Chapter 1 Oracle9i: SQL 143
Multiple-Row Subqueries • Return more than one row of results • Require use of IN, ANY, ALL, or EXISTS operators
Chapter 1 Oracle9i: SQL 144
ANY and ALL Operators Combine with arithmetic operators
Chapter 1 Oracle9i: SQL 145
EXISTS Operator Determines whether condition exists in subquery
Chapter 1 Oracle9i: SQL 146
Multiple-Row Subquery – In WHERE Clause
Chapter 1 Oracle9i: SQL 147
Multiple-Row Subquery – In HAVING Clause
Chapter 1 Oracle9i: SQL 148
Multiple-Column Subquery • Returns more than one column in results • Can return more than one row • Column list on left side of operator must be in parentheses • Uses IN operator for WHERE and HAVING clauses
Chapter 1 Oracle9i: SQL 149
Multiple-Column Subquery – In FROM Clause Creates temporary table
Chapter 1 Oracle9i: SQL 150
Multiple-Column Subquery – In WHERE Clause Returns multiple columns for evaluation
Chapter 1 Oracle9i: SQL 151
NULL Values When subquery might return NULL values, use NVL function
Chapter 1 Oracle9i: SQL 152
Uncorrelated Subqueries • Processing sequence: – Inner query executed first – Result passed to outer query – Outer query executed
Chapter 1 Oracle9i: SQL 153
Correlated Subqueries • Inner query executed once for each row processed by outer query • Inner query references row contained in outer query
Chapter 1 Oracle9i: SQL 154
Nested Subqueries • Maximum 255 subqueries if nested in WHERE clause • No limit if nested in FROM clause • Innermost subquery resolved first, then next level, etc.
Chapter 1 Oracle9i: SQL 155
Nested Subquery Example Innermost resolved first (3), then second level (2), then outer query (1)
Chapter 1 Oracle9i: SQL 156
Chapter 8 Table Creation and Management
Chapter 1 Oracle9i: SQL 157
Chapter Objectives • Create a new table using the CREATE TABLE command • Name a new column or table • Use a subquery to create a new table • Add a column to an existing table • Modify the size of a column in an existing table Chapter 1 Oracle9i: SQL 158 Chapter Objectives • Drop a column from an existing table • Mark a column as unused, then delete it at a later time • Rename a table • Truncate a table • Drop a table
Chapter 1 Oracle9i: SQL 159
Database Table • A database object • Stores data for the database • Consists of columns and rows • Created and modified through Data Definition Language (DDL) commands
Chapter 1 Oracle9i: SQL 160
Table and Column Names • Maximum 30 characters - no blank spaces • Must begin with a letter • Can contain numbers, underscore (_), and number sign (#) • Must be unique • No reserved words allowed
Chapter 1 Oracle9i: SQL 161
Common Datatypes
Chapter 1 Oracle9i: SQL 162
CREATE TABLE Command
Chapter 1 Oracle9i: SQL 163
CREATE TABLE Command • Column definition list must be enclosed in parentheses • Datatype must be specified for each column • Maximum of 1,000 columns
Chapter 1 Oracle9i: SQL 164
CREATE TABLE Command Example
Chapter 1 Oracle9i: SQL 165
DESCRIBE Command Displays structure of specified table
Chapter 1 Oracle9i: SQL 166
Table Creation Through Subqueries • Can use subquery to retrieve data from existing table • Requires use of AS keyword • New column names can be assigned
Chapter 1 Oracle9i: SQL 167
CREATE TABLE…AS Command
Chapter 1 Oracle9i: SQL 168
CREATE TABLE…AS Command Example
Chapter 1 Oracle9i: SQL 169
Modifying Existing Tables • Accomplished through ALTER TABLE command • Use ADD clause to add a column • Use MODIFY clause to change a column • Use DROP COLUMN to drop a column
Chapter 1 Oracle9i: SQL 170
ALTER TABLE Command Syntax
Chapter 1 Oracle9i: SQL 171
ALTER TABLE…ADD Command Example
Chapter 1 Oracle9i: SQL 172
ALTER TABLE…MODIFY Command Example
Chapter 1 Oracle9i: SQL 173
Modification Guidelines • Column must be as wide as the data it already contains • If a NUMBER column already contains data, size cannot be decreased • Adding or changing default data does not affect existing data
Chapter 1 Oracle9i: SQL 174
ALTER TABLE…DROP COLUMN Command • Can only reference one column per execution • Deletion is permanent • Cannot delete last remaining column in a table
Chapter 1 Oracle9i: SQL 175
ALTER TABLE…SET UNUSED Command • Once marked for deletion, column cannot be restored • Storage space freed at later time
Chapter 1 Oracle9i: SQL 176
ALTER TABLE…DROP UNUSED Command Frees up storage space from columns previously marked as unused
Chapter 1 Oracle9i: SQL 177
RENAME Command Used to rename a table – old name no longer valid
Chapter 1 Oracle9i: SQL 178
Truncating a Table – TRUNCATE Command Rows are deleted - structure of table remains
Chapter 1 Oracle9i: SQL 179
DROP TABLE Command Table structure and contents are deleted
Chapter 1 Oracle9i: SQL 180
Chapter 9 Constraints
Chapter 1 Oracle9i: SQL 181
Chapter Objectives • Explain the purpose of constraints in a table • Distinguish among PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, and NOT NULL constraints and the appropriate use for each constraint • Distinguish between creating constraints at the column level and table level
Chapter 1 Oracle9i: SQL 182
Chapter Objectives • Create PRIMARY KEY constraints for a single column and a composite primary key • Create a FOREIGN KEY constraint • Create a UNIQUE constraint • Create a CHECK constraint
Chapter 1 Oracle9i: SQL 183
Chapter Objectives • Create a NOT NULL constraint, using the ALTER TABLE…MODIFY command • Include constraints during table creation • Use DISABLE and ENABLE commands • Use the DROP command
Chapter 1 Oracle9i: SQL 184
Constraints • Rules used to enforce business rules, practices, and policies • Rules used to ensure accuracy and integrity of data
Chapter 1 Oracle9i: SQL 185
Constraint Types
Chapter 1 Oracle9i: SQL 186
Naming Constraints • Use optional CONSTRAINT keyword during creation to assign a name • Let server name constraint using default format SYS_Cn
General Syntax – Column Level If a constraint is being created at the column level, the constraint applies to the column specified
Chapter 1 Oracle9i: SQL 189
General Syntax – Table Level • Approach can be used to create any constraint type except NOT NULL • Required if constraint is based on multiple columns
Chapter 1 Oracle9i: SQL 190
Enforcement • All constraints are enforced at the table level • If a data value violates a constraint, the entire row is rejected
Chapter 1 Oracle9i: SQL 191
Adding Constraints to Existing Tables • Added to existing table with ALTER TABLE command • Add NOT NULL constraint using MODIFY clause • All other constraints added using ADD clause
Chapter 1 Oracle9i: SQL 192
PRIMARY KEY Constraint • Ensures that columns do not contain duplicate or NULL values • Only one per table allowed
Chapter 1 Oracle9i: SQL 193
PRIMARY KEY Constraint for Composite Key List column names within parentheses separated by commas
Chapter 1 Oracle9i: SQL 194
FOREIGN KEY Constraint • Requires a value to exist in referenced column of other table • NULL values are allowed • Enforces referential integrity • Maps to the PRIMARY KEY in parent table
Chapter 1 Oracle9i: SQL 195
FOREIGN KEY Constraint - Example
Chapter 1 Oracle9i: SQL 196
Deletion of Foreign Key Values • Cannot delete a value in parent table referenced by a row in child table • Use ON DELETE CASCADE keywords when creating FOREIGN KEY constraint – automatically deletes parent row when row in child table is deleted
Chapter 1 Oracle9i: SQL 197
UNIQUE Constraint • No duplicates allowed in referenced column • NULL values are permitted
Chapter 1 Oracle9i: SQL 198
CHECK Constraint Updates and additions must meet specified condition
Chapter 1 Oracle9i: SQL 199
NOT NULL Constraint • Special CHECK constraint with IS NOT NULL condition • Can only be created at column level • Included in output of DESCRIBE command • Can only be added to existing table using ALTER TABLE…MODIFY command
Chapter 1 Oracle9i: SQL 200
NOT NULL Constraint Example
Chapter 1 Oracle9i: SQL 201
Adding Constraints During Table Creation – Column Level Include in column definition
Chapter 1 Oracle9i: SQL 202
Adding Constraints During Table Creation – Table Level Include at end of column list
Chapter 1 Oracle9i: SQL 203
Viewing Constraints – USER_CONSTRAINTS Can display name, type, and condition of CHECK constraints
Chapter 1 Oracle9i: SQL 204
Disabling/Enabling Constraints Use DISABLE or ENABLE clause of ALTER TABLE command
Chapter 1 Oracle9i: SQL 205
Dropping a Constraint • Constraints cannot be modified, must be dropped and recreated • Actual syntax depends on type of constraint – PRIMARY KEY - just list type of constraint – UNIQUE - include column name – All others - reference constraint name
Chapter 1 Oracle9i: SQL 206
ALTER TABLE…DROP Syntax
Chapter 1 Oracle9i: SQL 207
Chapter 10 Data Manipulation
Chapter 1 Oracle9i: SQL 208
Chapter Objectives • Add a record to an existing table • Add a record containing a NULL value to an existing table • Use a subquery to copy records from an existing table • Modify the existing rows within a table
Chapter 1 Oracle9i: SQL 209
Chapter Objectives • Use substitution variables with an UPDATE command • Issue the transaction control statements COMMIT and ROLLBACK • Differentiate between DDL, DML, and transaction control commands
Chapter 1 Oracle9i: SQL 210
Chapter Objectives • Delete records • Differentiate between a shared lock and an exclusive lock • Use the SELECT…FOR UPDATE command to create a shared lock
Chapter 1 Oracle9i: SQL 211
INSERT Command • Used to add rows to existing tables • Identify table in the INSERT INTO clause • Specify data in the VALUES clause • Can only add one row at a time to a table
Chapter 1 Oracle9i: SQL 212
INSERT Command Syntax • Enclose non-numeric data in single quotes • If column list not provided, a value must be assigned to each column in the table
Chapter 1 Oracle9i: SQL 213
INSERT Command Example
Chapter 1 Oracle9i: SQL 214
Inserting NULL Value • Omit column name from INSERT INTO clause column list • Substitute two single quotation marks • Use NULL keyword
Chapter 1 Oracle9i: SQL 215
Inserting Data from an Existing Table Substitute subquery for VALUES clause
Chapter 1 Oracle9i: SQL 216
Modifying Existing Rows • Modify rows using UPDATE command • Use UPDATE command to: – Add values to an existing row – Change existing values
Chapter 1 Oracle9i: SQL 217
UPDATE Command • UPDATE clause identifies table • SET clause identifies column being changed and new value • Optional WHERE clause specifies row(s) to be changed – if omitted, will update all rows
Chapter 1 Oracle9i: SQL 218
UPDATE Command Syntax
Chapter 1 Oracle9i: SQL 219
UPDATE Command Example
Chapter 1 Oracle9i: SQL 220
Substitution Variables • Prompts user for value • Identified by ampersand (&) preceding variable name • Can be used to create interactive scripts
Chapter 1 Oracle9i: SQL 221
Substitution Variable Example
Chapter 1 Oracle9i: SQL 222
Transaction Control • Results of Data Manipulation Language (DML) are not permanently updated to table until explicit or implicit COMMIT occurs • Transaction control statements can: – Commit data through COMMIT command – Undo data changes through ROLLBACK command Chapter 1 Oracle9i: SQL 223 COMMIT • Explicit COMMIT occurs by executing COMMIT; • Implicit COMMIT occurs when DDL command is executed or user properly exits system • Permanently updates table(s) and allows other users to view changes
Chapter 1 Oracle9i: SQL 224
ROLLBACK • Used to “undo” changes that have not been committed • Occurs when: – ROLLBACK; is executed – System restarts after crash
Chapter 1 Oracle9i: SQL 225
Deleting Rows DELETE command removes a row from a table
Chapter 1 Oracle9i: SQL 226
DELETE Command – Omitting WHERE Clause Omitting WHERE clause removes all rows
Chapter 1 Oracle9i: SQL 227
Table Locks • Prevents users from changing same data or objects • Two types: – Shared – prevents DML operations on portion of table – Exclusive – locks table preventing other exclusive or shared locks
Chapter 1 Oracle9i: SQL 228
Shared Lock • Locks portion of table affected by DML operation • Implicitly occurs during UPDATE or DELETE operations • Explicitly occurs through LOCK TABLE command with SHARE MODE option • Released when COMMIT (implicit or explicit) or ROLLBACK occurs Chapter 1 Oracle9i: SQL 229 Exclusive Lock • Implicitly locks table for DDL operations - CREATE or ALTER TABLE • Explicitly locked through LOCK TABLE command with EXCLUSIVE MODE option • Released after execution of DDL operation or after user exits system
Chapter 1 Oracle9i: SQL 230
SELECT…FOR UPDATE Command • Creates shared lock on retrieved portion of table • Prevents one user from changing a row while another user is selecting rows to be changed • Released through implicit or explicit commit
Chapter 1 Oracle9i: SQL 231
SELECT…FOR UPDATE Command – Example
Chapter 1 Oracle9i: SQL 232
Chapter 11 Views
Chapter 1 Oracle9i: SQL 233
Chapter Objectives • Create a view, using CREATE VIEW command or the CREATE OR REPLACE VIEW command • Employ the FORCE and NO FORCE options • State the purpose of the WITH CHECK OPTION constraint
Chapter 1 Oracle9i: SQL 234
Chapter Objectives • Explain the effect of the WITH READ ONLY option • Update a record in a simple view • Re-create a view • Explain the implication of an expression in a view for DML operations • Update a record in a complex view Chapter 1 Oracle9i: SQL 235 Chapter Objectives • Identify problems associated with adding records to a complex view • Identify the key-preserved table underlying a complex view • Drop a view • Explain inline views and the use of ROWNUM to perform a “TOP-N” analysis Chapter 1 Oracle9i: SQL 236 Views • Permanent objects that store no data • Display data contained in other tables • Two purposes: – Reduce complex query requirements for novice users – Restrict users’ access to sensitive data
Chapter 1 Oracle9i: SQL 237
Types of Views
Chapter 1 Oracle9i: SQL 238
CREATE VIEW Command • Use OR REPLACE if view already exists • Use FORCE if underlying table does not exist at time of creation • Provide new column names if necessary
Chapter 1 Oracle9i: SQL 239
CREATE VIEW Options • WITH CHECK OPTION constraint – if used, prevents data changes that will make the data subsequently inaccessible to the view • WITH READ ONLY – prevents DML operations
Chapter 1 Oracle9i: SQL 240
Simple View Only references one table – no group functions, GROUP BY clause, or expressions
Chapter 1 Oracle9i: SQL 241
Simple View – DML Operations • Any DML operations are allowed through simple views unless created with WITH READ ONLY option • DML operations that violate constraints on the underlying table are not allowed
Chapter 1 Oracle9i: SQL 242
Complex View • May contain data from multiple tables or data created with the GROUP BY clause, functions, or expressions • Type of DML operations allowed depends on various factors
Chapter 1 Oracle9i: SQL 243
DML Operations - Complex Views with Expressions Values cannot be inserted into columns that are based on arithmetic expressions
Chapter 1 Oracle9i: SQL 244
DML Operations – Complex Views from Multiple Tables DML operations can not be performed on non key-preserved tables, but they are permitted on key-preserved tables
Chapter 1 Oracle9i: SQL 245
DML Operations – Other Complex Views No DML operations are permitted on complex views based on DISTINCT, ROWNUM, GROUP BY, or a function
Chapter 1 Oracle9i: SQL 246
Dropping a View Use DROP VIEW command
Chapter 1 Oracle9i: SQL 247
Inline View • Temporary table created by using subquery in FROM clause • Can only be referenced while the command is being executed • Most common usage – “TOP-N” Analysis
Chapter 1 Oracle9i: SQL 248
“TOP-N” Analysis • ORDER BY included to identify top values: – descending for highest values, ascending for lowest values
• Extract data based on ROWNUM
Chapter 1 Oracle9i: SQL 249
Chapter 12 Additional Database Objects
Chapter 1 Oracle9i: SQL 250
Chapter Objectives • Define the purpose of a sequence and state how it can be used by an organization • Explain why gaps may appear in the integers generated by a sequence • Correctly use the CREATE SEQUENCE command to create a sequence
Chapter 1 Oracle9i: SQL 251
Chapter Objectives • Identify which options cannot be changed by the ALTER SEQUENCE command • Use NEXTVAL and CURRVAL in an INSERT command • Explain when Oracle9i will automatically create an index • Create an index, using the CREATE INDEX command Chapter 1 Oracle9i: SQL 252 Chapter Objectives • Delete an index, using the DELETE INDEX command • Create a PUBLIC synonym • Delete a PUBLIC synonym • Identify the contents of different versions of views used to access the data dictionary, based on the prefix of the view Chapter 1 Oracle9i: SQL 253 Database Objects • Anything that has a name and defined structure • Includes: – Sequence – generate sequential integers – Index – quickly locate specific records – Synonym – alias for other database objects
Chapter 1 Oracle9i: SQL 254
Sequences • Used for internal control purposes by providing sequential integers for auditing • Used to generate unique value for primary key column – no correlation with actual row contents
Chapter 1 Oracle9i: SQL 255
CREATE SEQUENCE Command • Various intervals allowed – Default: 1 • Can specify starting number – Default: 1
Chapter 1 Oracle9i: SQL 256
CREATE SEQUENCE Command • Can specify MINVALUE for decreasing sequence, MAXVALUE for increasing • Numbers can be reused if CYCLE specified • ORDER clause for application cluster environment • Use CACHE to pre-generate integers – Default: 20 Chapter 1 Oracle9i: SQL 257 CREATE SEQUENCE Command Example
Chapter 1 Oracle9i: SQL 258
Verifying Sequence Values Query USER_SEQUENCES data dictionary view
Chapter 1 Oracle9i: SQL 259
Using Sequence Values • NEXTVAL – generates integer • CURRVAL – contains last integer generated by NEXTVAL
Chapter 1 Oracle9i: SQL 260
Altering Sequence Definitions • Use ALTER SEQUENCE command • START WITH value cannot be altered – drop sequence and re-create • Changes cannot make current integers invalid
Chapter 1 Oracle9i: SQL 261
ALTER SEQUENCE Command Example
Chapter 1 Oracle9i: SQL 262
DROP SEQUENCE Command Previous values generated are not affected by removing a sequence from a database
Chapter 1 Oracle9i: SQL 263
Indexes • Stores frequently referenced value and row ID (ROWID) • Can be based on one column, multiple columns, functions, or expressions
Chapter 1 Oracle9i: SQL 264
Creating an Index • Implicitly created by PRIMARY KEY and UNIQUE constraints • Explicitly created by CREATE INDEX command
Chapter 1 Oracle9i: SQL 265
CREATE INDEX Command Example
Chapter 1 Oracle9i: SQL 266
Verifying an Index Indexes listed in USER_INDEXES view
Chapter 1 Oracle9i: SQL 267
Removing an Index Use DROP INDEX command
Chapter 1 Oracle9i: SQL 268
Synonyms • Serve as permanent aliases for database objects • Can be private or public – Private synonyms are only available to user who created them – PUBLIC synonyms are available to all database users
Chapter 1 Oracle9i: SQL 269
CREATE SYNONYM Command Syntax
Chapter 1 Oracle9i: SQL 270
CREATE SYNONYM Command Example
Chapter 1 Oracle9i: SQL 271
Deleting a SYNONYM • A private synonym can be deleted by owner • A PUBLIC synonym can only be deleted by a user with DBA privileges
Chapter 1 Oracle9i: SQL 272
Data Dictionary • Stores information about database objects • Owned by user SYS • Cannot be directly accessed by users • Displays contents through data dictionary views