IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Nous pouvons faire mieux que SQL qui présente quelques lacunes


Sujet :

Langage SQL

  1. #41
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par esperanto Voir le message
    Pour moi, un plan d'exécution, c'est une forme de compilation ...
    Non, pas du tout. Une fois compilé, le programme n'évolue pas alors que le but de l'optimiseur est de se remettre en cause quand il le faut, voir de modifier le code à exécuter pendant l'exécution.
    https://docs.microsoft.com/fr-fr/sql...ql-server-2017

    Evidemment si votre référence c'est MySQmerde, vous êtes loin de comprendre ce qu'est un optimiseur…

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  2. #42
    Futur Membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Octobre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Octobre 2018
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    Quelques manques du SQL Standard ou présents mais pas déployés sur tous les SGBD à mon avis :
    • XOR
    • BOOLEAN et ENUM
    • SYM_DIFF (pour compléter le UNION, INTERSECT et EXCEPT)
    • CORRESPONDING
    • LIKE ANY () / LIKE ALL ()
    • Clauses WINDOW et QUALIFY des fonctions analytiques, WINDOW appelant une autre WINDOW https://modern-sql.com/caniuse/window_clause_chained
    • Concaténation de chaînes avec “+”
    • Fonctions d'agrégation personnalisées
    • Manipulation de Tuples, dont comparaison
    • INTERVAL et développements (OVERLAPS)
    • IS DISTINCT FROM
    • WHERE UNIQUE / DISTINCT
    • SPLIT(String)
    • JOIN USING
    • CROSS/OUTER APPLY
    • SEMI JOIN, ANTI JOIN
    • Clause FILTER
    • UPDATE avec JOIN
    • UPDATE avec CTE
    • Row Constructor
    • MULTISET
    • COLUMN DEFAULT résultat d’un calcul ou d'une fonction
    • VIRTUAL COLUMN, MATERIALIZED VIEW
    • ALTER TABLE ADD column AT POSITION n
    • ORDER BY ... NULLS LAST/FIRST
    • SIMILAR TO


    Plus la division relationnelle comme décrite ici ; syntaxe proposée sur JOOQ :

    TABLE_A
    DIVIDE BY TABLE_B
    ON [ some predicate ]

  3. #43
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par bullit75 Voir le message
    Quelques manques du SQL Standard ou présents mais pas déployés sur tous les SGBD à mon avis :
    [...]

    Plus la division relationnelle comme décrite ici ; syntaxe proposée sur JOOQ :

    TABLE_A
    DIVIDE BY TABLE_B
    ON [ some predicate ]
    La plupart de ce que vous avancez est disponible dans les grands SGBDR que sont IBM DB2, Oracle ou SQL Server, sous une forme ou une autre, ou encore via une combinaison simple d'opérateurs (certains fonctions peuvent être créée pour cela, de même qu'il est facile de créer des opérateurs nouveaux d'agrégation...).

    Quand au cas de la division relationnelle, elle a été discutée, il y a bien longtemps peu avant le SQL la norme SQL 2 par le comité de normalisation. Mais le problème est qu'il existe 4 formes distinctes de division relationnelle... L'article cité n'en traite qu'une seul, révélant la pauvreté des affirmation que l'on trouve hélas fréquemment sur Internet..
    • Division relationnelle exacte ou avec reste
    • Division relationnelle quantifiée ou non

    La combinaison de ces deux variantes montre bien 4 type de division relationnelle. L'article cité montre que l'opérateur présenté ne peut faire que des divisions exactes sans reste, un peu comme s'il était impossible sur une calculatrice de faire 7 / 2...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #44
    Futur Membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Octobre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Octobre 2018
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    4 types de division, on est d'accord. Possibilité de faire une syntaxe (style mots-clé REMAINDER et QUANTIFIED à implémenter, ou plus), à voir, certains savent faire du design propre . Bien sûr, le diable se loge dans les détails, et on peut vite monter une usine à gaz, mais on a eu le même souci avec les types de jointures et il a été surmonté, alors...

    Après, je ne connais aucun SGBD qui gère le XOR et la différence symétrique d'ensemble (style UNION). Or celles-ci restent quand même des éléments importants et leurs absences entraînent des requêtes lourdes à coder. Faire une fonction ou autre pour une opération logique de base me semble un peu aberrant.

    Pour les autres, j'ai bien précisé que tous les SGBD n'intégraient pas tous les éléments, si Oracle par exemple propose un champ de type ENUM (plus BOOLEAN, vu que ce dernier est un ENUM à 2 valeurs prédéfinies) sans avoir à déclarer un type particulier en dehors de la table voire une mini-table de valeurs, j'appellerais ça un plus : On a de nombreux énumérateurs spécifiques à un champ qu'on n'a pas forcément besoin d'expliciter hors de la table, et faire un CHECK sur la liste de valeurs fait construction un peu artificielle.

    EDIT : MySQL propose le XOR, mais la version que j'avais eu l'occasion de voir ne le proposait pas. Dont acte, il rentre dans les instructions que j'aimerais voir déployées dans tous les SGBD

Discussions similaires

  1. [MySQL] Faire une requete sql qui affiche les ip actifs
    Par Gghizlane dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 15/09/2016, 10h58
  2. [Javascript] IE(page qui ne s'affiche pas alors que code html présent)
    Par Woufeigh dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/04/2007, 19h54
  3. [dBase]il y a mieux que la commande sql UPDATE ?
    Par sana72 dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 12/12/2002, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo