Chapter 4: Data Manipulation Language (DML)
All operation commands that affect the data stored in tables, but not the structure of tables, are called Data Manipulation Language
Insert
INSERT INTO tablename [(columnname,...)]
    VALUES (columnname, ....)if the data entered in the
VALUESclause contains a value for every column and is in the same order as columns in the table. the column names can be ommited in theINSERT INTOclause.If you enter data for only some columns, or the columns are listed in a different order than listed in a table, you must provide the column names in the
INSERT INTOclause in the same order as they are given in theVALUESclause.you must use single quotes to enclose the nonnumeric data inserted in a column.
INSERT INTO acctmanager
    VALUES ('T500', 'NICK', 'TAYLOR', '05-SEP-09', 42000, 3500, 'NE');
INSERT INTO acctmanager (amid, amfirst, amlast, amedate, amsal, amcomm, region)
    VALUES ('T500', 'NICK', 'TAYLOR', '05-SEP-09', 42000, 3500, 'NE');
INSERT INTO acctmanager (amid, amfirst, amlast, amedate, amsal, amcomm, region)
    VALUES ('T500', 'NICK', 'TAYLOR', SYSDATE, 42000, 3500, 'NE');
INSERT INTO acctmanager (amid, amfirst, amlast, amedate, amsal, amcomm, region)
    VALUES ('T500', 'NICK', 'TAYLOR', DEFAULT, 42000, 3500, 'NE');
INSERT INTO acctmanager (amid, amfirst, amlast, amedate, amsal, amcomm, region)
    VALUES ('T500', 'NICK', 'TAYLOR', NULL, 42000, 3500, 'NE');
INSERT INTO acctmanager (amid, amfirst, amlast, amsal, amcomm, region)
    VALUES ('T500', 'NICK', 'TAYLOR', 42000, 3500, 'NE');
ALTER TABLE acctmanager MODIFY (amsal DEFAULT ON NULL 1);
INSERT INTO acctmanager (amid, amfirst, amlast, amedate, amsal, amcomm, region)
    VALUES ('T500', 'NICK', 'TAYLOR', NULL, NULL, 3500, 'NE');
INSERT INTO acctmanager (amid, amfirst, amlast, amedate, amsal, amcomm, region)
    VALUES ('T500', 'NICK', 'O''hara', NULL, NULL, 3500, 'NE');
SELECT table_name, column_name, data_default, default_on_null 
    FROM user_tab_columns
    WHERE table_name = 'acctmanager';If you want to use the
DEFAULTvalue for one column, please use the keywordDEFAULTin theVALUEclause or omit both the column name in theINSERT INTOclause and the data value in theVALUESclause.The
DEFAULTcommand option setting will be overridden when the explicitNULLvalue is inserted, otherwise you could useDEFAULT ON NULLclause to apply on the column.the
Virtual Columnmust be ignored inDMLoperations because the database system generates it automatically.To instruct Oracle to treat the single quote as part of a string value, enter two single quotes together in the value.
Inserting Data From an Existing Table
INSERT INTO tablename [(columnname,...)]
    subquery;
INSERT INTO acctbonus (amid, amsal, region)
    SELECT amid, amsal, region
        FROM acctmanager;Update
UPDATE tablename
SET columname = newvalue, ...
[WHERE condition];
UPDATE acctmanager
SET amedate = '01-AUG-09'
WHERE region in ('NE', 'NW');Substitution Variable in the SQL command instructs Oracle to substitute a value in place of the variable at the time the command is actually executed.
UPDATE customers
SET region = '®ion'
WHERE state = '&state';Delete
DELETE FROM tablename
[WHERE condition];
DELETE FROM acctmanager
WHERE amid = 'J500';Merge
MERGE command can compare two data sources or tables, and then determine which row need to be updated, which row need to be inserted.
MERGE INTO books_1 a
    USING books_2 b ON a.isbn = b.isbn
    WHEN MATCHED THEN
        UPDATE SET a.retail = b.retail, a.category = b.category
    WHEN NOT MATCHED THEN
        INSERT INTO (isbn, title, pubdate, retail, category) 
        VALUES (b.isbn, b.title, b.pubdate, b.retail, b.category);MERGE INTO books_1: books_1 is to be changedUSING books_2: books_2 provides the data to update or insert into books_1.WHEN MATCHED THEN: if a row match based on isbn is discovered, excute theUPDATEcommand.WHEN NOT MATCHED THEN: If no match is not found based on isbn (exist in books_2, not in books_1), performINSERTcommand.
Transaction Control
Transaction is a term used to describe DML statements representing data actions that should be logically performed together. You can either save all modified data permanently or undo all actions.
Commit
COMMIT command issued implicitly or explicityly permanently save the DML statements issued perviously.
explicit commit: Occurs when you execute
COMMITcommand.implicit commit:
Occurs when you exit client tool
Occurs when you execute
DDLcommand. the records manipulated perviously before aDDLcommand is issued are commited automatically and implicitly.
Rollback
all record manipulated perviously can be undone by issuing the ROLLBACK command, unless execute COMMIT command.
ROLLBACKcommand can reversed allDMLoperations since the last commit was issued.DDLcommands can not be rolled back, and a commit occurs automatically when they are executed.If the system crashes, a
ROLLBACKcommand occurs automatically after the system restarts, any uncommited operations are undone.
SavePoint
SAVPOINT command is to create a type of bookmark in the transaction. After pervious commands are completed to identify a particular point in the transaction - potential ROLLBACK point. If subquent portion of the transaction is canceled, any SQL statements after the SAVEPOINT command will be undone.
UPDATE acctmanager 
    SET region = 'E'
    WHERE amid = 'M500';
COMMIT;
UPDATE acctmanager
    SET REGION = 'M'
    WHERE amid = 'T500';
SAVEPOINT one;
UPDATE acctmanager
    SET amcomm = 6600
    WHERE amid = 'T500';
ROLLBACK TO one;
COMMITLast updated
Was this helpful?