13 commandes SQL les plus importantes que tout programmeur devrait connaître

13 commandes SQL les plus importantes que tout programmeur devrait connaître

Les bases de données sont le moteur du Web moderne. Chaque site Web grand ou dynamique utilise une base de données d'une manière ou d'une autre, et lorsqu'il est combiné avec Langage de requête structuré (SQL) , les possibilités de manipulation des données sont vraiment infinies. Si vous connaissez déjà SQL, assurez-vous de vérifier ces compétences en programmation que tous les développeurs de sites Web devraient connaître.





Aujourd'hui, je vais vous montrer quelques commandes SQL de base vous devez savoir en tant que programmeur.





Il existe de nombreux noms pour les données renvoyées par une table de base de données. Les données sont communément appelées Lignes , Enregistrements , ou Tuples . J'utiliserai ces termes de manière interchangeable tout au long de cet article.





Préface

Tous les exemples d'aujourd'hui seront basés sur quatre tableaux fictifs. Les client le tableau contient le nom et l'âge des clients :

Les hauteurs table contient le nom et la taille de toute personne :



Les Personnel table contient le nom et l'âge des membres du personnel -- exactement le même que la table client :

La table finale appelée personnes contient le nom et l'âge des personnes, tout comme les tables des clients et du personnel :





1. Sélectionnez

Les sélectionner L'instruction est la plus simple et il est essentiel que vous la compreniez car elle sous-tend presque toutes les autres commandes. Il est recommandé d'écrire vos mots SQL réservés en majuscules, car cela rend la commande plus facile à lire et à comprendre.

Comme son nom l'indique, select est utilisé pour sélectionner données d'une base de données. Voici l'utilisation la plus simple :





SELECT * FROM table;

Il y a deux parties à cela. La première partie ( SÉLECTIONNER * ) spécifie les colonnes que vous souhaitez sélectionner. L'astérisque indique que vous souhaitez sélectionner toutes les colonnes du tableau. La seconde partie ( DE table ) indique à votre moteur de base de données d'où vous souhaitez récupérer ces données. Remplacez 'table' par le nom de votre table de base de données.

Cette sélection est connue sous le nom de « sélectionner l'étoile ». L'utilisation de l'astérisque est un bon moyen de déterminer quelles données se trouvent dans une table, mais je ne vous recommande pas de l'utiliser pour un code de production. Lorsque vous utilisez une étoile de sélection, c'est au moteur de base de données de vous présenter les données que vous souhaitez. 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 vos variables dans votre langage de programmation ne représentent plus les données correctes. Heureusement, il existe une solution.

Vous pouvez indiquer explicitement les colonnes que vous souhaitez récupérer, comme ceci :

SELECT age, name FROM people;

Cette requête récupère les colonnes 'age' et 'name' de la table 'people'. Être aussi explicite peut être un peu fastidieux si vous avez beaucoup de données, mais cela réduira les problèmes à l'avenir, tout en rendant votre SQL plus facile à comprendre par les futurs programmeurs.

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 ceci :

SELECT age, '1234' FROM people;

Toute chaîne entre guillemets simples sera renvoyée au lieu de correspondre à un nom de colonne.

2. Où

La commande select est excellente pour récupérer des données, mais si vous vouliez filtrer un peu plus les résultats ? Et si on ne récupérait que les personnes qui ont les yeux bleus ? Qu'en est-il des personnes nées en janvier qui travaillent comme mécaniciens ? C'est là que le La commande arrive. Cela vous permet d'appliquer des conditions à la sélection, et vous l'ajoutez simplement à la fin de l'instruction :

SELECT age, name FROM people WHERE age > 10;

Cette requête est désormais réservée aux personnes âgées de plus de 10 ans. Vous pouvez combiner plusieurs conditions en utilisant le ET opérateur:

SELECT age, name FROM people WHERE age > 10 AND age <20;

Les ET La commande fonctionne exactement comme en anglais : elle applique une autre condition à l'instruction. Dans cet exemple, les données renvoyées seraient tous les enregistrements dont l'âge est compris entre 10 et 20. Comme il n'y a pas de résultats correspondants, aucune donnée n'est renvoyée.

convertir tablette windows 10 en android

Une autre commande qui peut être utilisée en conjonction avec ceci est OU . Voici un exemple :

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Cette requête renvoie les enregistrements dont l'âge est supérieur à 10 ans ou le nom est égal à « Joe ». Remarquez qu'il n'y a qu'un seul signe égal ? La plupart des langages de programmation utilisent des doubles égaux (==) pour vérifier l'équivalence. Ce n'est pas nécessaire pour la grande majorité des moteurs de base de données (mais cela peut varier selon l'environnement, alors vérifiez d'abord).

3. Commandez

Les ordre La commande est utilisée pour trier les résultats renvoyés. C'est un autre facile à utiliser. Il suffit de l'ajouter à la fin de votre relevé :

SELECT name, age FROM people ORDER BY age DESC;

Vous devez spécifier la colonne et l'ordre, qui peuvent être ASC pour l'ascendance ou DESC pour descendre. Vous pouvez trier par plusieurs colonnes comme ceci :

SELECT name, age FROM people ORDER BY name ASC, age DESC

COMMANDÉ PAR est peut-être le plus utile lorsqu'il est combiné avec d'autres commandes. Toutes les requêtes ne renverront pas de données de manière logique ou ordonnée - cette commande vous permet de modifier cela.

4. Rejoindre

Les rejoindre la commande est utilisée pour rejoindre données associées stockées dans une ou plusieurs tables. Tu rejoindre la deuxième table à la première table et spécifiez comment les données sont connectées. Voici un exemple de base :

le volume est trop grand pour fat32
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Il se passe quelques choses ici. Vous devez commencer par la syntaxe 'LEFT JOIN', qui spécifie que vous souhaitez joindre une table à l'aide d'une jointure de type left. Ensuite, spécifiez la table que vous souhaitez joindre (hauteurs). Les UTILISER (nom) La syntaxe indique que la colonne 'name' peut être trouvée dans les deux tables, et qu'elle doit être utilisée comme clé pour joindre les tables ensemble.

Ne vous inquiétez pas si vos colonnes ont des noms différents dans chaque table. Vous pouvez utiliser « ON » au lieu de « USING » :

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

L'instruction on indique explicitement les colonnes sur lesquelles appuyer. Il existe de nombreux types de jointure, et il faudrait beaucoup de temps pour entrer dans les détails de chacun, voici donc un bref résumé de leurs utilisations :

  • (JOINTURE INTERNE -- Renvoie les lignes avec une correspondance dans les deux tables.
  • JOINTURE EXTERNE GAUCHE -- Renvoie toutes les lignes de la table de gauche, avec toutes les correspondances de la table de droite. S'il n'y a pas de correspondance, les enregistrements de table de gauche sont toujours renvoyés.
  • JOINT DROIT (EXTÉRIEUR) -- C'est l'opposé d'une jointure à gauche : toutes les lignes de la table de droite sont renvoyées, ainsi que toutes les correspondances dans la table de gauche.
  • JOINTURE COMPLÈTE (EXTÉRIEURE) -- Renvoie tous les enregistrements avec une correspondance dans l'une ou l'autre table.

La syntaxe 'INNER' ou 'OUTER' est facultative. Cela peut rendre les choses plus faciles à comprendre, mais vous n'avez pas à le spécifier la grande majorité du temps.

5. Alias

Maintenant que vous connaissez les bases, regardons les alias commander. Ceci est utilisé pour renommer temporairement une table - plus un surnom qu'autre chose, car ce nouveau nom n'existe que dans la transaction individuelle que vous exécutez. Voici comment vous l'utilisez :

SELECT A.age FROM people A;

Vous pouvez utiliser n'importe quel nom valide, mais j'aime utiliser les lettres de l'alphabet. Avant chaque nom de colonne, l'alias est préfixé. Cet alias est affecté à la table immédiatement après sa déclaration. C'est exactement la même chose que de faire ceci :

SELECT people.age FROM people;

Plutôt que d'avoir à taper un long nom de table, vous pouvez taper une lettre simple et facile à retenir -- mais à quoi ça sert ? Eh bien, si vous effectuez une sélection dans plusieurs tables, il est facile de ne pas savoir quelles colonnes appartiennent à quelle table. Si vos deux tables ont des colonnes avec le même nom, votre requête de base de données peut même échouer sans faire explicitement référence au nom ou à l'alias de la table. Voici un exemple avec deux tables :

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

Et voici la même requête avec des alias :

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

La table staff reçoit l'alias 'A' et la table clients l'alias 'B'. L'aliasing des tables aide vraiment à rendre votre code plus facile à comprendre et réduit la quantité de frappe que vous devez effectuer.

Vous pouvez également renommer une colonne avec un alias à l'aide de la commande 'AS' :

SELECT age AS person_age FROM people;

Lorsque cette requête est exécutée, la colonne s'appelle désormais 'person_age' au lieu de 'age'.

6. Syndicat

syndicat est une grande commande. Il vous permet d'ajouter des lignes les unes aux autres. Contrairement aux jointures qui ajoutent des colonnes correspondantes, l'union peut ajouter des lignes non liées à condition qu'elles aient le même nombre et le même nom de colonnes. Voici comment vous l'utilisez :

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Vous pouvez considérer l'union comme un moyen de combiner les résultats de deux requêtes. Une union ne renvoie les résultats que lorsqu'il existe une ligne unique entre les deux requêtes. Vous pouvez utiliser la syntaxe 'UNION ALL' pour renvoyer toutes les données, indépendamment des doublons :

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

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 varier dans l'ordre.

Un cas d'utilisation possible pour l'union est un sous-total : vous pouvez fusionner une requête de la somme totale sur une requête des totaux individuels pour un scénario particulier.

7. Insérer

Vous savez maintenant tout sur la récupération des données d'une base de données, mais qu'en est-il de l'insertion ? C'est là que le insérer commande arrive. Voici un exemple :

INSERT INTO people(name, age) VALUES('Joe', 102);

Vous devez spécifier le nom de la table (personnes) et les colonnes que vous souhaitez utiliser (nom et âge). La syntaxe 'VALUES' est ensuite utilisée pour fournir les valeurs à insérer. Celles-ci doivent être dans le même ordre que les colonnes qui ont été précédemment spécifiées.

Vous ne pouvez pas spécifier de clause where pour les insertions et vous devez vous assurer de respecter toutes les contraintes de table nécessaires présentes.

8. Mettre à jour

Après avoir inséré des données, il est naturel de devoir modifier des lignes spécifiques. Ici se trouve le mettre à jour syntaxe de commande :

UPDATE people SET name = 'Joe', age = 101;

Vous devez spécifier la table que vous souhaitez modifier, puis utiliser la syntaxe 'SET' pour spécifier les colonnes et leurs nouvelles valeurs. Cet exemple est bon, mais il mettra à jour chaque enregistrement, ce qui n'est pas toujours souhaitable !

Afin d'être plus précis, vous pouvez utiliser les clauses 'WHERE' comme lors d'une sélection :

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Vous pouvez même spécifier plusieurs conditions en utilisant 'AND' et 'OU' :

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Remarquez comment les crochets sont utilisés pour contraindre les conditions.

ripper blu ray gratuit windows 10

9. Bouleversé

Oups est un mot qui sonne étrangement, mais c'est une commande incroyablement utile. Supposons que vous ayez une contrainte sur votre table et que vous ayez spécifié que vous ne vouliez que des enregistrements avec des noms uniques -- vous ne voulez pas stocker deux lignes avec le même nom, par exemple. Si vous essayiez d'insérer plusieurs valeurs de 'Joe', votre moteur de base de données renverrait une erreur et refuserait de le faire (à juste titre). Un UPSERT vous permet de mettre à jour un enregistrement s'il existe déjà. C'est incroyablement utile ! Sans cette commande, vous auriez à écrire beaucoup de logique pour vérifier d'abord si un enregistrement existe, insérer si ce n'est pas le cas, sinon récupérer la clé primaire correcte, puis 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 l'a depuis un certain temps. Voici la syntaxe MySQL pour référence :

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Remarquez qu'il s'agit essentiellement d'une mise à jour et d'une instruction d'insertion, qui peuvent être résumées par « mise à jour si l'insertion a échoué ».

10. Supprimer

Effacer est utilisé pour supprimer complètement les enregistrements - cela peut être très dommageable en cas d'abus ! La syntaxe de base est très simple à utiliser :

DELETE FROM people;

Comme la plupart des autres commandes, cela supprimera tout ! Vous devez utiliser un where pour le restreindre à un nombre légèrement plus raisonnable de lignes - idéalement un :

DELETE FROM people WHERE name = 'Joe';

Si vous développez un système, il est souvent judicieux d'implémenter une « suppression logicielle ». Vous n'exécutez jamais réellement la commande de suppression, vous créez plutôt une colonne supprimée, puis vérifiez cette colonne dans vos sélections - cela peut éviter beaucoup d'embarras potentiel si vous pouvez récupérer rapidement et facilement les enregistrements prétendument supprimés. Cependant, cela ne remplace pas des sauvegardes appropriées.

11. Créer un tableau

Les créer un tableau La commande est utilisée pour créer des tables. C'est une autre très simple :

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Remarquez comment les noms de colonnes et les contraintes sont entre crochets et que les colonnes reçoivent un type de données approprié. Une clé primaire est spécifiée, comme cela est requis dans toute bonne conception de base de données.

12. Modifier le tableau

Les modifier table La commande permet de modifier la structure d'une table. Ceci est légèrement limité, car votre base de données ne vous permettra pas de modifier une table si les données existantes provoquent un conflit - en changeant une chaîne en un entier, par exemple. Dans ces cas, corrigez d'abord les données, puis modifiez la table. Voici un exemple :

ALTER TABLE people ADD height integer;

Cet exemple ajoute une colonne appelée 'hauteur' de type entier à la table people. Il n'y a pas vraiment de limite à ce que vous pouvez modifier.

13. Abandonner la table

La commande finale est déposer une table . Considérez cela comme une suppression, mais plutôt que de supprimer un seul enregistrement, cela supprime chaque enregistrement avec la table ! Voici comment vous l'utilisez :

DROP TABLE people;

C'est une commande assez drastique, et il n'y a aucune raison qu'elle doive être programmée dans votre système. Elle ne doit être effectuée que manuellement dans la grande majorité des cas, et elle peut être très destructeur.

C'est tout pour aujourd'hui. J'espère que vous avez appris quelques astuces utiles! Vous pourriez apprendre à faire un site web , puis utilisez vos nouvelles compétences pour le rendre dynamique -- assurez - vous simplement de ne pas commettre ces erreurs ou de le laisser vulnérable à l' injection SQL . Si vous n'êtes pas sûr de devoir apprendre SQL, avez-vous pensé à un générateur de site statique ?

Pourquoi ne pas laisser un commentaire ci-dessous avec vos trucs et astuces SQL préférés ?

Crédits image : HYS_NP/Shutterstock

Partager Partager Tweeter E-mail Cela vaut-il la peine de passer à Windows 11 ?

Windows a été repensé. Mais est-ce suffisant pour vous convaincre de passer de Windows 10 à Windows 11 ?

Lire la suite
Rubriques connexes
  • La programmation
  • La programmation
  • SQL
A propos de l'auteur Joe Coburn(136 articles publiés)

Joe est diplômé en informatique de l'Université de Lincoln, au Royaume-Uni. C'est un développeur de logiciels professionnel, et lorsqu'il ne pilote pas de drones ou n'écrit pas de musique, on le trouve souvent en train de prendre des photos ou de produire des vidéos.

Plus de Joe Coburn

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner