shsql: command syntax

SQL database system
| Manual page for command(syntax)

## Command syntax

These rules apply to shsql commands:

- Query "words" must generally be separated by whitespace. Quoted constants are considered one "word" for this purpose.`` Comma-delimited lists are considered one word.`` Otherwise, commas may trail words, but may not directly precede words.``
  Wrong: `SELECT A,B,C FROM TABLE WHERE A>10`
  Correct: `SELECT A, B, C FROM TABLE WHERE A > 10`
- Parentheses and carriage returns (newlines) may be used anywhere as desired for readability, except that newlines may not be embedded in literal text strings.``
- SQL command keywords, function names, and NULL are case insensitive.``
- Table names and field (column) names are case sensitive, max length 38 characters, may not contain any white space or punctuation character other than underscore (_), and must begin with an alphabetic character.`` (Temporary table names follow these rules too except that the first character in a temp table name is always the dollar sign ($)).``
- shsql reserved words should be avoided when choosing table and field names.`` The following should definitely not be used (upper or lower case): FROM WHERE VALUES INTO SET AND OR ON NULL
- Literal character strings are case sensitive and may be enclosed in double quotes (") or single quotes('). A literal quote may be represented by supplying a preceding backslash.``
- Allowable SQL syntax is limited to the constructs illustrated in this manual.`` Compound constructs (such as sub-selects) and some other variants are not supported. For example, joins always use "JOIN .. ON" syntax.`` WHERE clauses have some syntax limitations.
- No functions() are supported in WHERE clauses, and only aggregation functions such as count() and avg() are supported in SELECT item lists.`` Arithmetic, date and time handling, and string manipulation are not supported in WHERE clauses or item lists; these must be done by your middleware.``
- The default wild card character for use in WHERE clauses is *.`` To use the standard %, set `dbwildcard: %` in your project config file.``
- The table.fieldname construct can only be used when a join is being performed.
- The database.table.fieldname construct is not supported anywhere.``
  Copyright Steve Grubb

Markup created by unroff 1.0, `` `` March 18, 2004.