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

SQL Oracle Discussion :

Difference renommage de colonne


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Femme Profil pro
    Database
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Database

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 135
    Points
    135
    Par défaut Difference renommage de colonne
    Bonjour,

    J'aurai une petite question concernant les alias en SQL.

    On peut renommer une colonne avec 2 differentes syntaxes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select clt as "Client" 
    From customer
    OU

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select clt "Client" 
    From customer

    Pourriez-vous m'expliquer pas la difference entre les 2 et laquelle utiliser.

    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 156
    Points : 1 944
    Points
    1 944
    Par défaut
    Bonjour,

    Pas de différence, le AS est optionnel ici.

  3. #3
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 998
    Points : 2 501
    Points
    2 501
    Par défaut
    Aucune différence SAUF que une syntaxe est bien plus lisible que les autres : c'est la 1 ci-dessous.
    Je te conseille de TOUJOURS mettre AS et deux "" pour plus de lisibilité de ton code.
    Les "" sont obligatoires si ton alias a des espaces, des caractères différents de $, #, _ et si c'est un mot clé réservé par Oracle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1 - Select clt as "Client" ...
    2 - Select clt "Client" ...
    2 - Select clt Client ...
    En outre tu éviteras l'erreur classique suivante : oubli de la virgule ==> COL2 devient un alias de COL1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT COL1, COL2 ...
    SELECT COL1 COL2 ...
    Mais si tu mets toujours des AS "" dans ton code alors, en lisant SELECT COL1 COL2 ..., tu comprendras de suite que ce n'est pas un alias mais une erreur de syntaxe.

  4. #4
    Membre habitué
    Femme Profil pro
    Database
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Database

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 135
    Points
    135
    Par défaut
    Merci!

    Je vais donc utiliser la syntaxe complete!

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 156
    Points : 1 944
    Points
    1 944
    Par défaut
    Bien plus important pour moi est de qualifier ses colonnes avec l'alias de la table, quand tu as plus d'une table impliquée dans une requête. Je rencontre un nombre incalculable de fois où les requêtes font référence aux colonnes sans les préfixer de l'alias de leurs tables et c'est super chiant. Non seulement il faut retrouver les tables à qui elles appartiennent, mais ça peut en plus introduire des erreurs, du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from table1 where id in (select id from table2);
    Cette requête fonctionnera même si la colonne id n'existe pas dans table2...

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 897
    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 897
    Points : 53 135
    Points
    53 135
    Billets dans le blog
    6
    Par défaut
    D’où l'intérêt d’utiliser une norme de nommage des tables et colonnes avec des trigrammes afin d'éviter toute ambiguïté.
    Oracle permet depuis peu et enfin des noms respectant la norme SQL, c'est à dire jusqu'à 128 caractères...

    A +

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 957
    Points : 4 386
    Points
    4 386
    Par défaut
    Citation Envoyé par vanagreg Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from table1 where id in (select id from table2);
    Cette requête fonctionnera même si la colonne id n'existe pas dans table2...
    mais qu'on utilise ou pas une convention de nom pour les champs ou un alias sur la seule table extérieure le résultat sera le même si l'on référence dans la sous-requête un champ de la table extérieure…
    il faut utiliser un alias sur la table de la sous-requête pour que la requête provoque une erreur ORA-00904 dans le cas où le champ n'existe pas dans la table2 et existe dans la table1.

    dans ce cas-ci, une convention de nom donne juste l'avantage d'augmenter la probabilité de voir l'erreur en écrivant la requête.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/04/2018, 12h46
  2. Réponses: 9
    Dernier message: 26/07/2017, 20h14
  3. Difference de deux colonnes dans different emplacement
    Par cityy dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/05/2014, 16h12
  4. probleme d'exécution d'action differents dans meme colonne
    Par franco9 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 31/05/2013, 18h30
  5. [Excel] Nombre d'enregistrements différents dans une colonne
    Par zemeilleurofgreg dans le forum Access
    Réponses: 3
    Dernier message: 15/11/2006, 18h29

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