Date post: | 01-Jan-2016 |
Category: |
Documents |
Upload: | knox-howard |
View: | 86 times |
Download: | 4 times |
Oracle 10g: SQL 2
Objectives
• Use the INSERT command to add a record to an existing table
• Understand constraint violations during data manipulation
• Use a subquery to copy records from an existing table
• Use the UPDATE command to modify the existing rows of a table
• Use substitution variables with an UPDATE command
Oracle 10g: SQL 3
Objectives (continued)
• Delete records• Manage transactions with transaction
control statements COMMIT, ROLLBACK, and SAVEPOINT
• Differentiate between a shared lock and an exclusive lock
• Use the SELECT…FOR UPDATE command to create a shared lock
Oracle 10g: SQL 4
INSERT Command
• Used to add rows to existing tables
• Identify the table in the INSERT INTO clause
• Specify data in the VALUES clause
• Can only add one row at a time to a table
Oracle 10g: SQL 5
INSERT Command Syntax
• Enclose nonnumeric data in single quotes• If a column list is not provided, a value must
be assigned to each column in the table
Oracle 10g: SQL 7
Inserting NULL Value
• Omit column name from INSERT INTO clause column list
• Substitute two single quotation marks• Use NULL keyword
NULL value input
Oracle 10g: SQL 8
Constraint Violations
• When you add or modify table data, the data is checked for compliance with any applicable constraints
Oracle 10g: SQL 11
Inserting Data from an Existing Table
• Substitute subquery for VALUES clause
Subquery
Oracle 10g: SQL 12
Modifying Existing Rows
• Modify rows using UPDATE command
• Use UPDATE command to:– Add values to an existing row (replace NULL
values)– Change existing values
Oracle 10g: SQL 13
UPDATE Command
• UPDATE clause identifies table
• SET clause identifies column(s) being changed and new value(s)
• Optional WHERE clause specifies row(s) to be changed – if omitted, all rows will be updated!
Oracle 10g: SQL 16
Substitution Variables
• Prompts user for value
• Identified by ampersand (&) preceding variable name
• Can be used to create interactive scripts
Oracle 10g: SQL 18
Deleting Rows
• DELETE command removes a row from a table
WHERE clause determines which row(s) are removed
Oracle 10g: SQL 19
DELETE Command – Omitting WHERE Clause
• Omitting WHERE clause removes all rows• Example below removes all rows from the acctmanager2
table
Oracle 10g: SQL 20
Transaction Control Statements
• Results of Data Manipulation Language (DML) are not permanently updated to a table until explicit or implicit COMMIT occurs
• Transaction control statements can:– Commit data through COMMIT command– Undo data changes through ROLLBACK
command
Oracle 10g: SQL 21
COMMIT Command
• 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
Oracle 10g: SQL 22
ROLLBACK Command
• Used to “undo” changes that have not been committed
• Occurs when:– ROLLBACK; is executed– System restarts after a crash
• SAVEPOINT marks a specific spot within the transaction
• Can ROLLBACK to a SAVEPOINT to undo part of the transaction
Oracle 10g: SQL 25
Table Locks
• Prevents users from changing same data or objects
• Two types:– Shared – prevents DML operations on a portion
of table– Exclusive – locks table preventing other
exclusive or shared locks
Oracle 10g: SQL 26
LOCK TABLE Command 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
Oracle 10g: SQL 27
LOCK TABLE Command 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
Oracle 10g: SQL 28
LOCK TABLE Command Examples
Example-1:
The following statement locks the account managers table in shared mode:
LOCK TABLE acctmanager2 IN SHARE MODE;
Example-2:
The following statement locks the account managers table in exclusive mode:
LOCK TABLE acctmanager2 IN EXCLUSIVE MODE;
Oracle 10g: SQL 29
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
Oracle 10g: SQL 31
Summary
• Data manipulation language (DML) includes the INSERT, UPDATE, DELETE, COMMIT, and ROLLBACK commands
• The INSERT INTO command is used to add new rows to an existing table
• To assign a DEFAULT option value, a column must be excluded from the column list in an INSERT
• You can change the contents of a row or group of rows with the UPDATE command
Oracle 10g: SQL 32
Summary (continued)
• DML operations are not permanently stored in a table until a commit command is issued either implicitly or explicitly
• A set of DML operations that are committed as a block is considered a transaction
• Uncommitted DML operations can be undone by issuing the ROLLBACK command
• A SAVEPOINT serves as a marker for a point in a transaction and allows only a portion of the transaction to be rolled back
Oracle 10g: SQL 33
Summary (continued)
• Use the DELETE command to remove records from a table– If the WHERE clause is omitted, all rows in the table are
deleted
• Table locks can be used to prevent users from mistakenly overwriting changes made by other users
• Table locks can be in SHARE mode or EXCLUSIVE mode
• EXCLUSIVE MODE is the most restrictive table lock and prevents any other user from obtaining any locks on the same table