Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuáles son las diferencias funcionales entre SQL y Oracle?

¿Cuáles son las diferencias funcionales entre SQL y Oracle?

Muchas empresas de software comprenden la importancia de desarrollar aplicaciones que no dependan de un tipo de base de datos específico (como Oracle, SQL Server, DB2), lo que permite a los clientes elegir la plataforma a la que están acostumbrados. En términos generales, los desarrolladores de software pueden identificar a sus clientes quiénes son responsables del mantenimiento de la base de datos y quiénes deben utilizar la plataforma y la personalización existentes.

En cuanto a las diferencias entre Oracle y SQL Server, ha habido muchos artículos que describen las diferencias generales entre los dos desde la perspectiva de la empresa y la perspectiva del administrador de la base de datos. En este artículo, le describiré las diferencias entre las plataformas SQL Server y Oracle desde la perspectiva de la aplicación, y discutiré varias formas posibles de desarrollar aplicaciones que no dependan de un entorno de base de datos. Al mismo tiempo, no discutiré las diferencias obvias entre las dos plataformas para aplicaciones, como la partición y la indexación de tablas.

Definir interfaces y lenguajes comunes. Hay algunos lenguajes e interfaces comunes que permiten que las aplicaciones no dependan de bases de datos. Presumiblemente, también se pueden aplicar a bases de datos relacionales de la misma manera: ANSI es un. Estándar nacional estadounidense. Según lo define la Oficina, es una organización de miembros voluntarios (operados con fondos privados) que desarrollan estándares reconocidos a nivel nacional en una amplia gama de áreas relacionadas con equipos y procedimientos. En el campo de la base de datos, ANSI define estándares para escribir comandos SQL, asumiendo que el comando se puede ejecutar en cualquier base de datos sin cambiar la sintaxis del comando. ODBC es la interfaz Open Database Connectivity (ODBC), definida por Microsoft, que permite a las aplicaciones acceder a datos en un sistema de gestión de bases de datos (DBMS), utilizando SQL como estándar para acceder a los datos. ODBC permite la máxima interconectividad, lo que significa que una única aplicación puede acceder a diferentes sistemas de gestión de bases de datos. Los usuarios finales de la aplicación pueden luego agregar un controlador de base de datos de conectividad abierta de bases de datos (ODBC) para vincular la aplicación con el sistema de administración de bases de datos de su elección. OLE DB es el sucesor de ODBC. Es un conjunto de componentes de software que permiten conectar cualquier componente de software "front-end" basado en VB, C++, Access, etc. a un back-end como SQL Server, Oracle,. DB2, MySQL, etc. En muchos casos, el componente OLE DB proporciona un rendimiento mucho mejor que el ODBC original. La API JDBC (Java Database Connectivity) es el estándar de la industria para conexiones independientes de bases de datos entre el lenguaje de programación Java y una amplia gama de bases de datos, bases de datos SQL y otras fuentes de datos tabulares (como hojas de cálculo o archivos de texto sin formato). La interfaz del programa de aplicación JDBD proporciona una interfaz del programa de aplicación a nivel de llamada para el acceso a la base de datos basada en SQL. Interfaz común en el mundo real Desafortunadamente, no todos los comandos a nivel de base de datos son ANSI y cada plataforma de base de datos tiene sus propias extensiones. Para ANSI o interfaz universal, en general, representa varias funciones, por lo que también puede significar la pérdida de competitividad en el desempeño. Para bases de datos pequeñas y aplicaciones pequeñas, mantener el acceso universal a la base de datos es simple, pero a medida que la base de datos y/o la aplicación se vuelve más grande y compleja, debe agregar funcionalidad al código.

Comparación de funciones comunes entre SQL Server y Oracle

---------Funciones matemáticas

1. p >S:seleccione valor abs(-1)

O:seleccione valor abs(-1) de doble

2. Redondo (grande)

S. :seleccione el valor del techo(-1.001)

O:seleccione el valor del techo(-1.001) de doble

3. Redondeo (pequeño)

S:seleccione el piso (-1.001) valor

O:seleccione valor de piso(-1.001) de doble

4. Redondeo (intercepción)

S:seleccione reparto (-1.002). como int) valor

O: seleccione el valor trunc(-1.002) de dual

5 Redondeo

S: seleccione el valor redondo(1.23456,4) 1.23460.

O:seleccione el valor redondo(1.23456,4) de dual 1.2346

6.e es la potencia de la base

S:seleccione Exp(1) valor 2,7182818284590451

O: seleccione el valor Exp(1) del dual 2,71828182

7. Tome el logaritmo de e como base

S: seleccione log(2,7182818284590451 ) valor 1

O: seleccione el valor ln(2.7182818284590451) de dual; 1

8. Tome 10 como logaritmo base

S: seleccione log10(10. ) valor 1

O: seleccione el valor log(10,10) de dual 1

9. valor 16

O:seleccione el valor de potencia(4,2) de dual 16

10. Saque la raíz cuadrada

S:seleccione el valor SQRT(4). 2

O:selecciona el valor SQRT(4) del dual 2

11 Encuentra la potencia de cualquier número a la base

S:selecciona la potencia(3. ,4) valor 81

O: seleccione el valor de potencia (3,4) de dual 81

12. Obtenga números aleatorios

S: seleccione rand(). valor

O: seleccione sys.dbms_random.value(0,1) valor de dual;

13. Obtenga el signo

S: seleccione signo (- 8) valor -1

O: seleccione el valor del signo (-8) del dual -1

----------Funciones trigonométricas relacionadas

14. Pi

p>

S:SELECT PI() valor 3.1415926535897931

O: No sé

15. Los parámetros cos y tan están todos en radianes

Por ejemplo: seleccione el valor sin(PI()/2) y obtenga 1 (SQLServer)

>

16.Asin, Acos, Atan, Atan2 devuelve radianes

17 Intercambio de ángulos en radianes (SQLServer, Oracle no lo sabe)

GRADOS: radianes -> ángulos p>

RADIANOS: ángulo -> radianes

---------Comparación entre valores

18. p>

S:seleccione el valor máximo (valor) de

(seleccione 1 valor

unión

seleccione -2 valor

unión

selecciona 4 valores

unión

selecciona 3 valores)a

O:selecciona mayor(1,-2,4 ,3) valor de dual

19. Encuentre el valor mínimo del conjunto

S: seleccione el valor mínimo (valor) de

(seleccione 1 valor

unión

seleccione -2 valores

unión

seleccione 4 valores

unión

seleccione 3 valores)a

O: seleccione el valor mínimo (1,-2,4,3) de dual

20. F2 se reemplaza por 10)

S:seleccione el valor F1,IsNull(F2,10) de Tbl

O:seleccione el valor F1,nvl(F2,10) de Tbl

------- -Función de cadena

21. Buscar el número de serie del carácter

S: seleccione el valor ascii('a')

O: seleccione el valor ascii('a') de dual

22 Buscar caracteres de números de serie

S: seleccione el valor char(97)

O: seleccione el valor chr(97) de dual

Conexión 23

S: seleccione el valor '11'+'22'+'33'

O :seleccione CONCAT('11','22')| |33 valor de dual

Posición de subcadena 23. Devuelve 3

S:seleccione CHARINDEX('s',' sdsq',2) valor

O: seleccione el valor INSTR('sdsq','s',2) de dual

23. si se elimina el % medio del parámetro, se devolverá 7

// Este artículo es una reproducción de la investigación de C++Builder - /article.asp?i=996&d=dwn1rn

S:select patindex('%d%q%','sdsfasdqe') value

O: Oracle no lo encontró, pero instr puede controlar el número de ocurrencias a través del cuarto parámetro

seleccione el valor INSTR('sdsfasdqe','sd',1,2) de los retornos duales 6

24. Buscar subcadenas

S: seleccione subcadena('abcd', 2,2) valor

O: seleccione el valor substr('abcd',2,2 ) de dual

25. En su lugar, la subcadena devuelve aijklm.

nef

S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') valor

O:SELECT Reemplazar('abcdef', 'bcd', 'ijklmn') valor de dual

26. Reemplazar todas las subcadenas

S:Reemplazar

O:select Translate('fasdbfasegas','fa','I' ) value desde dual

27. Longitud

S:len,datalength

O:length

28. p>

29. Ponga en mayúscula la primera letra de la palabra

S: No encontrado

O: seleccione el valor INITCAP('abcd dsaf df') de dual

30. Relleno izquierdo con espacios (si el primer parámetro de LPAD es un espacio, es lo mismo que la función de espacio)

S: seleccione espacio(10)+valor 'abcd'

O: seleccione el valor LPAD('abcd',14) de dual

31 Complete los espacios a la derecha (si el primer parámetro de RPAD es un espacio, es lo mismo que la función de espacio)

S:seleccione el valor 'abcd' +espacio(10)

O:seleccione el valor RPAD('abcd',14) de dual

32. Eliminar espacios

S:ltrim,rtrim

O:ltrim,rtrim,trim

33. :select REPLICATE('abcd',2) value

O: No encontrado

34. Comparación de similitud de pronunciación (las dos palabras devuelven el mismo valor y tienen la misma pronunciación)

S: SELECCIONAR SOUNDEX ('Smith'), SOUNDEX ('Smythe')

O:SELECCIONAR SOUNDEX ('Smith'), SOUNDEX ('Smythe') de dual

Utilice SELECT DIFFERENCE('Smithers', 'Smythers') en SQL Server Compare la diferencia de soundex

Devuelva 0-4, 4 es homófono, 1 es el más alto

-------------Función de fecha

35. Hora del sistema

S:seleccione el valor de getdate()

O:seleccione valor de sysdate de dual

36. Varios días antes y después

Suma y resta directamente con números enteros

37. S: seleccione el valor convert(char(10),getdate(),20)

O: seleccione el valor trunc(sysdate) de dual

seleccione to_char(sysdate,'yyyy-mm -dd') valor de dual

38. Encuentra la hora

S: selecciona convert(char(8),getdate(),108) value

O: seleccione el valor to_char(sysdate,'hh24:mm:ss') de dual

39. Obtenga otras partes de las funciones de fecha y hora

S:DATEPART y DATENAME (determinadas). por el primer parámetro)

O: El segundo parámetro de la función to_char determina

Parámetros-------------------------------- - Es necesario complementar la siguiente tabla

año yy, yyyy

trimestre qq, q (trimestre)

mes mm, m (m O no es válido)

día del año dy, y (O representa la semana)

día dd, d (d O no es válido)

semana semana, ww (la semana O no es válida)

día laborable dw (O no está claro)

Hora hh,hh12,hh24 (hh12,hh24 S no es válido)

minuto mi, n (n O no es válido)

segundo ss, s (s O no es válido)

milisegundo ms (O no es válido)

--------- ------------ --------------------------

40. del mes

S: No lo sé

p>

O: seleccione el valor LAST_DAY(sysdate) de dual

41. semana (como el domingo)

S: No lo sé

O:SELECT Next_day(sysdate,7) vaule FROM DUAL;

Convertir cadena a hora

S: puede convertir directamente o seleccionar el valor cast('2004-09-08' como fecha y hora)

O:SELECT To_date('2004-01-05 22: 09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;

43. Encuentra la diferencia entre una determinada parte de dos fechas (como segundos)

S: seleccione el valor de dateiff(ss,getdate(),getdate()+12.3)

O: reste directamente dos fechas (por ejemplo, d1-d2=12.3)

SELECT (d1-d2)*24*60*60 vaule FROM DUAL;

44. Según la diferencia Encuentra la nueva fecha (como minutos)

S:select dateadd (mi,8,getdate()) valor

O:SELECT sysdate+8/60/24 vaule FROM DUAL

Buscar horas en diferentes zonas horarias

S: No lo sé

O: SELECCIONE New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL

-----Parámetros de zona horaria; , Beijing en el Distrito 8 Este debe ser Ydt-------

AST ADT Hora estándar del Atlántico

BST BDT Hora estándar del mar de Bering

CST CDT Hora estándar central

EST EDT Hora estándar del este

GMT Hora media de Greenwich

HST HDT Hora estándar de Alaska — Hawái

MST MDT Montaña Hora estándar

NST Hora estándar de Terranova

PST PDT Hora estándar del Pacífico

YST YDT Hora estándar de YUKON

Funciones de caracteres compatibles con Oracle y sus equivalentes de Microsoft SQL Server:

Funciones Oracle Microsoft SQL Server

Convertir caracteres a ASCII ASCII ASCII

Conexión de cadena CONC

AT (expresión + expresión)

Convertir ASCII a caracteres CHR CHAR

Devuelve el carácter inicial de la cadena (desde la izquierda) INSTR CHARINDEX

Convertir caracteres LOWER LOWER

Convertir caracteres a mayúsculas UPPER UPPER

Rellenar el lado izquierdo de la cadena LPAD N/A

Borrar el espacio en blanco inicial LTRIM LTRIM

Borrar espacios en blanco al final RTRIM RTRIM

Iniciar patrón en cadena INSTR PATINDEX

Repetir cadena RPAD REPLICATE varias veces

La representación fonética de una cadena SOUNDEX SOUNDEX

Una cadena de espacios repetidos RPAD SPACE

Convertir de datos digitales a datos de caracteres TO_CHAR STR

Subcadena SUBSTRING

p>

Reemplazar carácter REPLACE STUFF

Escribir en mayúscula la primera letra de cada palabra en la cadena INITCAP N/A

Traducir la cadena TRANSLATE N/A

Longitud de la cadena LENGTH DATELENGTH o LEN

La cadena más grande de la lista GREATEST N/A

La cadena más pequeña de la lista MENOS N/A

Si es NULL, convierte la cadena NVL ISNULL

Función de fecha

Función Oracle Microsoft SQL Server

Adición de fecha (columna de fecha +/- valor) o

ADD_MONTHS DATEADD

La diferencia entre dos fechas (columna de fecha +/- valor) o

MONTHS_BETWEEN DATEDIFF

La fecha y hora actuales SYSDATE GETDATE()

La último día del mes LAST_DAY N/A

Conversión de zona horaria NEW_TIME N/A

El primer domingo después de la fecha NEXT_DAY N/A

Una cadena que representa una fecha TO_CHAR DATENAME

Un número entero que representa una fecha TO_NUMBER

(TO_CHAR)) DATEPART

Redondeo de fechas ROUND CONVERT

Truncamiento de fechas TRUNC CONVERT

Convertir cadena a fecha TO_DATE CONVERT

Convertir fecha si NULL NVL ISNULL

Función de conversión

Función Oracle Microsoft SQL Server

Convertir números a caracteres TO_CHAR CONVERT

Convertir caracteres a números TO_NUMBER CONVERT

Convertir fechas a caracteres TO_CHAR CONVERT

Convertir caracteres a fechas TO_DATE CONVERT

Convertir hexadecimal a binario HEX_TO_RAW CONVERT

Convertir binario a hexadecimal RAW_TO_HEX CONVERT

Otras funciones a nivel de fila

Función Oracle Microsoft SQL Server

Devuelve la primera expresión no vacía DECODE COALESCE

El valor de secuencia actual CURRVAL N/A

Siguiente valor de secuencia NEXTVAL N/A

Si exp1 = exp2, devuelve nulo

l DECODE NULLIF

Número de identificación de la cuenta de inicio de sesión del usuario UID SUSER_ID

Nombre de inicio de sesión del usuario USER SUSER_NAME

Número de identificación de la base de datos del usuario UID USER_ID

Usuario Nombre de la base de datos USER USER_NAME

Usuario actual CURRENT_USER CURRENT_USER

Entorno de usuario (pista de auditoría) USERENV N/A

Nivel en la cláusula CONNECT BY LEVEL N/ A

Función de agregación

Función Oracle Microsoft SQL Server

Promedio AVG AVG

Conteo COUNT COUNT

Máximo MAX MAX

Mínimo MIN MIN

Desviación estándar STDDEV STDEV o STDEVP

Suma SUM SUM

Varianza VARIANCE VAR o VARP

Oracle también tiene una función útil EXTRACT, que extrae y devuelve un dominio de tiempo específico en una expresión de fecha, hora o intervalo de tiempo:

EXTRACT(AÑO DESDE fecha)