Difference between revisions of "Portable SQL/Common/Aliases"

From Linuxnetworks
Jump to: navigation, search
(not select-like statements)
Line 18: Line 18:
  
 
  SELECT MAX(id) AS maxid FROM table
 
  SELECT MAX(id) AS maxid FROM table
 +
 +
== Not SELECT-like statements ==
 +
 +
Some database engines doesn't support aliases for tables in other types of statements than SELECT. Namely SQLite bails out with a SQL parsing error if tables in these statement types are used:
 +
 +
* INSERT
 +
* UPDATE
 +
* DELETE
 +
 +
Aliases should be avoided for them to ensure portable statements.
  
  
 
----
 
----
 
Back to [[OpenDBX|Overview]]
 
Back to [[OpenDBX|Overview]]

Revision as of 22:44, 22 April 2008

Aliasing tables

Don't use the keyword "AS" between the table name and alias as no DBMS requires it and some don't recognize it. Instead, always write:

SELECT * FROM table t WHERE t.id = 0

Aliasing columns

Contrary to "Aliasing tables" the keyword "AS" between column name and alias is required by most database servers and should always be present:

SELECT count(*) AS cnt FROM table

Aliases for computed columns

The naming of computed columns implemented by the database servers is very different. Some name it like the computational expression ('count(*)'), most often in upper case and sometimes it isn't named at all. Therefore computed columns should be always given a name:

SELECT MAX(id) AS maxid FROM table

Not SELECT-like statements

Some database engines doesn't support aliases for tables in other types of statements than SELECT. Namely SQLite bails out with a SQL parsing error if tables in these statement types are used:

  • INSERT
  • UPDATE
  • DELETE

Aliases should be avoided for them to ensure portable statements.



Back to Overview