2009-11-11 38 views
33

¿Alguien puede recomendar un buen manual de referencia ANSI SQL?ANSI SQL Manual

No es necesario que signifique un tutorial sino un documento de referencia adecuado para buscar cuando necesite una explicación o un ejemplo básico o más profundo.

Actualmente estoy usando W3Schools SQL Tutorial y SQL Tutorial que están bien, pero no los encuentro "lo suficientemente" profundos.

Por supuesto, cada productor importante de RDBMS tendrá algún tipo de manuales de referencia dirigidos a su propio producto, pero tienden a ser parciales y en algún momento usarán extensiones propietarias.

EDITADO: El objetivo de la pregunta era centrarse en las cosas que los motores de bases de datos tienen en común, es decir, las raíces de SQL. Pero entender las diferencias también puede ser algo positivo: this es bastante interesante.

+2

¿Cuál sería el punto de tener un documento de este tipo? Para utilizar realmente una base de datos real, necesita el documento del productor de RDBMS con el sesgo del producto y las extensiones de producto. ¿Que estás tratando de hacer? –

+13

Normalmente trato de evitar extensiones propietarias si hay disponible una alternativa de SQL Ansi. – Adrian

+2

¿Por qué? Las características de propiedad son usualmente más eficientes. Nunca utilizo el estándar ansii si hay una mejor versión de sql disponible. Dado que la mayoría de las bases de datos no implementan el estándar por completo o con los mismos resultados para las mismas consultas (Oracle y SQl Server manejan algo de manera diferente y el código estándar ANSII no siempre dará los mismos resultados en ambas bases de datos con los mismos registros), usando El estándar ANSII no te ayuda mucho. – HLGEM

Respuesta

24

Aquí está el ‘Segundo Proyecto de Revisión informal’ de SQL:1992, que parece haber sido lo suficientemente precisa para todo lo que he mirado hacia arriba. 1992 cubre la mayoría de las cosas que se utilizan habitualmente en los SGBD.

+8

ISO tiene una [lista de estándares disponibles gratuitamente] (http://www.iso.org/PubliclyAvailableStandards). Contiene la _Tecnología de información - Lenguajes de base de datos - SQL - Parte 1: Framework (SQL/Framework) _ (ISO/IEC 9075-1: 2008). (Esta debería ser la primera parte de la serie de estándares, que no están tan públicamente disponibles.) Está en formato PDF, por lo que debería ser una mejor lectura de la versión de texto (¿es más antigua?). –

5

El principal problema con un manual de referencia ANSI SQL es que no puede encontrar un DB que lo implemente. Y cuando lo haga, entonces verá que ANSI SQL no puede resolver algunos de los problemas diarios. Por eso, todas las bases de datos profesionales definen extensiones.

En el trabajo, necesitará un manual de referencia para la versión específica de la base de datos que utiliza.

+0

¿No hay sql lite que está lleno ansi-92? para el estudio podría encajar perfectamente. Y sí, ansi sql no resuelve los problemas cotidianos, pero también lo hace cada dialecto sql, lo que significa que necesita la parte de procedimiento, etc. pero ese es el espíritu sql, la Q solo es para consultas aquí, es correcto hacer el resto con otras herramientas específicas, son extensiones de idioma o una lengua donde sql está incrustado como una biblioteca – netalex

+1

He estado trabajando con Oracle, DB2, MySQL , Sybase, H2 y muchos más. Ninguno de ellos es muy parecido, incluso cuando solo mira la parte Q (consulta). Oracle admite consultas recursivas y sugerencias de optimizador, por ejemplo. No estoy seguro de qué partes del estándar SQL Lite implementa, pero es un punto discutible. Si limita sus estudios a ANSI-92, tropezará con muchos detalles adicionales cuando intente aplicarlo por primera vez. Yo, por ejemplo, no he sentido la necesidad de analizar el estándar desde que dejé la universidad hace 20 años. –

+0

Creo que estamos diciendo lo mismo. es decir, la parte no estándar en dialecto sql es la parte que para sqllite tiene que ser reproducida por el lenguaje de programación de host (c, javascript ...) – netalex

6

Todos los documentos ANSI pueden comprarse desde, lo adivinaron, ANSI.

http://webstore.ansi.org/

+0

La pregunta fue sobre una referencia de SQL. La respuesta por lo tanto tiene que ser ANSI. +1 –

+0

Y son muy baratos también ... oh, espera. –

14

SQL no es como C o Java, donde hay un estándar para el idioma, y ​​luego una serie de empresas y organizaciones están implementando el lenguaje de la mejor manera posible, siguiendo el estándar.

En su lugar, las principales bases de datos llegaron antes que el estándar SQL, y el estándar es una especie de compromiso en el que cada proveedor de bases de datos quería obtener su dialecto y características particulares en el estándar.

Por lo tanto, hay mucha más variedad entre las bases de datos que entre los compiladores típicos del lenguaje de programación, y para usar una base de datos, realmente necesita saber ese dialecto SQL en particular.

Habiendo dicho eso, tengo Gultzan y Peltzer's SQL-99 Complete, Really aquí en mi estantería. Es un buen libro si necesita saber qué contiene realmente el estándar. (Y sí, hay una versión más reciente desde SQL-99, pero nadie parece importarle.)

EDIT: En realidad, no es sólo una versión más reciente desde SQL-99, pero tres: SQL: 2003, SQL: 2006 y SQL: 2008. Y aún a nadie parece importarle. De hecho, muchos ni siquiera se preocupan por SQL-99, por lo que SQL-92 sigue siendo, en cierto modo, "el estándar".

+0

+1 Uso el mismo libro que mi referencia para SQL estándar. Muchos proveedores * han * implementado características de SQL-99 y SQL: 2003, ¡así que no es como si a nadie le importara! Solo les toma más de 10 años llegar a eso. :-) –

+4

¿No es C exactamente como SQL de esta manera, con muchas extensiones diferentes que compiten antes del esfuerzo de estandarización? (Que produjo C89, por lo que puede parecer * ahora * como si todos siguieran el estándar, 20 años después). –

+2

SQL-99 Completo, Realmente ahora es gratis, en línea: https://mariadb.com/kb/en/sql -99/ –

1

me gusta casi cualquier cosa Joe Celko ha escrito Celko's Books

+0

+1. Buenos libros. – z5h

+1

Acepto que vale la pena leer los libros de Celko, pero no son libros completos de referencia de SQL. –

0

Los recursos DevGuru siempre ha funcionado bien para mí: http://www.devguru.com/technologies/t-sql/home.asp

Aunque debo admitir que no es estrictamente un recurso enfocado 'ANSI'. Siempre he estado centrado en MS SQL, y fue útil para mí cuando comencé. En mi humilde opinión, su mejor opción será utilizar varios recursos, que incluyen específicamente al menos uno de cada plataforma de DB que desee utilizar.

para citar la introducción DevGuru por su recurso de T-SQL:

Aunque existen estándares para SQL, tales como ANSI SQL92 y SQL99, la mayoría de bases de datos utilizan su propio dialecto y/o extensiones. El sabor de SQL de Microsoft utilizado en SQL Server 7 y SQL Server 2000 se llama T-SQL. Mientras que muchos de los ejemplos en esta referencia rápida pueden funcionar en otras bases de datos, es se supone que se utiliza SQL Server 2000, especialmente para temas avanzados como procedimientos almacenados.

2

Esto me recuerda mi segundo curso universitario donde aprendemos teoría relacional en lugar de SQL.

Lea un buen libro sobre Relational Theory. La teoría y la práctica de la base de datos han evolucionado desde que Edgar Codd definió originalmente el modelo relacional en 1969. Independientemente de cualquier producto SQL, SQL y la teoría relacional recurren a décadas de investigación para presentar el tratamiento más actualizado del material disponible en cualquier lugar. Cualquier persona con un historial modesto a avanzado en SQL se beneficiará de las muchas ideas en este libro.

alt text

Oreilly de enero de 2009

+0

Sí, es un buen libro sobre conceptos y teoría de relación de bases de datos, pero no es una referencia de lenguaje SQL. –

2

He encontrado la mejor manera de aprender SQL era para conseguir realmente a escribir consultas y la comprensión de la naturaleza de uniones/condicionales, etc. He encontrado este enlace con una gran cantidad de bricolaje ejemplos para ser el mejor: http://sqlzoo.net/

+0

+1: aunque el sitio es un poco opaco, he hecho referencia a sqlzoo.net con la frecuencia suficiente para detalles específicos de DB. Buena persona – BalusC