Quel standard SQL est le plus largement et complètement pris en charge?

8

Je veux me concentrer sur l'une des spécifications du langage SQL à des fins d'apprentissage et de référence. Quelle version de la norme SQL est la plus largement prise en charge sur les SGBD afin que je puisse y consacrer mon temps et mon énergie?

mumtaz
la source

Réponses:

15

Je pense que vous essayez de vivre dans le monde de rêve de Joe Celko où vous ne pouvez utiliser que du SQL standard et au cours d'une semaine donnée, vous devrez peut-être porter tout votre code de SQL Server vers Oracle, puis Oracle vers DB2, puis de nouveau vers SQL Server . Deux fois.

Bien que les aspects fondamentaux et fondamentaux du SQL standard vous aideront n'importe où, essayer de vous limiter à cet ensemble de langage par peur d'un portage futur (ou simplement par principe) n'est pas une voie que je recommanderais. Personnellement, je m'en tiens aux choses standard ANSI quand je le peux (par exemple <> vs! =, COALESCE vs ISNULL, CURRENT_TIMESTAMP vs GETDATE (), etc.), mais je n'ai pas non plus peur d'utiliser le SQL Server spécifique des trucs qui facilitent mon travail.

Il est important de comprendre comment fonctionne SQL en général; il est tout aussi important de comprendre le fonctionnement du langage dans vos SGBDR - y compris les écarts par rapport à la norme, les écarts par rapport à la manière dont un autre SGBDR aurait pu implémenter le même concept et les extensions propriétaires qui n'existent pas ailleurs.

SQL Server, par exemple, couvre une bonne partie de la norme et se rapproche de la pleine conformité avec chaque nouvelle version. Sera-t-il jamais couvert à 100%? Très douteux. Va-t-il continuer à ajouter des extensions propriétaires qui ne figurent pas dans la norme? Certainement. Si tout le monde couvrait la norme et que personne n'en sortait, il n'y aurait aucun avantage à choisir une plate-forme plutôt qu'une autre, et nous utiliserions tous la même chose.

Aaron Bertrand
la source
1
+1 Pour avoir mentionné que moins de 100% de conformité n'est pas nécessairement une mauvaise chose. Bien que la possibilité de porter votre code sur différentes plates-formes puisse sembler une bonne chose, le fait est que vous avez choisi votre SGBDR pour une raison (ou du moins j'espère que le choix était plus qu'un choix arbitraire). Dans le monde réel, le coût du portage de votre code sur une nouvelle plate-forme est souvent plus cher que de savoir comment le faire sur votre plate-forme actuelle.
Matt M
11

Aucun d'entre eux. Vous pouvez apprendre le SQL standard (-ish) pour n'importe quel SGBDR.

SQL standard n'est pas utilisé dans le monde réel pour payer des emplois sur des projets réussis ...

Cela dit, MySQL est un bon point de départ et voici un tutoriel

gbn
la source
"SQL standard n'est pas utilisé dans le monde réel pour payer des emplois sur des projets réussis ..." - la chose la plus stupide publiée sur tous les échanges de pile.
Jonesome Reinstate Monica
3
@samsmith pourquoi? Ce n'est pas parce que vous n'êtes pas d'accord que c'est idiot. Peut-être pourriez-vous expliquer pourquoi vous n'êtes pas d'accord, au lieu de simplement l'appeler stupide?
Aaron Bertrand
1
@samsmith également, et surtout si vous êtes en bas de la liste, alors je trouve votre appel précédentconstructive guidance incroyablement hypocrite. Où est votre guide constructif ici pour que gbn améliore sa réponse?
Aaron Bertrand
3
@samsmith Si votre objectif est un "projet réussi", alors vous devez profiter de toutes vos fonctionnalités SGBDR. Ne pas le faire et utiliser simplement SQL standard ne font que gaspiller les capacités de votre logiciel
Lamak
1
@samsmith Où obtenez-vous vos statistiques pour "large%"? Et quel pourcentage des systèmes de bases de données du monde réel sont de toute façon conçus par les développeurs? Dans mon expérience personnelle, et celle de chaque engagement client que j'ai jamais eu, je n'ai pas encore trouvé de boutique SQL Server qui respecte la norme. Déjà. Il est tout simplement imprudent de le faire, indépendamment de ce que vos amis développeurs prétendent faire.
Aaron Bertrand
10

Tous les principaux SGBDR prennent en charge les différentes versions de la spécification SQL à différents degrés, les anciennes versions de la spécification étant mieux prises en charge. Tous ne prennent pas la conformité également au sérieux (par exemple, Oracle a commencé à prendre en charge les `` jointures ansi '' en 2001, près d'une décennie après SQL-92 ), et comme @gbn l'a déjà dit, dans la pratique, vous devez connaître la saveur de SQL utilisée par chaque produit. tu utilises.

Postgres est une exception dans la mesure où il "se targue de la conformité aux normes" . Pour "des fins d'apprentissage et de référence", vous avez besoin d'une pratique pratique avec une base de données, pas seulement des connaissances d'un livre ou d'un standard, et postgres est une plate-forme idéale pour apprendre les cordes avec car:

  1. Il est gratuit et disponible sur la plupart des plateformes
  2. La conformité aux normes susmentionnées
  3. Il a une excellente documentation
  4. Il est mature et largement utilisé
  5. Il possède de nombreuses fonctionnalités trouvées dans les SGBDR commerciaux les plus populaires, et un certain nombre qui ne le sont pas
Jack dit d'essayer topanswers.xyz
la source
3

D'accord avec Jack et gbn, il n'y a pas de standard et vous devez faire un choix. Pour faire ce choix, vous devez d'abord sélectionner RDBMS. Je recommanderais de penser aux choses suivantes: 1) voulez-vous être développeur DB ou DBA? 2) Avec quel (s) système (s) d'exploitation voulez-vous travailler? Je suis d'accord, cette question est un peu étrange, mais quand je parle avec les étudiants, ils disent que c'est important.

Par exemple (juste un exemple, je me trompe peut-être) si vous voulez être un DBA et ne voulez pas travailler avec Windows, vous n'avez pas besoin de penser à MSSQL. Et si vous voulez être DBA et que vous aimez travailler avec des chaînes de commandes et des fichiers de configuration - peut-être qu'Oracle est ce dont vous avez besoin. Si vous voulez être développeur et que vous souhaitez utiliser vos connaissances dans des projets indépendants, vous avez peut-être besoin de MySQL?

Alex_L
la source
2
J'espère que ce ne sont pas les seuls critères que les startups utilisent pour choisir leur plateforme. :-)
Aaron Bertrand