Diferencias de Sintáxis entre varios Gestores

Diferencias de Sintaxis en SQL entre varios SGBDR
1/4
Diferencias de Sintaxis entre varios SGBDR (Sistemas Gestores de Bases de Datos Relacionales)
En LIKE
0 o más caráct.
ANSI SQL
MySQL
Teradata
%
_ (Subrayado)
[0-9]
Un carácter
Un dígito
Funciones Niládicas:
Fecha Actual
Hora Actual
Fecha y Hora
Usuario BBDD
CURRENT_USER
SESSION_USER
SESSION_USER()
Usuario S.O.
SYSTEM_USER
SYSTEM_USER()
SubCadena
-----------
Sys_Context('USERENV',
'SESSION_USER')
Sys_Context('USERENV',
'OS_USER')
||
CHAR[ACTER]_LENGTH
CHARS(txt) y -->
UPPER(txt)
LOWER(txt)
POSITION(subtxt in txt)
SUBSTRING
SUBSTR[ING]
(txt From ini [For long])
LENGTH(txt)
INSTR(subtxt in txt)
SubStr
(txt, ini, long)
Quita Espacios: Sintaxis genérica: TRIM( [Leading | Trailing | Both] [Carácter] [From] txt)
TRIM(Leading From txt)
A la Izquierda
TRIM(Trailing From txt)
A la Derecha
TRIM(txt)
TRIM(Both From txt)
Ambos lados
TRIM(txt)
© 2007 Joaquín Caselles - Curso de Lenguaje SQL (Ver. 1.5 • Febrero 2015)
SQL Server
Access
*
?
#
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER()
USER
Usuario Actual
Funciones de Cadena:
Concatenar
Longitud
Mayúsculas
Minúsculas
Encontrar
Oracle
Cast(getDate() AS Date)
Cast(getDate() AS Time)
CURRENT_USER
Date()
Time()
Now
CurrentUser
SESSION_USER
-----------
SYSTEM_USER
Environ('UserName')
+
LEN(txt)
&
Len(txt)
UCase(txt)
LCase(txt)
InStr(inicio, txt, subtxt)
CharIndex(subtxt, txt, inicio)
SUBSTRING
(txt, ini, long)
Mid(txt, ini [, long])
LTRIM(txt)
RTRIM(txt)
RTRIM(LTRIM(txt))
LTRIM(txt)
RTRIM(txt)
TRIM(txt)
sql.jjcaselles.com - sql.coninteres.es
Diferencias de Sintaxis en SQL entre varios SGBDR
ANSI SQL
Funciones de Fechas:
Parte de Fecha
Funciones Numéricas:
Entero Superior
Entero Inferior
Redondeo
Valor Absoluto
Potencia
e
exponente
e
resultado
Teradata
Oracle
EXTRACT(parte From Fecha_Hora)
SQL Server
Access
DatePart(parte , Fecha_Hora)
CEILING(valor)
CEIL(valor)
FLOOR(valor)
ROUND(valor, precisión)
ABS(valor)
POW
** / POWER
POWER
**
(base , exponente)
(base , exponente)
(base , exponente)
SQRT(valor)
DIV
/
/
dividendo % divisor
MOD(dividendo , divisor)
CEIL[ING](valor)
-----------
POWER
(base , exponente)
Raíz Cuadrada
División Entera
Resto
MySQL
= valor
Conversión
Funciones de Decisión:
Análisis
Si
Índice
Si Nulo ...
Nulo si ...
© 2007 Joaquín Caselles - Curso de Lenguaje SQL (Ver. 1.5 • Febrero 2015)
2/4
----------Int(valor)
base ^ exponente
Sqr(valor)
\
dividendo mod divisor
EXP(exponente)
LN(valor)
LOG(valor)
CAST(dato AS Tipo)
Específicas: CTipo(dato)
Case …When …Then … Else … End
Switch(Cond1, Valor1, C2,V2, ...)
Iif(condición, SiCierto, SiFalso)
Choose(índice, op1, op2, …)
COALESCE(expr, sustituto)
NULLIF(expresión, valor)
Iif(IsNull(expr), sustit, expr)
Iif(expr=valor, NULL, expr)
sql.jjcaselles.com - sql.coninteres.es
Diferencias de Sintaxis en SQL entre varios SGBDR
ANSI SQL
Operaciones de Conjuntos:
Unión
INTERSECT
Intersección
EXCEPT
Diferencia
MySQL
---------------------
Combinación Interna de Tablas:
Equivalencia
INNER JOIN
Cruzada
Natural
NATURAL JOIN
Combinación Externa (no exclusiva) de Tablas:
Izquierda
Derecha
Completa
FULL [OUTER] JOIN
----------Control de Transacciones:
Comienzo
Confirma
Deshace
START TRANSACTION
COMMIT
ROLLBACK
© 2007 Joaquín Caselles - Curso de Lenguaje SQL (Ver. 1.5 • Febrero 2015)
Teradata
Oracle
UNION [ALL]
INTERSECT
EXCEPT / MINUS
MINUS
[INNER] JOIN
, (Coma) o CROSS JOIN
NATURAL JOIN
LEFT [OUTER] JOIN
RIGHT [OUTER] JOIN
FULL [OUTER] JOIN
(Implicito) COMMIT
COMMIT
ROLLBACK
SQL Server
Access
EXCEPT
---------------------
3/4
INNER JOIN
-----------
, (Coma) (Implícita)
-----------
-----------
BEGIN TRAN[SACTION]
COMMIT [TRAN]
COMMIT
ROLLBACK [TRAN]
ROLLBACK
sql.jjcaselles.com - sql.coninteres.es
Diferencias de Sintaxis en SQL entre varios SGBDR
Tipos de Datos:
Lógico
Texto (long. fija)
Texto (long. var.)
Entero (1 byte)
Entero (2 bytes)
Entero (4 bytes)
Entero (8 bytes)
Decimal
Coma Flotante
Fecha
Hora
Instante
ANSI SQL
Boolean
Char
VarChar
MySQL
Boolean
Char
VarChar
SmallInt
Integer
SmallInt
Integer
Decimal
Float
Date
Time
TimeStamp
Binary Large Object BLOB
Decimal
Float
Date
----BLOB
Sinónimos en SQL Server 2005:
Sinónimo
SQL Server 2005
Binary varying
varbinary
char varying
varchar
character
char
character
char(1)
character(n)
char(n)
character varying(n)
varchar(n)
Dec
decimal
Double precision
float
float[(n)] para n=1-7
real
float[(n)] para n=8-15
float
integer
int
national character(n)
nchar(n)
national char(n)
nchar(n)
national character
nvarchar(n)
national char varying(n) nvarchar(n)
national text
ntext
rowversion
timestamp
© 2007 Joaquín Caselles - Curso de Lenguaje SQL (Ver. 1.5 • Febrero 2015)
Teradata
Char
VarChar
ByteInt
SmallInt
Integer
BigInt
Decimal(n,m)
Date
Time
TimeStamp
Oracle
--[N]Char
[N]VarChar2
SmallInt
Integer
Number [(p[, s])]
Float
Date
--TimeStamp
BLOB (máx. 4 Gb)
SQL Server
Bit
[N]Char, Character
[N]VarChar
TinyInt
SmallInt
Int, Integer
BigInt
Decimal / Numeric
Float
(4 u 8 bytes)
DateTime
DateTime
TimeStamp
Binary
4/4
Access
Bit / Boolean
Character
Text
Byte
SmallInt / Integer2
Integer / Integer4
Decimal
Float
Date
DateTime
--Binary
(17 bytes)
(8 bytes)
(8 bytes)
Tipos de Datos en SQL Server 2005:
Numéricos exactos
Int (4 bytes), BigInt (8 bytes), SmallInt (2 bytes), TinyInt (1 bytes)
Numeric / Decimal (5, 9, 13 o 17 bytes), Bit (1 bit - 1 Byte)
Money (8 bytes), SmallMoney (4 bytes)
Numéricos aproximados
Real (4 bytes), Float (4 u 8 bytes)
Fecha y hora
DateTime (8 bytes), SmallDateTime (4 bytes)
Cadenas de caracteres
Text, Char, VarChar (Text desaparecerá en el futuro)
Cadenas de caracteres Unicode
nText, nChar, nVarChar
Cadenas binarias
Binary, VarBinary
Otros tipos de datos
Cursor, Table, TimeStamp
XML, SQL_Variant
Uniqueidentifier
sql.jjcaselles.com - sql.coninteres.es