Expressions are a common element of SQL statements, and they occur in many contexts. For example, expressions often occur in the WHERE clause of SELECT, DELETE, or UPDATE statements to identify which records to retrieve, delete, or update. But expressions may be used in many other places. For example, in the output column list of a SELECT statement, or in ORDER BY or GROUP BY clauses.

Terms of expressions consist of constants (literal numbers, strings, dates, and times), NULL values, references to table columns, and function calls. Terms may be combined using operators into more complex expressions. Many types of operators are available, such as those for arithmetic, comparison, logical, and pattern-matching operations.

Here are some examples of expressions:

  • The following statement refers to table columns to select country names and populations from the Country table:

    SELECT Name, Population FROM Country;
  • You can work directly with literal data values that aren't stored in a table. The following statement refers to several literal values: an integer, an exact-value decimal value, an approximate-value floating-point value in scientific notation, and a string value:

    SELECT 14, -312.82, 4.32E-03, 'I am a string';
  • Another way to produce data values is by invoking functions. This statement calls functions that return the current date and a server version string:


All these types of values can be combined into more complex expressions to produce other values of interest. The following statement demonstrates this:

mysql> SELECT Name, TRUNCATE(Population/SurfaceArea,2) AS 'people/sq. km',
    -> IF(GNP > GNPOld,'Increasing','Not increasing') AS 'GNP Trend'
    -> FROM Country ORDER BY Name LIMIT 10;

| Name                | people/sq. km | GNP Trend      |
| Afghanistan         |         34.84 | Not increasing |
| Albania             |        118.31 | Increasing     |
| Algeria             |         13.21 | Increasing     |
| American Samoa      |        341.70 | Not increasing |
| Andorra             |        166.66 | Not increasing |
| Angola              |         10.32 | Not increasing |
| Anguilla            |         83.33 | Not increasing |
| Antarctica          |          0.00 | Not increasing |
| Antigua and Barbuda |        153.84 | Increasing     |
| Argentina           |         13.31 | Increasing     |

The expressions in the preceding statement use these types of values:

  • Table columns: Name, Population, SurfaceArea, GNP, and GNPOld. (“GNP” means “gross national product.”)
  • Literal values: ‘Increasing’, ‘Not increasing’, and the column aliases are all string constants.
  • Functions: The numeric function TRUNCATE() formats the population/area ratio to two decimal places, and the logical function IF() tests the expression in its first argument and returns its second or third argument depending on whether the expression is true or false.

Posted in: MySQL

Related FAQ's

Marius Ion ANGEL HOT SOFT LLC (800) 316-7677