2010-06-12 4 views
6

MySQL tiene una característica interesante (aunque no estándar) que permiten consultar límite de conjuntos de resultados, compensar como¿Qué base de datos inventó la sintaxis de consulta SQL "límite"?

SELECT * FROM TABLE LIMIT M, N; 

¿Es creado por MySQL? o Postgres?

+1

La sintaxis de MySQL es una mierda, el primer parámetro tiene dos significados diferentes: desplazamiento o límite. –

Respuesta

3

Entre PostgreSQL y MySQL, PostgreSQL copió la sintaxis LIMIT de MySQL (en v6.5), y agregó la sintaxis OFFSET (puede ser que también se haya copiado, pero creo que mysql solo tenía la sintaxis de coma de vuelta entonces). Fue entonces (7.2) cambiado a solo permite "LIMIT foo OFFSET bar" porque la sintaxis de MySQL no estaba clara.

10

Según Wikipedia, Rasmus Lerdorf (el creador original de PHP) utilizó por primera vez el "LÍMITE x" sintaxis en la base de datos mSQL:

Ha contribuido al Servidor Apache HTTP y él también se le ocurrió la cláusula LIMIT y la agregó a la base de datos mSQL en 1995. Es el origen de las cláusulas LIMIT encontradas en MySQL y PostgreSQL.

Limitar el conjunto de resultados es ahora también estandarizados, pero con una sintaxis más detallado:

SELECT * 
FROM T 
FETCH FIRST 10 ROWS ONLY 
+6

Para ser justo, 'FETCH FIRST 10 ROWS ONLY' solo apesta comparado con' LIMIT 10'. – doublep

+4

SQL estándar es una mierda Supongo que es una tradición. –

+1

@Mark Byers: es evidente que las personas que crearon VB deben consultar con las personas de ISO sobre estándares de SQL dado cuán detallado es eso. – Thomas

5

Postgres añadió el LIMIT syntax in v6.5, publicado el June 9th, 1999.

Based on the documentation, MySQL tenía la sintaxis LIMIT a partir de v3.23 (production release Jan, 2001). Pero los documentos en la URL son para 4.1, que no se lanzó hasta 2004.

SQL Server no tenía TOP hasta SQL Server 2000, shipping in late 2000.

Oracle ha tenido ROWNUM since Oracle 6, lanzado en . Más extraño aún, es que puede funcionar mejor en casos que ROW_NUMBER!

+1

hace 22 años? Wow ... ¡habla rápido! – CMircea

+0

LIMIT/OFFSET fue agregado en PostgreSQL 6.5, y está completamente documentado allí. Está enlazando a la documentación 6.3 ... (FWIW, 6.5 fue lanzado en junio de 1999, pero eso fue aún después de que MySQL agregó LIMIT) –

0

sé que Rdb (originalmente un producto diciembre Corporation, ya está disponible en Oracle) tenía LÍMITE n filas en 1991.

Compartir y disfrutar.

Cuestiones relacionadas