Difference between revisions of "SQL Syntax"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
Line 14: Line 14:
::FROM [[#table_reference|table_reference]]
::FROM [[#table_reference|table_reference]]
:::[ WHERE [[#where_clause|where_clause]] ]
:::[ WHERE [[#where_clause|where_clause]] ]
:::[ GROUP BY [[#group_by_clause|group_by_clause]]  [ HAVING [[#having_clause|having_clause]] ]  ]
:::[ GROUP BY [[#group_by_clause|group_by_clause]]  [ HAVING [[#group_by_clause|group_by_clause]] ]  ]
:::[ ORDER BY [[#order_by_clause|order_by_clause]] ]
:::[ ORDER BY [[#order_by_clause|order_by_clause]] ]
:::[ LIMIT [[#limit_clause|limit_clause]] ]
:::[ LIMIT [[#limit_clause|limit_clause]] ]
Line 21: Line 21:
:;DISTINCT:Eliminates duplicate rows from the result set.
:;DISTINCT:Eliminates duplicate rows from the result set.
:: For example: <tt>DISTINCT(customer_name, address)</tt>
:: For example: <tt>DISTINCT(customer_name, address)</tt>
:;HAVING clause:Is only allowed as part of a GROUP BY clause, for performance reasons.


''Learn more:'': [http://dev.mysql.com/doc/refman/5.5/en/select.html MySQL Select Statement syntax]
''Learn more:'': [http://dev.mysql.com/doc/refman/5.5/en/select.html MySQL Select Statement syntax]
Line 41: Line 42:


===group_by_clause===
===group_by_clause===
:GROUP BY ''column_name'' [ASC | DESC] &nbsp; [ , ''column_name'' [ASC | DESC] ... ] &nbsp; [ WITH ROLLUP ]
where:
:;''ASC'': Ascending (the default).
:;''DESC'': Descending.


===order_by_clause===
===order_by_clause===
:ORDER BY ''column_name'' [ASC | DESC] &nbsp; [, ''column_name'' [ASC | DESC] ...]   
:ORDER BY ''column_name'' [ASC | DESC] &nbsp; [ , ''column_name'' [ASC | DESC] ... ]   
where:
where:
:;''ASC'': Ascending (the default).
:;''ASC'': Ascending (the default).

Revision as of 00:25, 15 November 2011

Here is the syntax for the SQL SELECT statement that the SQL parser recognizes.

Considerations
  • SQL syntax is case insensitive.
  • Field and table names are case sensitive
Legend
  • [ x ] - Optional (one or none)
  • [, x ... ] - Optional additional values, in a comma-separated list
  • x | y - Choose one. Curly braces are added when needed: { x | y } ...
  • CAPITALIZED - SQL Keyword (case insensitive)
  • italicized - Value you supply. (Table names and column names are case-sensitive)

SELECT Statement

In a select statement, you designate one more columns separated by commas (or "*" for all columns), plus a table or join to get the data from, and additional options:

SELECT
[ DISTINCT ]
[ ( ]  column_expr [ , column_expr ... ]  [ ) ]
FROM table_reference
[ WHERE where_clause ]
[ GROUP BY group_by_clause  [ HAVING group_by_clause ]  ]
[ ORDER BY order_by_clause ]
[ LIMIT limit_clause ]

where:

DISTINCT
Eliminates duplicate rows from the result set.
For example: DISTINCT(customer_name, address)
HAVING clause
Is only allowed as part of a GROUP BY clause, for performance reasons.

Learn more:: MySQL Select Statement syntax

column_expr

*  |  table_alias.*  |  column_name [ [AS] column_alias ]  |  expr [AS] column_alias

where:

column_alias
Displays as the column name in the result set, in the SQL Browser.
Can be used as a field name in a group_by_clause or order_by_clause.
For example:
SELECT CONCAT(last_name,', ',first_name) AS full_name
FROM Customer_Contacts ORDER BY full_name;

expr

SQL Function
   | stuff...

table_reference

where_clause

group_by_clause

GROUP BY column_name [ASC | DESC]   [ , column_name [ASC | DESC] ... ]   [ WITH ROLLUP ]

where:

ASC
Ascending (the default).
DESC
Descending.

order_by_clause

ORDER BY column_name [ASC | DESC]   [ , column_name [ASC | DESC] ... ]

where:

ASC
Ascending (the default).
DESC
Descending.

limit_clause

maximum_rows  |  offset, maximum_rows

where:

maximum_rows
Maximum number of rows to return.
offset
The row to start from. Offset for the first row is zero (0).