Databases Reference
In-Depth Information
share your music database with someone else and they don't want your played data.
You do this with:
mysql> DELETE FROM played;
Query OK, 19 rows affected (0.07 sec)
This removes all rows, including those we just added in “The INSERT Statement”; you
can see that 19 rows have been affected.
The DELETE syntax doesn't include column names, since it's used to remove whole rows
and not just values from a row. To reset or modify a value in a row, you use the
UPDATE statement, described later in this chapter in “The UPDATE Statement.” The
DELETE statement doesn't remove the table itself. For example, having deleted all rows
in the played table, you can still query the table:
mysql> SELECT * FROM played;
Empty set (0.00 sec)
Of course, you can also continue to explore its structure using DESCRIBE or SHOW CREATE
TABLE , and insert new rows using INSERT . To remove a table, you use the DROP statement
described in Chapter 6.
Using WHERE, ORDER BY, and LIMIT
If you've deleted rows in the previous section, reload your music database now. You
need the rows in the played table restored for the examples in this section.
To remove one or more rows, but not all rows in a table, you use a WHERE clause. This
works in the same way as it does for SELECT . For example, suppose you want to remove
all rows from the played table with played dates and times earlier than August 15, 2006.
You do this with:
mysql> DELETE FROM played WHERE played < "2006-08-15";
Query OK, 8 rows affected (0.00 sec)
The result is that the eight played rows that match the criteria are removed. Note that
the date is enclosed in quotes and that the date format is year , month , day , separated
by hyphens. MySQL supports several different ways of specifying times and dates but
saves dates in this internationally friendly, easy-to-sort format (it's actually an ISO
standard). MySQL can also reasonably interpret two-digit years, but we recommend
against using them; remember all the work required to avoid the Y2K problem?
Suppose you want to remove an artist, his albums, and his album tracks. For example,
let's remove everything by Miles Davis. Begin by finding out the artist_id from the
artist table, which we'll use to remove data from all four tables:
mysql> SELECT artist_id FROM artist WHERE artist_name = "Miles Davis";
+-----------+
| artist_id |
+-----------+
| 3 |
 
Search WWH ::




Custom Search