Quelqu'un peut-il recommander un bon manuel de référence SQL ANSI?
Je ne veux pas nécessairement dire un tutoriel mais un document de référence approprié à rechercher lorsque vous avez besoin d'une explication ou d'un exemple de base ou plus approfondi.
Actuellement j'utilise Tutoriel SQL W3Schools et Tutoriel SQL qui sont ok, mais je ne les trouve pas assez "profonds".
Bien sûr, chaque grand producteur de SGBDR disposera d'une sorte de manuels de référence ciblant son propre produit, mais ils ont tendance à être biaisés et utiliseront parfois des extensions propriétaires.
EDITED: Le but de la question était de se concentrer sur les choses que les moteurs de base de données ont en commun, c'est-à-dire les racines SQL. Mais comprendre les différences peut aussi être une chose positive - this est assez intéressant.
Voici le "deuxième projet de révision informelle" de SQL: 1992 , qui semble avoir été suffisamment précis pour tout ce que j'ai recherché. 1992 couvre la plupart des éléments couramment utilisés dans les SGBD.
SQL n'est pas comme C ou Java, où il existe une norme pour le langage, puis un certain nombre d'entreprises et d'organisations mettent en œuvre le langage du mieux qu'elles le peuvent, en suivant la norme.
Au lieu de cela, les principales bases de données ont précédé la norme SQL, et la norme est une sorte de compromis où chaque fournisseur de base de données voulait intégrer son dialecte et ses fonctionnalités dans la norme.
Par conséquent, il y a beaucoup plus de variété entre les bases de données qu'entre les compilateurs de langage de programmation typiques, et pour utiliser une base de données, vous devez vraiment connaître ce dialecte SQL particulier.
Cela dit, j'ai Gultzan et Peltzer SQL-99 Complete, Really ici dans ma bibliothèque. C'est un bon livre si vous avez besoin de savoir ce que contient réellement la norme. (Et oui, il existe une version plus récente depuis SQL-99, mais personne ne semble s'en soucier.)
ÉDITER: En fait, il n'y a pas seulement une version plus récente depuis SQL-99, mais trois : SQL: 2003, SQL: 2006 et SQL: 2008. Et personne ne semble encore s'en soucier. En fait, beaucoup ne se soucient même pas de SQL-99, donc SQL-92 est toujours, en quelque sorte, "la norme".
Les documents ANSI peuvent tous être achetés auprès de - vous l'avez deviné - ANSI.
Le principal problème avec un manuel de référence SQL ANSI est que vous ne pouvez pas trouver une base de données qui l'implémente. Et quand c'est le cas, vous constaterez qu'ANSI SQL ne peut pas résoudre certains des problèmes quotidiens. C'est pourquoi toutes les bases de données professionnelles définissent des extensions.
Donc, au travail, vous aurez besoin d'un manuel de référence pour la version spécifique de la base de données que vous utilisez.
Cela me rappelle mon cours universitaire de 2e année où nous apprenons la théorie relationnelle au lieu de SQL.
Lisez un bon livre sur la théorie relationnelle. La théorie et la pratique des bases de données ont évolué depuis qu'Edgar Codd a défini à l'origine le modèle relationnel en 1969. Indépendamment de tout produit SQL, SQL et la théorie relationnelle s'appuient sur des décennies de recherche pour présenter le traitement le plus à jour du matériel disponible n'importe où. Toute personne ayant une formation modeste à avancée en SQL bénéficiera des nombreuses perspectives de ce livre.
Oreilly janvier 2009
J'aime vraiment à peu près tout ce que Joe Celko a écrit Celko's Books
J'ai trouvé que le meilleur moyen d'apprendre SQL était de réellement écrire des requêtes et de comprendre la nature des jointures/conditions, etc. J'ai trouvé que ce lien avec de nombreux exemples de bricolage était le meilleur: http: // sqlzoo. net /
Je pense que cela peut vous être utile.
Comprendre la norme SQL ANSI Par: Kevin Kline
http://www.Amazon.com/gp/product/1565927443/102-0105946-4028970?v=glance&n=283155
Les ressources DevGuru ont toujours bien fonctionné pour moi: http://www.devguru.com/technologies/t-sql/home.asp
Bien que je dois admettre que ce n'est pas strictement une ressource ciblée "ANSI". J'ai toujours été centré sur MS SQL et cela m'a été utile au début. À mon humble avis, votre meilleur pari sera d'utiliser plusieurs ressources, notamment au moins une pour chaque plate-forme de base de données que vous souhaitez utiliser.
Pour citer l'intro DevGuru pour leur ressource T-SQL:
Bien qu'il existe des normes pour SQL, telles que ANSI SQL92 et SQL99, la plupart des bases de données utilisent leurs propres dialectes et/ou extensions. La version Microsoft de SQL utilisée dans SQL Server 7 et SQL Server 2000 est appelée T-SQL. Bien que de nombreux exemples de cette référence rapide puissent fonctionner sur d'autres bases de données, il est supposé que SQL Server 2000 est utilisé, en particulier pour les rubriques avancées telles que les procédures stockées.
C'est un peu dépassé, mais ce livre est vraiment utile pour voir comment les différents fournisseurs implémentent les choses, je crois qu'il comprend la norme ANSII.