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

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

Les bases de données pilotent le Web moderne. Tout site Web important ou dynamique utilise une base de données d’une manière ou d’une autre et, une fois associé à Langage de requête structuré (SQL), les possibilités de manipulation des données sont vraiment infinies. Si vous connaissez déjà le langage SQL, assurez-vous de maîtriser ces compétences de programmation. La conception et le développement de sites Web offrent une bonne rémunération, des avantages, des horaires de travail décents et des perspectives d'avancement. Nous vous montrerons quelles compétences essentielles vous pouvez commencer à apprendre dès maintenant pour vous lancer dans ce domaine passionnant. En savoir plus que tous les développeurs de sites Web devraient savoir.

Aujourd’hui, je vais vous montrer quelques-unes des principales commandes à connaître 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 Rangées, Records, ou Tuples. Je vais utiliser 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. le client table contient le nom et l'âge des clients:

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

le Personnel table contient le nom et l'âge des membres du personnel - exactement les mêmes que la table des clients:

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

1. Sélectionnez

le 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 en majuscule vos mots SQL réservés, car cela facilite la lecture et la compréhension de la commande..

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 (SELECT *) 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 la table) indique à 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 sélection est appelée “sélectionner une étoile.” L'utilisation de l'astérisque est un bon moyen de déterminer les données contenues dans un tableau, mais je ne vous recommande pas de les utiliser pour un code de production. Lorsque vous utilisez une étoile sélectionnée, le moteur de base de données vous présente les données souhaitées. Vous n'avez aucun contrôle sur l'ordre dans lequel les données sont renvoyées. Par conséquent, si quelqu'un ajoute une nouvelle colonne à la table, il est possible que vos variables dans votre langage de programmation ne représentent plus les données correctes. Heureusement, il y a une solution.

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

SELECT age, nom FROM personnes;

Cette requête récupère le “âge” et “prénom” colonnes de la “personnes” table. Être aussi explicite que cela peut être un peu fastidieux si vous avez beaucoup de données, mais cela réduira les problèmes à l'avenir et facilitera la compréhension de votre code SQL par tout futur programmeur..

Si vous souhaitez sélectionner une donnée supplémentaire, mais qu'elle ne soit stockée dans aucune de vos tables, procédez comme suit:

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 que faire si vous voulez filtrer un peu plus les résultats? Qu'en est-il de récupérer uniquement 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 Cette commande vous permet d’appliquer des conditions à la sélection et de l’ajouter à la fin de la déclaration:

SELECT age, nom FROM personnes WHERE age> 10;

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

CHOISISSEZ l'âge, nom DES PERSONNES O un âge> 10 ans ET < 20;

le ET Cette commande fonctionne exactement comme elle le fait en anglais: elle applique une autre condition à la déclaration. Dans cet exemple, les données renvoyées sont des enregistrements dont l’âge est compris entre 10 et 20 ans. En l’absence de résultats correspondants, aucune donnée n’est renvoyée..

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

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

Cette requête renvoie des enregistrements dont l'âge est supérieur à 10 ans ou le nom égal à “Joe”. Remarquez qu'il n'y a qu'un seul signe égal? La plupart des langages de programmation utilisent le double égal (==) pour vérifier l’équivalence. Ceci n'est pas nécessaire pour la grande majorité des moteurs de base de données (mais cela peut très bien se faire par environnement, alors vérifiez bien d'abord).

3. Commande

le ordre La commande est utilisée pour trier les résultats renvoyés. C'est un autre facile à utiliser. Ajoutez-le simplement à la fin de votre déclaration:

CHOISISSEZ nom, âge FROM personnes ORDER BY age DESC;

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

SELECT nom, âge FROM personnes ORDER BY nom ASC, âge DESC

COMMANDÉ PAR est peut-être le plus utile lorsqu'il est combiné 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. Rejoindre

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

CHOISISSEZ l'âge, le nom, la taille DES personnes GAUCHE JOINDRE les hauteurs USING (nom);

Il y a quelques choses qui se passent ici. Vous devez commencer par le “JOINT GAUCHE” syntaxe, qui spécifie que vous voulez joindre une table en utilisant une jointure de type left. Ensuite, spécifiez la table que vous souhaitez rejoindre (hauteurs). le USING (nom) la syntaxe indique que la colonne “prénom” peuvent être trouvés dans les deux tables, et que cela devrait être utilisé comme une 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 “SUR” au lieu de “EN UTILISANT”:

CHOISISSEZ l'âge, le nom, la taille DES personnes LEFT JOIN RELEVANT height (ON = nameb);

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

  • (JOINTURE INTERNE - Retourne 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 la table de gauche sont toujours retournés.
  • DROIT (EXTÉRIEUR) JOIN - C’est l’opposé d’une jointure à gauche: toutes les lignes de la table de droite sont retournées, ainsi que toutes les correspondances dans la table de gauche..
  • FULL (OUTER) JOIN - Renvoie tous les enregistrements avec une correspondance dans l'une des tables..

le “INTERNE” ou “EXTÉRIEUR” la syntaxe est facultative. Cela peut rendre les choses plus faciles à comprendre, mais vous n'avez pas à le spécifier pour la plupart du temps..

5. alias

Maintenant que vous connaissez les bases, regardons la alias commander. Ceci est utilisé pour renommer temporairement une table - plus d'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:

SÉLECTIONNER A.age DES PERSONNES A;

Vous pouvez utiliser n'importe quel nom valide, mais j'aime utiliser des 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 faire ceci:

SÉLECTIONNER PERSONNE.AGE DE PERSONNES

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

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

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

SELECT A.age, A.nom, B.age, B.nom FROM personnel A, clients B;

La table du personnel se voit attribuer le pseudonyme de “UNE”, et la table des clients est donné le pseudonyme de “B”. Les tables de repliement aident vraiment à rendre votre code plus facile à comprendre et réduisent la quantité de frappe que vous devez faire..

Vous pouvez également renommer une colonne avec un alias à l'aide de la commande “COMME” commander:

SELECT age AS personne_age FROM personnes;

Lorsque cette requête est exécutée, la colonne sera maintenant appelée “personnage” au lieu de “âge”.

6. Union

syndicat est une excellente commande. Cela vous permet d'ajouter des lignes les unes aux autres. Contrairement aux jointures qui ajoutent des colonnes correspondantes, 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, nom FROM clients UNION SELECT age, nom FROM staff;

Vous pouvez penser à l'union comme un moyen de combiner les résultats de deux requêtes. Une union ne renverra des résultats que s'il existe une ligne unique entre les deux requêtes. Vous pouvez utiliser le “UNION TOUS” syntaxe pour renvoyer toutes les données, quels que soient les doublons:

SELECT age, nom FROM clients UNION ALL SELECT age, nom FROM staff;

Remarquez comment l’ordre des lignes change? Union fonctionne de la manière la plus efficace, les données renvoyées peuvent donc varier.

Un cas d'utilisation possible pour l'union est un sous-total: vous pouvez associer une requête du total à une requête des totaux individuels d'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 les insérer? C'est là que le insérer La commande arrive. Voici un exemple:

INSCRIRE DANS LES PERSONNES (nom, âge) VALEURS ('Joe', 102);

Vous devez spécifier le nom de la table (personnes) et les colonnes que vous souhaitez utiliser (nom et âge). le “VALEURS” la syntaxe est ensuite utilisée pour fournir les valeurs à 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 de respecter les contraintes de table nécessaires présentes..

8. Mise à jour

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

UPDATE personnes SET nom = 'Joe', age = 101;

Vous devez spécifier la table que vous souhaitez modifier, puis utiliser le “ENSEMBLE” syntaxe 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!

Pour être plus précis, vous pouvez utiliser “OÙ” clauses comme si vous faisiez un select:

UPDATE personnes SET nom = 'Joe', age = 101 WHERE nom = 'James';

Vous pouvez même spécifier plusieurs conditions à l'aide de “ET” et “OU”:

UPDATE personnes SET nom = 'Joe', âge = 101 O (nom = 'James' ET âge = 100) OU nom = 'Ryan';

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

9. Upsert

Upsert 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 avez spécifié que vous ne voulez jamais que des enregistrements avec des noms uniques - vous ne voulez pas stocker deux lignes avec le même nom, par exemple. Si vous tentez d'insérer plusieurs valeurs de 'Joe', votre moteur de base de données génère une erreur et refuse 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 non, 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 que récemment acquis cette capacité, alors que MySQL l’a eu pendant un bon bout de temps. Voici la syntaxe MySQL pour référence:

INSERT IN people (nom, âge) VALEURS ('Joe', 101) ON DUPLICATE KEY UPDATE age = 101;

Remarquez comme il s’agit essentiellement d’une mise à jour et d’une instruction insert, qui peuvent se résumer de la manière suivante: “mise à jour si l'insertion a échoué.”

10. Supprimer

Effacer est utilisé pour supprimer complètement des disques - il peut être très dommageable en cas de mauvais traitement! La syntaxe de base est très facile à utiliser:

SUPPRIMER DE personnes;

Comme la plupart des autres commandes, cela supprimera tout! Vous devez utiliser a où pour le limiter à un nombre de lignes légèrement plus sain, idéalement un:

SUPPRIMER DES PERSONNES WHERE name = 'Joe';

Si vous développez un système, il est souvent sage de mettre en œuvre un “suppression douce.” Vous n’exécutez jamais la commande delete, vous créez plutôt une colonne supprimée, puis vérifiez cette colonne dans vos sélections. Vous éviterez ainsi beaucoup de gêne si vous pouvez récupérer rapidement et facilement des enregistrements supposés supprimés. Ceci ne remplace pas les sauvegardes appropriées, cependant.

11. Créer un tableau

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

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

Notez que les noms de colonne et les contraintes sont entre parenthèses et qu'un type de données approprié est attribué aux colonnes. Une clé primaire est spécifiée, comme le requiert toute bonne conception de base de données..

12. modifier le tableau

le changer de table La commande est utilisée pour modifier la structure d'une table. Ceci est légèrement limité, car votre base de données ne vous laissera pas modifier une table si les données existantes causaient un conflit - changer 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 entier;

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

13. Drop Table

La dernière commande est table de dépôt. Considérez ceci comme une suppression, mais plutôt que de supprimer un seul enregistrement, il supprime chaque enregistrement avec la table! Voici comment vous l'utilisez:

DROP TABLE personnes;

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

C'est tout pour aujourd'hui. J'espère que vous avez appris quelques astuces utiles! Vous pouvez apprendre à créer un site Web. Comment créer un site Web: Pour les débutants. Comment créer un site Web: Pour les débutants. Je vous guiderai tout au long du processus de création d'un site Web complet. Ne vous inquiétez pas si cela semble difficile. Je vous guiderai à travers chaque étape du processus. Lisez-en plus, puis utilisez vos nouvelles compétences pour le rendre dynamique - assurez-vous simplement de ne pas commettre ces erreurs. 9 erreurs que vous ne devriez pas commettre lors de la création d'une page Web. 9 erreurs que vous ne devriez pas commettre lors de la création d'une page Web. Les erreurs de codage HTML sont faciles à commettre, mais si vous les écartez plus tôt que plus tard, votre page aura une meilleure apparence, sera plus facile à gérer et fonctionnera comme vous le souhaitez. Lire la suite ou le laisser vulnérable à l'injection SQL Qu'est-ce qu'une injection SQL? [MakeUseOf explique] Qu'est-ce qu'une injection SQL? [MakeUseOf explique] Le monde de la sécurité Internet est en proie à des ports ouverts, des portes dérobées, des failles de sécurité, des chevaux de Troie, des vers, des vulnérabilités de pare-feu et une multitude d'autres problèmes qui nous tiennent tous sur le qui-vive tous les jours. Pour les utilisateurs privés,… Lire la suite. Si vous n'êtes pas sûr d'avoir besoin d'apprendre le langage SQL, avez-vous envisagé de créer un site statique? 7 raisons d'abandonner votre CMS et d'envisager un générateur de site statique 7 raisons d'abandonner votre CMS et d'envisager un générateur de site statique Pendant de nombreuses années, la publication d'un site Web était difficile pour de nombreux utilisateurs. Les CMS comme WordPress ont changé cela, mais ils peuvent toujours être déroutants. Une autre alternative est un générateur de site statique. Lire la suite ?

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

Crédits d'image: HYS_NP / Shutterstock

En savoir plus sur: Programmation, SQL.