Retour à la liste des articles Articles
6 minutes de lecture

SQL est-il sensible à la casse ?

Le langage SQL est-il sensible à la casse ? La question semble simple et vous pouvez penser qu'il s'agit d'une question à laquelle on répond par oui ou non. Cependant, la réponse dépend de plusieurs facteurs. Examinons les réponses possibles.

Tout d'abord, cette question peut être comprise de plusieurs manières. De quelle partie de SQL parlez-vous ? Parlez-vous de mots-clés (par exemple, SELECT, WHERE, etc.), de noms de tables et de colonnes, ou de valeurs des colonnes ? Quel système de gestion de base de données (SGBD) avez-vous à l'esprit ?

Pour répondre à cette question de la manière la plus large possible, nous allons examiner la sensibilité à la casse de différentes parties du langage SQL. Pour chaque partie, nous parlerons des différents SGBD.

Avant de commencer, assurons-nous que nous sommes sur la même longueur d'onde en ce qui concerne le vocabulaire. Si l'un des termes utilisés dans les paragraphes précédents vous semble étrange et peu familier, vous pouvez consulter l'article "Termes SQL que les débutants doivent connaître", qui vous guidera à travers le vocabulaire SQL de base, tel que table, base de données et SGBD.

Les mots-clés SQL sont-ils sensibles à la casse ?

Commençons par là. Les mots-clés en SQL sont insensibles à la casse pour les SGBD les plus courants. L'ordinateur ne se soucie pas de savoir si vous écrivez SELECT, select ou 'sELeCt’; en théorie, vous pouvez donc écrire ce que vous voulez.

Malheureusement, la pratique est un peu différente. Si vous envisagez de travailler professionnellement avec SQL, vous devez considérer que cela implique de collaborer avec d'autres ingénieurs. Cela signifie que vous devrez lire le code de chacun.

Pour cette raison, vous devez établir une convention pour écrire les mots-clés en majuscules, ne mettre que la première lettre en majuscule ou tout laisser en minuscules. De cette façon, tout le monde lira et comprendra le code plus rapidement. Le plus souvent, les mots-clés SQL sont écrits en majuscules.

Cela vaut également pour les étudiants qui collaborent entre eux. Vous pouvez avoir différents cours avec différents projets, et passer de l'un à l'autre prend moins de temps avec un style de code clair.

Si vous n'en êtes qu'au début de votre parcours d'apprentissage de programmation, vous voudrez peut-être savoir comment apprendre la syntaxe SQL, car l'apprentissage de la syntaxe comprend également l'apprentissage des mots-clés.

Les noms de tables et de colonnes SQL sont-ils sensibles à la casse ?

L'étape suivante concerne les noms de tables et de colonnes. Ce sujet est un peu plus compliqué.

Malheureusement, les SGBD fonctionnent différemment. De plus, le comportement dépend du système d'exploitation (Windows, macOS ou Linux). L'utilisateur peut également influer sur la sensibilité à la casse.

Nous n'aborderons pas le sujet en détail, car il existe de nombreuses façons de personnaliser le comportement. Nous nous concentrerons sur les trois bases de données relationnelles les plus populaires, toutes enseignées sur learnSQL.com : PostgreSQL, MySQL et MS SQL Server. Pour plus d'informations, reportez-vous à la documentation de votre SGBD.

Commençons par PostgreSQL. Dans cette base de données, les noms de tables sont insensibles à la casse. Ce comportement ne dépend pas du système d'exploitation. Cependant, vous pouvez facilement le modifier en ajoutant des guillemets doubles (") au nom de la table. Ceci force PostgreSQL à respecter la casse pour les noms de tables. Il en va de même pour les noms de colonnes.

Ensuite, nous avons MySQL. Par défaut, il dépend du système d'exploitation et de sa sensibilité à la casse. Cela signifie que MySQL est insensible à la casse dans Windows et macOS, alors qu'il est sensible à la casse dans la plupart des systèmes Linux. Vous pouvez toutefois modifier ce comportement en changeant la collation.

Dernier point, mais non des moindres : MS SQL Server. Par défaut, il est insensible à la casse et, comme pour MySQL, vous pouvez modifier ce comportement en changeant le paramètre de collation.

Gardez à l'esprit que même si vous pouvez utiliser différentes règles de casse pour votre code, cela ne veut pas dire que vous devez le faire. Ayez un style de code clair dans vos projets afin qu'il soit plus facile à lire et à naviguer. Dans PostgreSQL et MySQL, les noms de tables sont le plus souvent écrits en minuscules (ou plus précisément en snake_case). Dans MS SQL Server, la pratique la plus courante est d'utiliser le Pascal Case.

Les différences de sensibilité à la casse peuvent entraîner des problèmes dans l'exécution de vos requêtes. C'est pourquoi vous devez comprendre les messages d'erreur que vous pouvez obtenir. Si vous débutez en SQL, nous vous recommandons de lire l'article "6 Common SQL Syntax Mistakes All Learners Make", qui vous aidera à comprendre les erreurs les plus courantes que tout le monde rencontre au début de son parcours en SQL.

Les valeurs des colonnes en SQL sont-elles sensibles à la casse ?

Enfin, parlons des valeurs de colonnes. Cela diffère aussi un peu en fonction du SGBD. Heureusement, cette question est plus simple.

Par défaut, PostgreSQL effectue une comparaison de chaîne sensible à la casse. Cela signifie que WHERE colonne = 'abc' renvoie TRUE uniquement pour les valeurs de la colonne exactement égales à 'abc'. Il en va de même pour l'opérateur LIKE. colonne LIKE 'ABC' ou colonne LIKE 'aBc' renverront FALSE pour une telle comparaison. Pour effectuer une comparaison insensible à la casse, utilisez le mot-clé ILIKE; par exemple, colonne ILIKE 'aBc' et colonne ILIKE 'ABC' renvoient tous deux TRUE pour 'abc'.

En revanche, MySQL et MS SQL Server sont insensibles à la casse par défaut. Cela signifie que WHERE colonne = 'abc' renvoie TRUE pour, par exemple, 'abc', 'ABC' ou 'aBc'. Il en va de même pour l'opérateur LIKE.

Dans ces trois SGBD, vous pouvez changer le paramètre de collation pour modifier le comportement par défaut.

Dans cette section, nous avons mentionné des concepts tels que LIKE et les comparaisons de chaînes. Si vous êtes novice en SQL, ces termes peuvent être déroutants. Si vous n'en avez pas entendu parler ou si vous ne vous sentez pas à l'aise pour les utiliser, vous pouvez consulter le cours SQL pour les débutants. Il vous guidera à travers les bases du langage SQL, y compris la comparaison de chaînes de caractères.

SQL est-il sensible à la casse ?

Le langage SQL est-il sensible à la casse ? Comme vous pouvez le constater, cela dépend de ce que vous entendez par cette question. Il n'y a pas de réponse simple par oui ou par non. Cependant, vous connaissez maintenant la réponse générale à cette question. En outre, vous savez qu'en cas de doute, vous devez vous référer à la documentation du SGBD que vous utilisez, car chaque base de données peut avoir des comportements par défaut différents.

Si cet article vous a fourni des informations que vous ne connaissiez pas, vous pouvez consulter notre parcours d'apprentissage Le SQL de A à Z. Ces cours vous guideront à travers le langage SQL et vous permettront de naviguer confortablement à travers de nombreux articles et conversations sur le langage SQL.

Et n'oubliez pas : même si certains concepts sont difficiles à comprendre au début, vous pouvez tout apprendre avec suffisamment de patience. Bonne chance et bon apprentissage !