KEY --- Curly braces group alternatives together, and alternatives are separated by pipes: {this | that | t'other} Clauses in brackets are optional: You [and john] can come. An asterisk indicates 0 or more instances: I like to eat[ and eat]*. A plus-sign indicates 1 or more instances: Run fast,[ go]+! A plus-sign also indicates addition: select (1 + 3) from dual; Elements are defined in terms of other elements. : [0-9]+ means that a number is composed of one or more digits. : {integer | char() | varchar2() | date} means that a element is one of the four strings shown. : = means that a element is composed of a , followed by an equals sign and an . Readability of PL/SQL is much improved by highlighting certain keywords; this is why some word are in all caps. --- INSERTS and UPDATES ------------------- : insert into [] {values | : select [distinct] from [] [group-by] : [] : [] FUNDAMENTALS ------------ : [a-zA-Z][a-zA-Z0-9_]* - that is, a string of alphanumeric chars and underscores starting with an alpha char. : [0-9]+ : {integer | char() | varchar2() | date} : a temporary nickname for a table or column, for the purposes of condensing a query. LITERALS -------- : { | | | } : ( [, ]* ) : { | } + [ | ]* : { | } || [ | ]* NAMES and DEFINITIONS --------------------- : name of a column in a table in the current scope : ( [, ]* ) : : [, ]* : [default ] []* : name of a table in the current scope : [, ]* : {not null | primary key | references } CREATION -------- : create table ( ) : create table as