i am very confused
please help to clarify these differences!
are they all completely different languages? what开发者_StackOverflow中文版 is the overlap?
T-SQL and PL/SQL are extensions of SQL. Overlap is entirely dependent upon which versions of Oracle and SQL Server you are comparing. IE:
WITH syntax: Has been supported by Oracle since 9i - SQL Server support started with 2005.
ANSI-92 support: Oracle 9i+ vs SQL Server 2005+
- Analytics (ROW_NUMBER, RANK, DENSE_RANK)
- CASE statement
Regex Support: Oracle 10g+ vs SQL Server 2005+ (requiring CLR enabling & CLR function created)
PIVOT/UNPIVOT: SQL Server 2005+ vs Oracle 11g+
COALESCE: Oracle 9i+ vs SQL Server 2000+
TSQL - Transact SQL
PL/SQL - Is SQL for Oracle SQL Server
Access SQL - Is a hacked version of SQL
TSQL and PL/SQL are both based off of SQL ISO/ANSI Standards. It depends on the version of SQL Server(TSQL) or Oracle(PL/SQL) for what ISO/ANSI version they are using. See http://en.wikipedia.org/wiki/SQL for more info.
TSQL and PL/SQL just have extra functionality beyond ISO/ANSI SQL put in by the companies that made them. In general the ISO/ANSI SQL standard deal specifically with how you can Query a database and what structures you can have in the database (e.g. tables, triggers, stored procs, etc). TSQL and PL/SQL are true programming languages in that they can do loops and other things that a programming languages can do. Simply put TSQL and PL/SQL are turing complete and the ISO standards are not.
I am not sure about Access. I think it is just a hacked up version of SQL.
There are SQL standards, that most RDBMSs follow, but in order to be competitive, most companies add their own extensions.
Many times these are extensions that are simply not in a standard.
精彩评论