13 commandes et requêtes SQL essentielles que tout programmeur devrait connaître
Les bases de données constituent l’épine dorsale du Web moderne. Chaque site Web volumineux ou dynamique utilise une base de données d’une manière ou d’une autre, et lorsqu’il est combiné avec des commandes SQL (Structured Query Language), les possibilités de manipulation des données sont vraiment infinies.
Les données renvoyées par les tables de base de données portent de nombreux noms.les données sont souvent appelées ligne, enregistrement, ou tupleDans cet article, chacun de ces termes est utilisé de manière interchangeable.
avant-propos
Tous les exemples sont basés sur quatre tableaux fictifs.Ce client Le tableau contient le nom et l’âge du client :
Nom | âge |
Jo | 99 |
James | 78 |
Ryan | 101 |
Ce haut Le tableau contient le nom et la taille de n’importe qui :
Nom | haut |
Jo | 101 |
James | 102 |
Ryan | 103 |
Ce Personnel La table contient les noms et âges des travailleurs, exactement comme la table des clients :
Nom | âge |
Jo | 17 |
James | vingt quatre |
Ryan | 18 |
table finale gens Contient le nom et l’âge de la personne, tout comme les tables client et employé :
Nom | âge |
Jo | 98 |
James | 99 |
Ryan | 100 |
1. Sélectionnez
Ce choisir Une commande en SQL est l’une des requêtes SQL les plus simples mais les plus importantes de la suite de commandes SQL.
L’écriture de la syntaxe SQL réservée en majuscules est considérée comme la meilleure pratique car elle rend la commande select plus facile à lire et à comprendre.
Faire une vidéo du jour
Comme son nom l’indique, select est utilisé pour choisir données de la base de données. C’est l’utilisation la plus simple :
sélectionnez * À partir de la table ;
Cette ligne de commande comporte deux parties. première partie(choisir *) pour spécifier la colonne que vous souhaitez sélectionner.
Un astérisque indique que vous souhaitez sélectionner toutes les colonnes de la table définie. La seconde partie(Table) pour indiquer à votre moteur de base de données où vous souhaitez récupérer ces données.
remplacer table avec le nom de votre table de base de données.
Cette instruction select est appelée sélectionner l’étoileLes astérisques sont un bon moyen d’identifier les données dans une table, mais ne sont pas toujours recommandés pour le code de production.
La plupart du temps, vous aurez affaire à un grand nombre de lignes de code, ce qui signifie que votre instruction select * mettra votre système en mode périphérique. En effet, il essaie d’obtenir toutes les lignes de données de la table définie.
Lorsque vous utilisez des étoiles sélectionnées, le moteur de base de données vous fournit les données dont vous avez besoin. Vous n’avez aucun contrôle sur l’ordre dans lequel les données sont renvoyées, donc si quelqu’un ajoute une nouvelle colonne à la table, vous pouvez constater que les variables de votre langage de programmation ne représentent plus les données correctes. Heureusement, il existe une solution.
Vous pouvez déclarer explicitement les colonnes à récupérer comme ceci :
Sélectionnez l’âge, le nom des personnes ;
Cette requête récupère âge et Nom Colonnes de la table des personnes. Explicit peut être un peu fastidieux si vous avez beaucoup de données, mais cela réduira les problèmes futurs tout en facilitant la compréhension de vos requêtes SQL.
Si vous souhaitez sélectionner une donnée supplémentaire, mais qu’elle n’est stockée dans aucune de vos tables, vous pouvez procéder comme suit :
sélectionnez l’âge de la personne, « 1234 » ;
renverra toute chaîne entre guillemets simples au lieu de faire correspondre les noms de colonnes.
En relation : SQL vs NoSQL : Quelle est la meilleure base de données pour votre prochain projet ?
2. où
La commande select est idéale pour récupérer des données, mais que se passe-t-il si vous souhaitez filtrer les résultats en fonction de certains critères ?
Que diriez-vous de ne récupérer que les personnes aux yeux bleus ? Qu’en est-il des machinistes nés en janvier ?
C’est Où La commande est arrivée. L’utilisation de cette commande SQL vous permet d’appliquer une condition dans une instruction select, il vous suffit de l’ajouter à la fin de l’instruction :
SELECT âge, nom FROM personnes WHERE âge < 100
Cette requête est désormais limitée aux personnes de moins de 100 ans.
Vous pouvez combiner plusieurs conditions en utilisant et opérateur:
SELECT * FROM client WHERE age > 80 AND age < 100;
Ce et La commande fonctionne exactement comme en anglais : elle applique une autre condition à l’instruction.
Une autre commande qui peut être utilisée en conjonction avec ceci est ou. Voici un exemple:
SELECT * FROM client WHERE age > 10 OR name = ‘Joe’;
Cette requête renvoie les enregistrements dont l’âge est supérieur à 90ou un nom égal à Jo.
3. Commande
Ce Commande La commande est utilisée pour trier les résultats par ordre croissant/décroissant. Ajoutez simplement ceci à la fin de l’instruction, après l’instruction where, si vous utilisez :
SELECT * FROM client ORDER BY âge DESC ;
Vous devez spécifier les colonnes et l’ordre, qui peuvent être ASC pour monter ou DESC pour le déclin. Si ASC ou DESC n’est pas défini, l’ordre de tri par défaut est croissant.
Vous pouvez trier sur plusieurs colonnes comme ceci :
sélectionnez * dans l’ordre du personnel par âge, nom ;
Comment commander est l’une des commandes les plus utiles lorsqu’elle est combinée avec d’autres commandes. Toutes les requêtes ne renverront pas les données de manière logique ou ordonnée ; cette commande vous permet de changer cela.
4. Rejoignez
La commande join dans sql est utilisée pour se joindre à Les données associées sont stockées dans une ou plusieurs tables. Vous pouvez joindre une table à une autre pour obtenir des résultats combinés.
Voici un exemple de base :
Sélectionnez l’âge, le nom, la taille des personnes
hauteur de la jointure gauche
Nom d’utilisation);
tu dois commencer joint gauche syntaxe, qui spécifie que vous souhaitez joindre les tables à l’aide d’une jointure de type left.
en relation: Comment utiliser la jointure SQL pour interroger plusieurs tables de base de données à la fois
Ensuite, spécifiez la table (hauteur) à joindre.Ce Nom d’utilisation) La syntaxe décrit la colonne Nom peut être trouvée dans les deux tables, elle doit être utilisée comme clé primaire pour joindre les tables ensemble.
Ne vous inquiétez pas si vos colonnes ont des noms différents dans chaque table.tu peux l’utiliser exister remplacer utiliser:
SELECT a.age, a.name,b.Height FROM personnes a LEFT JOIN hauteurs as b ON a.name = b.name;
L’instruction on spécifie la colonne à saisir. Il existe de nombreux types de connexions, voici un bref résumé de leurs utilisations :
- (jointure interne Renvoie les lignes correspondantes des deux tables.
- Jointure externe gauche Renvoie toutes les lignes du tableau de gauche et toutes les correspondances du tableau de droite. S’il n’y a pas de correspondance, l’enregistrement de table de gauche est toujours renvoyé.
- Connexion droite (extérieure) s est l’opposé d’une jointure gauche : renvoie toutes les lignes de la table de droite, plus toutes les correspondances de la table de gauche.
- Connexion complète (externe) Renvoie tous les enregistrements qui correspondent dans l’une ou l’autre des tables.
- Adhésion inégale : Les enregistrements sans correspondance dans les deux tables sont les résultats.
5. Alias
La commande Alias permet de renommer temporairement une table. C’est un surnom qui existe dans une seule transaction que vous exécutez.
Voici comment vous pouvez l’utiliser :
SELECT A.age FROM personnes comme A ;
Vous pouvez utiliser n’importe quel nom valide que vous aimez, mais de préférence les lettres de l’alphabet. Les alias sont des préfixes avant chaque nom de colonne.
Cet alias est affecté à la table immédiatement après la déclaration. C’est la même chose que de faire ceci :
sélectionnez people.age parmi les personnes ;
Au lieu d’entrer un long nom de table, vous pouvez entrer une lettre facile à retenir.
Si vous sélectionnez parmi plusieurs tables, il est facile de ne pas savoir quelles colonnes appartiennent à quelle table. Si deux tables ont des colonnes portant le même nom, votre requête de base de données ne s’exécutera pas sans une référence explicite au nom ou à l’alias de la table.
Voici un exemple avec deux tables :
Sélectionnez l’âge de l’employé, le nom de l’employé, l’âge du client et le nom du client parmi les employés et les clients ;
Voici la même requête avec l’alias :
Sélectionnez A.âge, A.nom, B.age, B.nom de l’employé A, client B ;
L’alias de la table de travail est Une sorte dela table client a pour alias SecondeLes tables d’alias aident à rendre votre code plus facile à comprendre et à réduire la quantité de saisie que vous avez à faire.
Vous pouvez également utiliser des alias pour renommer les colonnes comme Commande:
sélectionnez l’âge de la personne comme person_age ;
Lors de l’exécution de cette requête, la colonne sera désormais appelée la personne remplacer âge.
6. Les syndicats
Alliance est une excellente commande car elle vous permet d’ajouter des lignes les unes aux autres. Contrairement aux jointures, qui ajoutent des colonnes correspondantes, les unions peuvent ajouter des lignes non liées, à condition qu’elles aient le même nombre et les mêmes noms de colonnes.
Sélectionnez l’âge, le nom du client
Alliance
Sélectionnez l’âge, le nom de l’employé ;
Vous pouvez considérer une union comme un moyen de combiner les résultats de deux requêtes. Les unions renverront uniquement des résultats lorsqu’il existe des lignes uniques entre les deux requêtes.
tu peux l’utiliser possession commune Syntaxe pour retourner toutes les données, dupliquées ou non :
Sélectionnez l’âge, le nom du client
possession commune
Sélectionnez l’âge, le nom de l’employé ;
Remarquez comment l’ordre des lignes change? Union fonctionne de la manière la plus efficace, de sorte que les données renvoyées peuvent changer de manière séquentielle.
Un cas d’utilisation possible pour l’union est celui des sous-totaux : vous pouvez combiner des requêtes de somme en une seule requête de total pour un scénario spécifique.
7. Insérer
Parfois, vous souhaitez ajouter de nouvelles données à une base de données/table existante.C’est insérer Les commandes en SQL entrent en jeu.
Ce valeurs La syntaxe est utilisée pour fournir la valeur à insérer.
insérer la personne (nom, âge)
valeur(‘Joe’, 102);
Vous devez spécifier le nom de la table (personne) et les colonnes que vous souhaitez utiliser (nom et âge).Ce valeurs La syntaxe est utilisée pour fournir la valeur à insérer. Celles-ci doivent être dans le même ordre que les colonnes précédemment spécifiées.
Vous ne pouvez pas spécifier de clause where pour les insertions et vous devez vous assurer que toutes les contraintes de table nécessaires qui existent sont respectées.
8. Mise à jour
Après avoir inséré certaines données, il est naturel de devoir modifier des lignes spécifiques.C’est renouveler Syntaxe de la commande :
MISE À JOUR personnes SET nom = ‘Joe’, âge = 101 ;
Vous devez spécifier la table que vous souhaitez modifier, puis utiliser mettre Syntaxe pour spécifier une colonne et sa nouvelle valeur.
Plus précisément, vous pouvez utiliser Où La clause est comme lors de l’exécution d’une instruction select :
UPDATE personnes SET nom = ‘Joe’, âge = 101 WHERE nom = ‘James’;
Vous pouvez même spécifier plusieurs conditions à l’aide de et/ou:
UPDATE people SET nom = ‘Joe’, age = 101 WHERE (nom = ‘James’ AND age = 100) OR nom = ‘Ryan’;
Notez comment les parenthèses sont utilisées pour contraindre les conditions.
9. Upsert
Upsert est un mot étrange, mais c’est une commande très utile. Supposons que votre table ait une contrainte et que vous ayez spécifié que vous ne vouliez que des enregistrements avec des noms uniques ; par exemple, vous ne voulez pas stocker deux lignes portant le même nom.
Si vous essayez d’insérer plusieurs valeurs Jovotre moteur de base de données renverra une erreur et refusera de le faire (à juste titre).
UPSERT vous permet de mettre à jour les enregistrements existants. C’est très utile ! Sans cette commande, vous auriez à écrire beaucoup de logique pour d’abord vérifier si l’enregistrement existe, l’insérer sinon, sinon récupérer la clé primaire correcte, puis la mettre à jour.
Malheureusement, les upserts sont implémentés différemment dans différents moteurs de base de données. PostgreSQL n’a acquis cette capacité que récemment, alors que MySQL existe depuis longtemps. Voici la syntaxe MySQL pour référence :
insérer la personne (nom, âge)
valeur(‘Joe’, 101)
âge de mise à jour de la clé en double = 101 ;
Notez qu’il s’agit essentiellement d’une instruction de mise à jour et d’insertion, qui peut se résumer à Mettre à jour si l’insertion échoue.
10. Supprimer
effacer habitué à…