After learning how to insert and edit data in a database, thesecond part of our SQL tutorial takes an in-depth look at the SELECTquery,and explains how to use joins, sub-queries and built-in functions tofocus in on the data you need.
If you'd like to see the data from your table ordered by a specific field, SQL offers the ORDER BY construct. This construct allows you to specify both the column name and the direction in which you would like to see data (ascending or descending).
For example, if you'd like to see data from the "members" table above arranged by id, you could try this:
mysql> SELECT * FROM members ORDER BY member_id;
+-----------+-------+---------+---------+----------------------------+
| member_id | fname | lname | tel | email |
+-----------+-------+---------+---------+----------------------------+
| 1 | John | Doe | 1234567 | jdoe@somewhere.com |
| 2 | Jane | Doe | 8373728 | jane@site.com |
| 3 | Steve | Klingon | 7449373 | steve@alien-race.com |
| 4 | Santa | Claus | 9999999 | santa@the-north-pole.com | |
+-----------+-------+---------+---------+----------------------------+
4 rows in set (0.06 sec)
And you could reverse the order with
mysql> SELECT * FROM members ORDER BY member_id DESC;
+-----------+-------+---------+---------+----------------------------+
| member_id | fname | lname | tel | email |
+-----------+-------+---------+---------+----------------------------+
| 4 | Santa | Claus | 9999999 | santa@the-north-pole.com | |
| 3 | Steve | Klingon | 7449373 | steve@alien-race.com |
| 2 | Jane | Doe | 8373728 | jane@site.com |
| 1 | John | Doe | 1234567 | jdoe@somewhere.com |
+-----------+-------+---------+---------+----------------------------+
4 rows in set (0.00 sec)
You can limit the number of records in the result set with
the LIMIT keyword - this keyword takes two parameters, which specify the row to start with and the number of rows to display. So the query
SELECT * FROM videos LIMIT 2,2;
would return rows 3 and 4 from the result set.
mysql> SELECT * FROM videos LIMIT 2,2;
+----------+------------------+--------------+
| video_id | title | director |
+----------+------------------+--------------+
| 3 | Charlie's Angels | McG |
| 4 | Any Given Sunday | Oliver Stone |
+----------+------------------+--------------+
2 rows in set (0.00 sec)
You can combine the ORDER BY and LIMIT constructs to quickly
get the four newest records in the table - as the following example demonstrates;
mysql> SELECT * FROM videos ORDER BY video_id DESC LIMIT 0, 4;
+----------+------------------+----------------+
| video_id | title | director |
+----------+------------------+----------------+
| 6 | Woman On Top | Fina Torres |
| 5 | Hollow Man | Paul Verhoeven |
| 4 | Any Given Sunday | Oliver Stone |
| 3 | Charlie's Angels | McG |
+----------+------------------+----------------+
4 rows in set (0.00 sec)
This article copyright Melonfire 2001. All rights reserved.