Difference between revisions of "SQL Syntax"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
Line 15: Line 15:
::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 [[#query|query]] [ {AND|OR} [[#query|query]] ... ]  ]  ]
:::[ GROUP BY [[#group_by_clause|group_by_clause]]  [HAVING [[#query|query]] [{AND|OR} [[#query|query]] ...]] ]
:::[ 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]] ]

Revision as of 00:42, 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 query [{AND|OR} query ...]] ]
[ ORDER BY order_by_clause ]
[ LIMIT limit_clause ]

where:

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

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

WHERE query [ {AND|OR} query ... ]

query

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).