Difference between revisions of "SQL Syntax"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
Line 9: Line 9:
==SELECT Statement==
==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:  
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:  
<div style="font-family:monospace; font-size:larger">
:SELECT
:SELECT
::[ DISTINCT ]
::[ DISTINCT ]
Line 14: 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]] &nbsp;[ HAVING [[#query|query]] [ {AND|OR} [[#query|query]] ... ]&nbsp; ]&nbsp; ]
:::[ GROUP BY [[#group_by_clause|group_by_clause]] &nbsp;[ HAVING [[#query|query]] [ {AND|OR} [[#query|query]] ... ]&nbsp; ] &nbsp;]
:::[ 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]] ]
 
</div>
where:
where:
:;DISTINCT:Eliminates duplicate rows from the result set.
:;DISTINCT:Eliminates duplicate rows from the result set.
Line 25: Line 26:
''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]
===column_expr===
===column_expr===
<div style="font-family:monospace; font-size:larger">
: * &nbsp;|&nbsp; ''table_alias''.* &nbsp;|&nbsp; ''column_name'' [ [AS] ''column_alias'' ] &nbsp;|&nbsp; [[#expr|expr]] [AS] ''column_alias''  
: * &nbsp;|&nbsp; ''table_alias''.* &nbsp;|&nbsp; ''column_name'' [ [AS] ''column_alias'' ] &nbsp;|&nbsp; [[#expr|expr]] [AS] ''column_alias''  
 
</div>
where:
where:
:;''column_alias'': Displays as the column name in the result set, in the [[SQL Browser]].<br>Can be used as a field name in a [[#group_by_clause|group_by_clause]] or [[#order_by_clause|order_by_clause]].
:;''column_alias'': Displays as the column name in the result set, in the [[SQL Browser]].<br>Can be used as a field name in a [[#group_by_clause|group_by_clause]] or [[#order_by_clause|order_by_clause]].
Line 34: Line 36:


===expr===
===expr===
<div style="font-family:monospace; font-size:larger">
::[[SQL Functions|SQL Function]]
::[[SQL Functions|SQL Function]]
:&nbsp;&nbsp; | stuff...
:&nbsp;&nbsp; | stuff...
 
</div>
===table_reference===
===table_reference===


===where_clause===
===where_clause===
<div style="font-family:monospace; font-size:larger">
:WHERE [[#query|query]] [ {AND|OR} [[#query|query]] ... ]
:WHERE [[#query|query]] [ {AND|OR} [[#query|query]] ... ]
 
</div>
===query===
===query===




===group_by_clause===
===group_by_clause===
:GROUP BY ''column_name'' [ASC | DESC] &nbsp; [ , ''column_name'' [ASC | DESC] ... ] &nbsp; [ WITH ROLLUP ]
<div style="font-family:monospace; font-size:larger">
:GROUP BY ''column_name'' [ASC | DESC] &nbsp;[ , ''column_name'' [ASC | DESC] ... ] &nbsp;[ WITH ROLLUP ]
</div>
where:
where:
:;''ASC'': Ascending (the default).
:;''ASC'': Ascending (the default).
Line 52: Line 58:


===order_by_clause===
===order_by_clause===
:ORDER BY ''column_name'' [ASC | DESC] &nbsp; [ , ''column_name'' [ASC | DESC] ... ]   
<div style="font-family:monospace; font-size:larger">
:ORDER BY ''column_name'' [ASC | DESC] &nbsp;[ , ''column_name'' [ASC | DESC] ... ]   
</div>
where:
where:
:;''ASC'': Ascending (the default).
:;''ASC'': Ascending (the default).
Line 58: Line 66:


===limit_clause===
===limit_clause===
<div style="font-family:monospace; font-size:larger">
: ''maximum_rows'' &nbsp;|&nbsp;  ''offset, maximum_rows''  
: ''maximum_rows'' &nbsp;|&nbsp;  ''offset, maximum_rows''  
</div>
where:
where:
:;''maximum_rows'': Maximum number of rows to return.
:;''maximum_rows'': Maximum number of rows to return.
:;''offset'': The row to start from. Offset for the first row is zero (0).
:;''offset'': The row to start from. Offset for the first row is zero (0).

Revision as of 00:40, 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).