The simplest form of SELECT
retrieves everything from a table:
mysql> SELECT * FROM pet;
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1990-08-27 | NULL |
| Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+--------+---------+------+------------+------------+
This form of SELECT
uses
*
, which is shorthand for “select all
columns.” This is useful if you want to review your
entire table, for example, after you've just loaded it with
your initial data set. For example, you may happen to think
that the birth date for Bowser doesn't seem quite right.
Consulting your original pedigree papers, you find that the
correct birth year should be 1989, not 1979.
There are at least two ways to fix this:
Edit the file
pet.txt
to correct the error, then empty the table and reload it usingDELETE
andLOAD DATA
:mysql> DELETE FROM pet; mysql> LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet;
However, if you do this, you must also re-enter the record for Puffball.
Fix only the erroneous record with an
UPDATE
statement:mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';
The
UPDATE
changes only the record in question and does not require you to reload the table.
There is an exception to the principle that SELECT
*
selects all columns. If a table contains invisible
columns, *
does not include them. For more
information, see Section 15.1.20.10, “Invisible Columns”.