Home >> FAQs/Tutorials >> MySQL Tutorials >> Index

MySQL FAQs - Understanding SQL INSERT, UPDATE and DELETE Statements

By: FYIcenter.com

Part:   1   2  3  4  5  6  7 

A collection of 17 FAQs on Oracle SQL DML statements. Clear answers are provided with tutorial exercises on inserting and updating data rows; inserting and updating with subqueries; deleting data rows. Topics included in this FAQ are:

  1. What Are DML Statements?
  2. How To Create a Testing Table?
  3. How To Insert a New Row into a Table?
  4. How To Specify Default Values in INSERT Statement?
  5. How To Omit Columns with Default Values in INSERT Statement?
  6. What Happens If Unique Value Constraints Are Violated?
  7. How To Insert Multiple Rows with One INSERT Statement?
  8. How To Update Values in a Table?
  9. How To Update Values on Multiple Rows?
  10. How To Use Existing Values in UPDATE Statements?
  11. Is the Order of Columns in the SET Clause Important?
  12. How To Use Values from Other Tables in UPDATE Statements?
  13. What Happens If the UPDATE Subquery Returns No Rows?
  14. What Happens If the UPDATE Subquery Returns Multiple Rows?
  15. How To Delete an Existing Row from a Table?
  16. How To Delete Multiple Rows from a Table?
  17. How To Delete All Rows a Table?

Please note that all answers and tutorials are based on MySQL 5.0. Tutorial exercises should be executed with "mysql" or other MySQL client programs. It is also assumed that you have a MySQL user account and a predefined database with enough privileges.

Some sample scripts requires database tables created by other samples in the beginning of the collection.

What Are DML Statements?

DML (Data Manipulation Language) statements are statements to change data values in database tables. The are 3 primary DML statements:

  • INSERT - Inserting new rows into database tables.
  • UPDATE - Updating existing rows in database tables .
  • DELETE - Deleting existing rows from database tables.

How To Create a Testing Table?

If you want to practice DML statements, like INSERT, UPDATE and DELETE, you should create a testing table. The tutorial exercise shows you a good example:

mysql> CREATE TABLE fyi_links (id INTEGER PRIMARY KEY,
  url VARCHAR(80) NOT NULL,
  notes VARCHAR(1024),
  counts INTEGER,
  created TIMESTAMP DEFAULT CURRENT_TIMESTAMP());
  
Query OK, 0 rows affected (0.08 sec)

You should keep this table to practice other tutorial exercises presented in this collection.

How To Insert a New Row into a Table?

To insert a new row into a table, you should use the INSERT INTO statement with values specified for all columns as shown in the following example:

mysql> INSERT INTO fyi_links VALUES (101, 
  'dev.fyicenter.com', 
  NULL,
  0,
  '2006-04-30');
Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> SELECT id, url, notes, counts, DATE(created) 
   FROM fyi_links;
+-----+-------------------+-------+--------+---------------+
| id  | url               | notes | counts | DATE(created) |
+-----+-------------------+-------+--------+---------------+
| 101 | dev.fyicenter.com | NULL  |      0 | 2006-04-30    |
+-----+-------------------+-------+--------+---------------+
1 row in set (0.05 sec)

How To Specify Default Values in INSERT Statement?

If a column is defined with a default value in a table, you can use the key word DEFAULT in the INSERT statement to take the default value for that column. The following tutorial exercise gives a good example:

mysql> INSERT INTO fyi_links VALUES (102, 
  'dba.fyicenter.com', 
  NULL,
  0,
  DEFAULT);
Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> SELECT id, url, notes, counts, DATE(created) 
   FROM fyi_links;
+-----+-------------------+-------+--------+---------------+
| id  | url               | notes | counts | DATE(created) |
+-----+-------------------+-------+--------+---------------+
| 101 | dev.fyicenter.com | NULL  |      0 | 2006-04-30    |
| 102 | dba.fyicenter.com | NULL  |      0 | 2006-07-01    |
+-----+-------------------+-------+--------+---------------+
2 rows in set (0.00 sec)

(Continued on next part...)

Part:   1   2  3  4  5  6  7 


Selected Developer Jobs:

More...