Requête SQL pour sélectionner une valeur dans une liste. Comment écrire des requêtes SQL - exemples détaillés. Qu'est-ce que SQL

1 voix

Bienvenue sur mon site de blog. Aujourd'hui, nous allons parler des requêtes SQL pour les débutants. Certains webmasters peuvent avoir une question. Pourquoi apprendre SQL ? N'est-il pas possible de s'en sortir ?

Il s'avère que cela ne suffira pas à créer un projet Internet professionnel. SQL est utilisé pour travailler avec des bases de données et créer des applications pour WordPress. Voyons plus en détail comment utiliser les requêtes.

Qu'est-ce que c'est

SQL est un langage de requête structuré. Conçu pour déterminer le type de données, y donner accès et traiter les informations dans de courts délais. Il décrit les composants ou certains résultats que vous souhaitez voir sur le projet Internet.

Pour faire simple, ce langage de programmation permet d'ajouter, de modifier, de rechercher et d'afficher des informations dans la base de données. La popularité de MySQL est due au fait qu'il est utilisé pour créer des projets Internet dynamiques basés sur une base de données. Par conséquent, pour développer un blog fonctionnel, vous devez apprendre ce langage.

Que peut-il faire

Le langage SQL permet de :

  • créer des tableaux ;
  • changer pour recevoir et stocker diverses données ;
  • combiner les informations en blocs ;
  • protéger les données ;
  • créer des requêtes en accès.

Important! Une fois que vous comprenez SQL, vous pouvez écrire des applications pour WordPress de toute complexité.

Quelle structure

La base de données est constituée de tableaux pouvant être présentés sous forme de fichier Excel.

Il a un nom, des colonnes et une ligne avec quelques informations. Vous pouvez créer de telles tables à l'aide de requêtes SQL.

Ce que vous devez savoir


Points clés pour apprendre SQL

Comme indiqué ci-dessus, les requêtes sont utilisées pour traiter et saisir de nouvelles informations dans une base de données composée de tables. Chaque ligne est une entrée distincte. Alors, créons une base de données. Pour ce faire, écrivez la commande :

Créer une base de données 'bazaname'

Nous écrivons le nom de la base de données en latin entre guillemets. Essayez de lui trouver un nom clair. Ne créez pas de base de données comme « 111 », « www » et autres.

Après avoir créé la base de données, installez :

FIXER LES NOMS 'utf-8'

Ceci est nécessaire pour que le contenu du site s'affiche correctement.

Créons maintenant un tableau :

CRÉER UNE TABLE 'bazaname' . 'tableau' (

id INT(8) NON NULL CLÉ PRIMAIRE AUTO_INCREMENT,

journal VARCHAR(10),

passer VARCHAR(10),

dateDATE

Dans la deuxième ligne, nous avons écrit trois attributs. Voyons ce qu'ils signifient :

  • L'attribut NOT NULL signifie que la cellule ne sera pas vide (le champ est obligatoire) ;
  • La valeur AUTO_INCREMENT est une saisie semi-automatique ;
  • CLÉ PRIMAIRE - clé primaire.

Comment ajouter des informations

Pour remplir les champs de la table créée avec des valeurs, l'instruction INSERT est utilisée. Nous écrivons les lignes de code suivantes :

INSÉRER DANS 'tableau'

(login, pass, date) VALEURS

(« Vasa », « 87654321 », « 21/06/2017 18:38:44 ») ;

Entre parenthèses, nous indiquons les noms des colonnes et, entre parenthèses, les valeurs.

Important! Maintenez la cohérence des noms et des valeurs des colonnes.

Comment mettre à jour les informations

Pour ce faire, utilisez la commande UPDATE. Voyons comment changer le mot de passe d'un utilisateur spécifique. Nous écrivons les lignes de code suivantes :

UPDATE 'table' SET pass = '12345678' WHERE id = '1'

Changez maintenant le mot de passe « 12345678 ». Les changements se produisent dans la ligne avec « id »=1. Si vous n'écrivez pas la commande WHERE, toutes les lignes changeront, pas une en particulier.

Je vous recommande d'acheter le livre " SQL pour les nuls " Avec son aide, vous pouvez travailler professionnellement avec la base de données étape par étape. Toutes les informations sont structurées selon le principe du simple au complexe et seront bien perçues.

Comment supprimer une entrée

Si vous avez écrit quelque chose de mal, corrigez-le à l'aide de la commande DELETE. Fonctionne de la même manière que UPDATE. Nous écrivons le code suivant :

SUPPRIMER DE 'table' OÙ id = '1'

Informations sur l'échantillonnage

Pour récupérer les valeurs de la base de données, utilisez la commande SELECT. Nous écrivons le code suivant :

SELECT * FROM 'table' WHERE id = '1'

Dans cet exemple, nous sélectionnons tous les champs disponibles dans le tableau. Cela se produit si vous entrez un astérisque « * » dans la commande. Si vous devez sélectionner un exemple de valeur, écrivez ceci :

SELECT log, passez FROM table WHERE id = '1'

Il convient de noter que la capacité de travailler avec des bases de données ne suffira pas. Pour créer un projet Internet professionnel, vous devrez apprendre à ajouter des données d'une base de données aux pages. Pour cela, familiarisez-vous avec le langage de programmation web PHP. Cela vous aidera avec ça cours sympa de Mikhail Rusakov .


Supprimer un tableau

Se produit à l’aide d’une requête DROP. Pour ce faire, nous écrirons les lignes suivantes :

table DÉPOSER LA TABLE ;

Afficher un enregistrement d'une table en fonction d'une condition spécifique

Considérez ce code :

SELECT id, country, city FROM table WHERE people>150000000

Il affichera les enregistrements des pays comptant plus de cent cinquante millions d'habitants.

Association

Il est possible de lier plusieurs tables entre elles grâce à Join. Découvrez comment cela fonctionne plus en détail dans cette vidéo :

PHP et MySQL

Je tiens encore une fois à souligner que les demandes lors de la création d'un projet Internet sont monnaie courante. Pour les utiliser dans des documents PHP, suivez l'algorithme suivant :

  • Connectez-vous à la base de données à l'aide de la commande mysql_connect() ;
  • En utilisant mysql_select_db() nous sélectionnons la base de données souhaitée ;
  • Nous traitons la requête en utilisant mysql_fetch_array();
  • Fermez la connexion avec la commande mysql_close().

Important! Travailler avec une base de données n'est pas difficile. L'essentiel est de rédiger correctement la demande.

Les webmasters débutants y réfléchiront. Que faut-il lire sur ce sujet ? Je voudrais recommander le livre de Martin Graber " SQL pour les simples mortels " Il est écrit de telle manière que les débutants comprendront tout. Utilisez-le comme ouvrage de référence.

Mais c'est une théorie. Comment cela fonctionne-t-il en pratique ? En réalité, un projet Internet doit non seulement être créé, mais également porté au TOP de Google et Yandex. Le cours vidéo vous y aidera " Création et promotion de site internet ».


Instructions vidéo

Vous avez encore des questions ? Regardez la vidéo en ligne pour plus de détails.

Conclusion

Ainsi, comprendre comment écrire des requêtes SQL n'est pas aussi difficile qu'il y paraît, mais tout webmaster doit le faire. Les cours vidéo décrits ci-dessus vous y aideront. Abonnez-vous à mon groupe VKontakte être le premier informé lorsque de nouvelles informations intéressantes apparaissent.

Chacun de nous rencontre et utilise régulièrement diverses bases de données. Lorsque nous sélectionnons une adresse e-mail, nous travaillons avec une base de données. Les bases de données sont utilisées par les services de recherche, les banques pour stocker les données clients, etc.

Mais malgré l'utilisation constante des bases de données, même pour de nombreux développeurs de systèmes logiciels, il existe encore de nombreux angles morts dus à des interprétations différentes des mêmes termes. Nous donnerons une brève définition des termes de base des bases de données avant d'aborder le langage SQL. Donc.

Base de données - un fichier ou une collection de fichiers pour stocker des structures de données ordonnées et leurs relations. Très souvent, un système de gestion est appelé base de données. Une base de données est simplement un stockage d'informations dans un format spécifique et peut fonctionner avec différents SGBD.

Tableau - Imaginons un dossier dans lequel sont stockés des documents, regroupés selon une certaine caractéristique, par exemple une liste de commandes du mois dernier. Il s'agit d'une table dans un ordinateur. Une table distincte a son propre nom unique.

Type de données - le type d’informations pouvant être stockées dans une colonne ou une ligne distincte. Il peut s'agir de chiffres ou de texte d'un certain format.

Colonne et ligne- Nous avons tous travaillé avec des feuilles de calcul, qui comportent également des lignes et des colonnes. Toute base de données relationnelle fonctionne avec les tables de la même manière. Les lignes sont parfois appelées enregistrements.

Clé primaire- Chaque ligne d'un tableau peut avoir une ou plusieurs colonnes pour l'identifier de manière unique. Sans clé primaire, il est très difficile de mettre à jour, modifier et supprimer les lignes pertinentes.

Qu’est-ce que SQL ?

SQL(Anglais - langage de requête structuré) a été développé uniquement pour travailler avec des bases de données et constitue actuellement la norme pour tous les SGBD populaires. La syntaxe du langage se compose d'un petit nombre d'opérateurs et est facile à apprendre. Mais, malgré son apparente simplicité, il permet de créer des requêtes SQL pour des opérations complexes avec une base de données de toute taille.

Depuis 1992, il existe une norme généralement acceptée appelée ANSI SQL. Il définit la syntaxe et les fonctions de base des opérateurs et est pris en charge par tous les leaders du marché des SGBD, comme ORACLE. Il est impossible de considérer toutes les capacités du langage dans un court article, nous ne considérerons donc brièvement que les requêtes SQL de base. Les exemples montrent clairement la simplicité et les capacités du langage :

  • créer des bases de données et des tables ;
  • échantillonnage de données ;
  • ajouter des enregistrements ;
  • modification et suppression des informations.

Types de données SQL

Toutes les colonnes d'une table de base de données stockent le même type de données. Les types de données en SQL sont les mêmes que dans les autres langages de programmation.

Nous créons des tables et des bases de données

Il existe deux manières de créer de nouvelles bases de données, tables et autres requêtes en SQL :

  • Instructions SQL via la console SGBD
  • Utilisation des outils d'administration interactifs inclus avec le serveur de base de données.

Une nouvelle base de données est créée par l'opérateur CRÉER UNE BASE DE DONNÉES<наименование базы данных>; . Comme vous pouvez le constater, la syntaxe est simple et concise.

Nous créons des tables dans la base de données à l'aide de l'instruction CREATE TABLE avec les paramètres suivants :

  • nom du tableau
  • noms de colonnes et types de données

À titre d'exemple, créons une table Commodity avec les colonnes suivantes :

Créez un tableau :

CRÉER UNE TABLE

(commodity_id CHAR(15) NON NULL,

id_vendeur CHAR(15) NON NULL,

nom_produit CHAR(254) NULL,

prix_produit DECIMAL(8,2) NULL,

marchandise_desc VARCHAR(1000) NULL);

Le tableau se compose de cinq colonnes. Après le nom vient le type de données, les colonnes sont séparées par des virgules. La valeur de la colonne peut accepter des valeurs vides (NULL) ou doit être remplie (NON NULL), et cela est déterminé lors de la création de la table.

Récupérer des données d'une table

L'opérateur de récupération de données est la requête SQL la plus couramment utilisée. Pour obtenir des informations, il faut indiquer ce que l'on souhaite sélectionner dans un tel tableau. Tout d'abord un exemple simple :

SELECT nom_produit FROM Produit

Après l'instruction SELECT, nous spécifions le nom de la colonne pour obtenir des informations, et FROM définit la table.

Le résultat de la requête sera toutes les lignes de la table avec les valeurs Commodity_name dans l'ordre dans lequel elles ont été saisies dans la base de données, c'est-à-dire sans aucun tri. Une clause ORDER BY supplémentaire est utilisée pour trier le résultat.

Pour interroger plusieurs champs, répertoriez-les séparés par des virgules, comme dans l'exemple suivant :

SELECT id_marchandise, nom_marchandise, prix_marchandise FROM Marchandise

Il est possible d'obtenir la valeur de toutes les colonnes d'une ligne comme résultat d'une requête. Pour cela, utilisez le signe « * » :

SELECT * FROM Produit

  • De plus, SELECT prend en charge :
  • Tri des données (opérateur ORDER BY)
  • Sélection selon conditions (OÙ)
  • Terme de regroupement (GROUP BY)

Ajouter une ligne

Pour ajouter une ligne à une table, des requêtes SQL avec l'opérateur INSERT sont utilisées. L'ajout peut se faire de trois manières :

  • ajoutez une nouvelle ligne entière ;
  • partie de chaîne ;
  • résultats de la requête.

Pour ajouter une ligne complète, vous devez préciser le nom de la table et les valeurs des colonnes (champs) de la nouvelle ligne. Voici un exemple :

INSERT INTO Commodity VALUES("106 ", "50", "Coca-Cola", "1.68", "No Alcogol ,)

L'exemple ajoute un nouveau produit au tableau. Les valeurs sont répertoriées après VALEURS pour chaque colonne. S'il n'y a pas de valeur correspondante pour la colonne, alors NULL doit être spécifié. Les colonnes sont remplies de valeurs dans l'ordre spécifié lors de la création de la table.

Si vous ajoutez seulement une partie d'une ligne, vous devez spécifier explicitement les noms des colonnes, comme dans l'exemple :

INSERT INTO Commodity (commodity_id, Vendor_id, Commodity_name)

VALEURS("106 ", '50", "Coca-Cola",)

Nous avons saisi uniquement les identifiants du produit, du fournisseur et son nom, et avons laissé les champs restants vides.

Ajout de résultats de requête

INSERT est principalement utilisé pour ajouter des lignes, mais peut également être utilisé pour ajouter les résultats d'une instruction SELECT.

Modification des données

Pour modifier les informations dans les champs d'une table de base de données, vous devez utiliser l'instruction UPDATE. L'opérateur peut être utilisé de deux manières :

  • Toutes les lignes du tableau sont mises à jour.
  • Uniquement pour une ligne spécifique.

UPDATE se compose de trois éléments principaux :

  • tableau dans lequel des modifications doivent être apportées ;
  • les noms de champs et leurs nouvelles valeurs ;
  • conditions de sélection des lignes à modifier.

Regardons un exemple. Disons que le prix d'un produit avec l'ID=106 a changé, cette ligne doit donc être mise à jour. On écrit l'opérateur suivant :

MISE À JOUR Commodity SET Commodity_price = "3.2" WHERE Commodity_id = "106"

Nous avons spécifié le nom de la table, dans notre cas Commodity, où la mise à jour sera effectuée, puis après SET - la nouvelle valeur de la colonne et avons trouvé l'enregistrement souhaité en spécifiant la valeur ID requise dans OÙ.

Pour modifier plusieurs colonnes, l'instruction SET est suivie de plusieurs paires colonne-valeur séparées par des virgules. Regardons un exemple dans lequel le nom et le prix d'un produit sont mis à jour :

UPDATE Commodity SET Commodity_name = 'Fanta', Commodity_price = "3.2" WHERE Commodity_id = "106"

Pour supprimer des informations dans une colonne, vous pouvez lui attribuer la valeur NULL si la structure de la table le permet. Il faut se rappeler que NULL est précisément une valeur « non », et non zéro sous forme de texte ou de nombre. Supprimons la description du produit :

MISE À JOUR Commodity SET Commodity_desc = NULL WHERE Commodity_id = "106"

Supprimer des lignes

Les requêtes SQL pour supprimer des lignes dans une table sont exécutées à l'aide de l'instruction DELETE. Il existe deux cas d'utilisation :

  • Certaines lignes du tableau sont supprimées ;
  • Toutes les lignes du tableau sont supprimées.

Un exemple de suppression d'une ligne d'un tableau :

DELETE FROM Commodity WHERE marchandise_id = "106"

Après DELETE FROM nous indiquons le nom de la table dans laquelle les lignes seront supprimées. La clause WHERE contient la condition selon laquelle les lignes seront sélectionnées pour être supprimées. Dans l'exemple, nous supprimons la ligne de produits avec l'ID=106. Spécifier OÙ est très important car l'omission de cette instruction supprimera toutes les lignes du tableau. Cela s'applique également à la modification de la valeur des champs.

L'instruction DELETE ne spécifie pas de noms de colonnes ni de métacaractères. Il supprime complètement les lignes, mais il ne peut pas supprimer une seule colonne.

Utiliser SQL dans Microsoft Access

Généralement utilisé de manière interactive pour créer des tables, des bases de données, pour gérer, modifier, analyser des données dans une base de données et pour implémenter des requêtes SQL Access via un concepteur de requêtes interactif pratique (Query Designer), à l'aide duquel vous pouvez créer et exécuter immédiatement des instructions SQL de toute complexité.

Le mode d'accès au serveur est également pris en charge, dans lequel le SGBD Access peut être utilisé comme générateur de requêtes SQL vers n'importe quelle source de données ODBC. Cette fonctionnalité permet aux applications Access d’interagir avec n’importe quel format.

Extensions SQL

Étant donné que les requêtes SQL ne possèdent pas toutes les capacités des langages de programmation procédurale, telles que les boucles, les branchements, etc., les fabricants de SGBD développent leur propre version de SQL avec des fonctionnalités avancées. Tout d'abord, il s'agit de la prise en charge des procédures stockées et des opérateurs standards des langages procéduraux.

Les dialectes les plus courants de la langue :

  • Base de données Oracle - PL/SQL
  • Interbase, Firebird-PSQL
  • Microsoft SQL Server-Transact-SQL
  • PostgreSQL-PL/pgSQL.

SQL sur Internet

Le SGBD MySQL est distribué sous la licence publique générale GNU gratuite. Il existe une licence commerciale avec la possibilité de développer des modules personnalisés. En tant que composant, il est inclus dans les assemblages de serveurs Internet les plus populaires, tels que XAMPP, WAMP et LAMP, et constitue le SGBD le plus populaire pour développer des applications sur Internet.

Il a été développé par Sun Microsystems et est actuellement pris en charge par Oracle Corporation. Les bases de données d'une taille maximale de 64 téraoctets, la norme de syntaxe SQL : 2003, la réplication des bases de données et les services cloud sont prises en charge.

Chaque développeur Web doit connaître SQL pour écrire des requêtes de base de données. Et, bien que phpMyAdmin n'ait pas été annulé, il est souvent nécessaire de mettre la main à la pâte pour écrire du SQL de bas niveau.

C'est pourquoi nous avons préparé un petit tour d'horizon des bases de SQL. Commençons !

1. Créez un tableau

L'instruction CREATE TABLE est utilisée pour créer des tables. Les arguments doivent être les noms des colonnes, ainsi que leurs types de données.

Créons une table simple nommée mois. Il se compose de 3 colonnes :

  • identifiant– Numéro du mois dans l'année civile (entier).
  • nom– Nom du mois (chaîne, 10 caractères maximum).
  • jours– Nombre de jours dans ce mois (entier).

Voici à quoi ressemblerait la requête SQL correspondante :

CREATE TABLE mois (id int, nom varchar(10), jours int) ;

Aussi, lors de la création de tables, il est conseillé d'ajouter une clé primaire pour l'une des colonnes. Cela permettra de conserver les enregistrements uniques et d'accélérer les demandes de récupération. Dans notre cas, que le nom du mois soit unique (colonne nom)

CREATE TABLE mois (id int, nom varchar(10), jours int, PRIMARY KEY (nom)) ;

Date et heure
Type de donnéesDescription
DATEValeurs de dates
DATEHEUREValeurs de date et d'heure précises à la minute près
TEMPSValeurs temporelles

2. Insertion de lignes

Maintenant, remplissons notre tableau mois informations utiles. L'ajout d'enregistrements à une table se fait à l'aide de l'instruction INSERT. Il existe deux manières d'écrire cette instruction.

La première méthode ne consiste pas à spécifier les noms des colonnes dans lesquelles les données seront insérées, mais à spécifier uniquement les valeurs.

Cette méthode d'enregistrement est simple, mais dangereuse, car il n'y a aucune garantie qu'à mesure que le projet se développe et que le tableau est modifié, les colonnes seront dans le même ordre qu'auparavant. Une manière sûre (et en même temps plus lourde) d'écrire une instruction INSERT nécessite de spécifier à la fois les valeurs et l'ordre des colonnes :

Voici la première valeur de la liste VALEURS correspond au premier nom de colonne spécifié, etc.

3. Extraire des données des tableaux

L'instruction SELECT est notre meilleure amie lorsque nous souhaitons récupérer des données d'une base de données. Il est utilisé très souvent, alors portez une attention particulière à cette section.

L'utilisation la plus simple de l'instruction SELECT est une requête qui renvoie toutes les colonnes et lignes d'une table (par exemple, les tables par nom personnages):

SELECT * FROM "caractères"

Le symbole astérisque (*) signifie que nous voulons obtenir les données de toutes les colonnes. Étant donné que les bases de données SQL sont généralement constituées de plusieurs tables, il est nécessaire de spécifier le mot-clé FROM, suivi du nom de la table, séparé par un espace.

Parfois, nous ne souhaitons pas obtenir les données de toutes les colonnes d'un tableau. Pour ce faire, au lieu d'un astérisque (*), il faut noter les noms des colonnes souhaitées, séparés par des virgules.

SELECT id, nom FROM mois

De plus, dans de nombreux cas, nous souhaitons que les résultats obtenus soient triés dans un ordre spécifique. En SQL, nous faisons cela en utilisant ORDER BY. Il peut accepter un modificateur facultatif - ASC (par défaut) tri par ordre croissant ou DESC, tri par ordre décroissant :

SELECT id, nom FROM mois ORDER BY nom DESC

Lorsque vous utilisez ORDER BY, assurez-vous qu'il apparaît en dernier dans l'instruction SELECT. Sinon, un message d'erreur s'affichera.

4. Filtrage des données

Vous avez appris à sélectionner des colonnes spécifiques dans une base de données à l'aide d'une requête SQL, mais que se passe-t-il si nous devons également récupérer des lignes spécifiques ? La clause WHERE vient ici à la rescousse, nous permettant de filtrer les données en fonction de la condition.

Dans cette requête, nous sélectionnons uniquement ces mois dans le tableau mois, dans lequel il y a plus de 30 jours d'utilisation de l'opérateur supérieur à (>).

SELECT id, nom FROM mois WHERE jours > 30

5. Filtrage avancé des données. Opérateurs AND et OR

Auparavant, nous utilisions le filtrage des données selon un seul critère. Pour un filtrage de données plus complexe, vous pouvez utiliser les opérateurs AND et OR ainsi que les opérateurs de comparaison (=,<,>,<=,>=,<>).

Nous avons ici un tableau contenant les quatre albums les plus vendus de tous les temps. Choisissons ceux qui sont classés comme rock et qui se sont vendus à moins de 50 millions d'exemplaires. Cela peut être facilement réalisé en plaçant un opérateur ET entre ces deux conditions.


SELECT * FROM albums WHERE genre = "rock" AND sales_in_millions<= 50 ORDER BY released

6. Dans/Entre/J’aime

WHERE prend également en charge plusieurs commandes spéciales, vous permettant de vérifier rapidement les requêtes les plus fréquemment utilisées. Les voici :

  • IN – sert à indiquer une série de conditions, dont chacune peut être remplie
  • ENTRE – vérifie si une valeur se situe dans la plage spécifiée
  • LIKE – recherche des modèles spécifiques

Par exemple, si nous voulons sélectionner des albums avec populaire Et âme musique, nous pouvons utiliser IN("value1","value2") .

SELECT * FROM albums WHERE genre IN ("pop","soul");

Si l’on veut récupérer tous les albums sortis entre 1975 et 1985, il faut écrire :

SÉLECTIONNER * DES albums OÙ sortis ENTRE 1975 ET 1985 ;

7. Fonctions

SQL regorge de fonctions qui font toutes sortes de choses utiles. Voici quelques-uns des plus couramment utilisés :

  • COUNT() – renvoie le nombre de lignes
  • SUM() – renvoie la somme totale d'une colonne numérique
  • AVG() - renvoie la moyenne d'un ensemble de valeurs
  • MIN() / MAX() – Obtient la valeur minimale/maximale d'une colonne

Pour obtenir l'année la plus récente dans notre table, nous devons écrire la requête SQL suivante :

SELECT MAX (sorti) FROM albums ;

8. Sous-requêtes

Dans le paragraphe précédent, nous avons appris à effectuer des calculs simples avec des données. Si l’on souhaite exploiter le résultat de ces calculs, on ne peut pas se passer de requêtes imbriquées. Disons que nous voulons sortir artiste, album Et année de sortie pour l'album le plus ancien du tableau.

Nous savons comment obtenir ces colonnes spécifiques :

SELECT artiste, album, sorti DES albums ;

Nous savons également comment obtenir l'année la plus ancienne :

SELECT MIN (sorti) DE l'album ;

Il ne reste plus qu'à combiner les deux requêtes en utilisant WHERE :

SELECT artiste, album, sorti FROM albums WHERE release = (SELECT MIN (sorti) FROM albums );

9. Joindre des tables

Dans les bases de données plus complexes, il existe plusieurs tables liées les unes aux autres. Par exemple, vous trouverez ci-dessous deux tableaux sur les jeux vidéo ( jeux_vidéo) et les développeurs de jeux vidéo ( développeurs_dejeu).


Dans le tableau jeux_vidéo il y a une colonne développeur ( ID_développeur), mais il contient un entier et non le nom du développeur. Ce numéro représente l'identifiant ( identifiant) du développeur correspondant dans le tableau des développeurs de jeux ( développeurs_dejeu), reliant logiquement deux listes, nous permettant d'utiliser les informations stockées dans les deux en même temps.

Si nous voulons créer une requête qui renvoie tout ce que nous devons savoir sur les jeux, nous pouvons utiliser un INNER JOIN pour lier les colonnes des deux tables.

SELECT video_games.name, video_games.genre, game_developers.name, game_developers.country FROM video_games INNER JOIN game_developers ON video_games.developer_id = game_developers.id;

Il s’agit du type JOIN le plus simple et le plus courant. Il existe plusieurs autres options, mais celles-ci s'appliquent à des cas moins courants.

10. Alias

Si vous regardez l'exemple précédent, vous remarquerez qu'il y a deux colonnes appelées nom. C'est déroutant, alors définissons un alias pour l'une des colonnes répétitives, comme ceci nom du tableau développeurs_dejeu sera appelé promoteur.

Nous pouvons également raccourcir la requête en créant un alias pour les noms de tables : jeux_vidéo appelons jeux, développeurs_dejeu - les développeurs:

SELECT games.name, games.genre, devs.name AS développeur, devs.country FROM video_games AS games INNER JOIN game_developers AS devs ON games.developer_id = devs.id;

11. Mise à jour des données

Nous devons souvent modifier les données de certaines lignes. En SQL, cela se fait à l'aide de l'instruction UPDATE. L'instruction UPDATE comprend :

  • Le tableau dans lequel se situe la valeur de remplacement ;
  • Noms de colonnes et leurs nouvelles valeurs ;
  • Les lignes sélectionnées en utilisant WHERE que nous souhaitons mettre à jour. Si cela n'est pas fait, toutes les lignes du tableau changeront.

Ci-dessous le tableau Séries TV avec les séries télévisées et leurs audiences. Cependant, une petite erreur s'est glissée dans le tableau : bien que la série Game of Thrones et est décrit comme une comédie, ce n'est vraiment pas le cas. Réparons ça !

Données de la table tv_series UPDATE tv_series SET genre = "drame" WHERE id = 2;

12. Suppression de données

La suppression d'une ligne de tableau à l'aide de SQL est un processus très simple. Tout ce que vous avez à faire est de sélectionner le tableau et la ligne que vous souhaitez supprimer. Supprimons la dernière ligne du tableau de l'exemple précédent Séries TV. Cela se fait à l'aide de l'instruction >DELETE.

SUPPRIMER DE tv_series OÙ id = 4

Soyez prudent lorsque vous écrivez l'instruction DELETE et assurez-vous que la clause WHERE est présente, sinon toutes les lignes du tableau seront supprimées !

13. Supprimer un tableau

Si nous voulons supprimer toutes les lignes mais quitter la table elle-même, utilisez la commande TRUNCATE :

TRUNCATE TABLE nom_table ;

Dans le cas où nous souhaitons effectivement supprimer à la fois les données et la table elle-même, alors la commande DROP nous sera utile :

DROP TABLE nom_table ;

Soyez très prudent avec ces commandes. Ils ne peuvent pas être annulés !/p>

Ceci conclut notre tutoriel SQL ! Il y a beaucoup de choses que nous n'avons pas abordées, mais ce que vous savez déjà devrait suffire à vous donner des compétences pratiques pour votre carrière sur le Web.

Syntaxe:

* Où champs1— des champs de sélection séparés par des virgules, vous pouvez également spécifier tous les champs avec un * ; tableau— le nom de la table à partir de laquelle nous extrayons les données ; conditions— les conditions d'échantillonnage; champs2— un ou plusieurs champs séparés par des virgules pour trier ; compter— nombre de lignes à télécharger.
* La requête entre crochets n'est pas obligatoire pour récupérer des données.

Exemples simples d'utilisation de select

1. Échantillonnage normal des données :

> SELECT * FROM utilisateurs

2. Échantillonnage de données avec jointure de deux tables (JOIN) :

SELECT u.name, r.* FROM utilisateurs u JOIN users_rights r ON r.user_id=u.id

* dans cet exemple, les données sont échantillonnées avec des tables jointes utilisateurs Et droits_utilisateurs. Ils sont unis par des champs ID de l'utilisateur(dans la table users_rights) et identifiant(utilisateurs). Le champ de nom est récupéré de la première table et tous les champs de la seconde.

3. Échantillonnage avec intervalles de temps et/ou de date

a) le point de départ et un certain intervalle de temps sont connus :

* les données de la dernière heure seront sélectionnées (champ date).

b) la date de début et la date de fin sont connues :

25.10.2017 Et 25.11.2017 .

c) les dates de début et de fin + l'heure sont connues :

* sélectionner les données entre 25/03/2018 0 heures 15 minutes Et 25/04/2018 15 heures 33 minutes et 9 secondes.

d) extraire les données pour un certain mois et une certaine année :

* extraire les données où que ce soit sur le terrain date il y a des valeurs pour avril 2018 année.

4. Échantillonnage des valeurs maximales, minimales et moyennes :

> SELECT max (zone), min (zone), moyenne (zone) DU pays

* maximum— valeur maximale; min- minime ; moyenne- moyenne.

5. Utilisation de la longueur de chaîne :

* cette requête doit afficher tous les utilisateurs dont le nom est composé de 5 caractères.

Exemples de requêtes plus complexes ou rarement utilisées

1. Concaténation avec regroupement des données sélectionnées sur une seule ligne (GROUP_CONCAT) :

* du tableau utilisateurs les données de terrain sont récupérées identifiant, ils sont tous placés sur une seule ligne, les valeurs sont séparées virgules.

2. Regroupement des données par deux champs ou plus :

> SELECT * FROM utilisateurs GROUP BY CONCAT(titre, "::", naissance)

* en résumé, dans cet exemple nous allons télécharger les données de la table des utilisateurs et les regrouper par champs titre Et naissance. Avant le regroupement, nous combinons les champs en une seule ligne avec un délimiteur :: .

3. Fusion des résultats de deux tables (UNION) :

> (SELECT id, fio, adresse, "Utilisateurs" comme type FROM utilisateurs)
UNION
(SELECT id, fio, adresse, "Clients" comme type FROM clients)

* dans cet exemple, les données sont échantillonnées à partir de tableaux utilisateurs Et clients.

4. Un échantillon de moyennes regroupées pour chaque heure :

SELECT avg(température), DATE_FORMAT(datetimeupdate, "%Y-%m-%d %H") comme hour_datetime FROM archive GROUP BY DATE_FORMAT(datetimeupdate, "%Y-%m-%d %H")

*ici on extrait la valeur moyenne du champ température du tableau archive et regrouper par domaine dateheuremise à jour(avec division temporelle pour chaque heure).

INSÉRER

Syntaxe 1 :

> INSÉRER DANS

() VALEURS ( )

Syntaxe 2 :

> INSÉRER DANS

VALEURS ( )

* Où tableau— le nom de la table dans laquelle nous saisissons les données ; champs— listant les champs séparés par des virgules ;valeurs— répertoriant les valeurs séparées par des virgules.
* la première option vous permettra d'insérer uniquement les champs répertoriés - le reste recevra des valeurs par défaut. La deuxième option nécessitera une insertion pour tous les champs.

Exemples d'utilisation d'insert

1. Insertion de plusieurs lignes avec une seule requête :

> INSÉRER DANS les villes ("nom", "pays") des VALEURS ("Moscou", "Russie"), ("Paris", "France"), ("Funafuti", "Tuvalu");

* dans cet exemple, nous ajouterons 3 enregistrements dans une requête SQL.

2. Insertion à partir d'une autre table (copie de lignes, INSERT + SELECT) :

* extraire tous les enregistrements de la table villes, dont les noms commencent par « M » et inscrivez-les dans le tableau villes-nouvelles.

Mise à jour (MISE À JOUR)

Syntaxe:

* Où tableau— nom de la table ; champ— le champ dont on va changer la valeur ; valeur- un nouveau sens ; conditions— condition (sans cela, faire une mise à jour est dangereux - vous pouvez remplacer toutes les données de la table entière).

Mise à jour par remplacement (REPLACE) :

MISE À JOUR

ENSEMBLE = REMPLACER( , "<что меняем>", "<на что>");

UPDATE villes SET nom = REPLACE(nom, "Maskva", "Moscou");

Si nous voulons jouer la sécurité, nous pouvons d'abord vérifier le résultat du remplacement en utilisant SELECT :

Supprimer (SUPPRIMER)

Syntaxe:

* Où tableau— nom de la table ; conditions— condition (comme dans le cas de UPDATE, utiliser DELETE sans condition est dangereux - le SGBD ne demandera pas de confirmation, mais supprimera simplement toutes les données).

Création d'un tableau

Syntaxe:

> CRÉER UN TABLEAU

( , )

> CRÉER UNE TABLE SI N'EXISTE PAS `users_rights` (
`id` int(10) non signé NON NULL,
`user_id` int(10) non signé NOT NULL,
`rights` int(10) non signé NON NULL
) MOTEUR=InnoDB CHARSET PAR DÉFAUT=utf8;

* Où tableau— nom de la table (dans l'exemple droits_utilisateurs); champ1, champ2— nom des champs (dans l'exemple, 3 champs sont créés — identifiant, user_id, droits); options1, options2— paramètres de champ (dans l'exemple int(10) non signé NON NULL); options du tableau— paramètres généraux du tableau (dans l'exemple MOTEUR = InnoDB CHARSET PAR DÉFAUT = utf8).

Utiliser des requêtes en PHP

Connexion à la base de données :

mysql_connect("localhost", "login", "password") ou die("Erreur de connexion MySQL");
mysql_select_db("nom_base de données");
mysql_query("DÉFINIR LES NOMS "utf8"");

* où la connexion est établie à une base de données sur un serveur local ( hôte local); identifiants de connexion - se connecter Et mot de passe(respectivement login et mot de passe) ; utilisé comme base nom_base de données; encodage utilisé UTF-8.

Vous pouvez également créer une connexion persistante :

mysql_pconnect("localhost", "login", "password") ou die("Erreur de connexion MySQL");

* cependant, il existe une possibilité d'atteindre la limite d'hébergement maximale autorisée. Cette méthode doit être utilisée sur nos propres serveurs, où nous pouvons nous-mêmes contrôler la situation.

Connexion complète :

* en PHP cela s'effectue automatiquement, sauf pour les connexions persistantes (mysql_pconnect).

Une requête vers MySQL (Mariadb) en PHP est effectuée avec la fonction mysql_query(), et la récupération des données de la requête est effectuée avec mysql_fetch_array() :

$result = mysql_query("SELECT * FROM utilisateurs");
while ($mass = mysql_fetch_array($result)) (
echo $masse . "
";
}

* dans cet exemple, une requête a été effectuée sur la table utilisateurs. Le résultat de la requête est placé dans une variable $résultat. Ensuite, la boucle est utilisée alors que, dont chaque itération récupère un tableau de données et le place dans une variable $masse— à chaque itération, nous travaillons avec une ligne de la base de données.

La fonction mysql_fetch_array() utilisée renvoie un tableau associatif, avec lequel il est pratique de travailler, mais il existe également une alternative - mysql_fetch_row(), qui renvoie un tableau numéroté régulier.

Blindage

Si vous devez inclure un caractère spécial dans la chaîne de requête, par exemple %, vous devez utiliser l'échappement à l'aide du caractère barre oblique inverse - \

Par exemple:

* si vous exécutez une telle requête sans vous échapper, le signe % sera interprété comme n'importe quel nombre de caractères après 100.

C'est tout. Si vous avez besoin d'aide pour compléter une demande, veuillez m'envoyer un e-mail

SÉLECTIONNER. S'il existe des connexions entre les tables, les données peuvent être extraites selon des conditions appropriées de n'importe quelle colonne des tables associées. Répertoriez tous ceux dont vous avez besoin après l'instruction SELECT. Spécifiez les tables utilisées dans la requête dans l'expression FROM. Dans sa forme la plus simple, une requête de sélection affiche toutes les lignes des colonnes spécifiées d'une table donnée : SELECT col1, col2 FROM my_table.

Si nécessaire, définissez une condition de sélection des lignes. La condition est spécifiée par l'instruction WHERE. Définissez la valeur du paramètre dont vous avez besoin après cette instruction. Le calcul des fonctions et des opérations peut également être utilisé ici. Ainsi, le type WHERE col1 > 3 permet d'afficher les lignes du tableau dans lesquelles la valeur de la colonne col1 est supérieure à 3. Pour spécifier l'expression souhaitée, utilisez des combinaisons d'opérateurs AND, OR, ainsi que des opérateurs SQL conditionnels.

Pour insérer de nouvelles lignes, écrivez une requête INSERT. Il permet d'insérer de nouvelles données du même type que des données existantes. La syntaxe de cette instruction est très simple : INSERT INTO my_table (col1, col2, col3) VALUES ('new_data1', 'new_data2', 'new_data3'). Ici, l'instruction VALUES attribue de nouvelles valeurs de ligne à chaque my_table existante.

La modification des données dans n'importe quelle ligne du tableau est effectuée à l'aide d'une requête UPDATE. De plus, vous pouvez mettre WHERE, ce qui modifie les informations dans la base de données. Définissez les données à modifier et les conditions d'exécution de votre demande. Pour ce faire, écrivez une ligne comme : UPDATE my_table SET col1 = 'new_data1', col3 = 'new_data3' WHERE col3 = 10. La requête effectuera la modification de données spécifiée dans l'instruction SET uniquement si la condition de la clause WHERE est satisfaite. .

Requête DELETE pour supprimer une ligne entière d’une table de données. De plus, la ligne sert uniquement à spécifier la condition d'exécution WHERE. Notez l'expression : DELETE FROM my_table WHERE col1 = 'data1'. Lorsque cette requête est exécutée, la ligne du tableau contenant la valeur data1 dans la colonne col1 sera supprimée.

Veuillez noter

Si la requête DELETE ne spécifie pas de conditions pour les lignes à supprimer, la table entière sera supprimée.

SQL est un langage de requête généralement utilisé pour effectuer des opérations dans un SGBD spécifique. Après avoir maîtrisé SQL, vous serez capable d'écrire diverses applications Web à l'aide de bases de données MySQL ou Oracle. À l'aide du langage de requête, toutes les tables de la base de données sont créées et certaines données sont également stockées, modifiées et récupérées.

Instructions

Les commandes SQL peuvent être divisées en plusieurs groupes :
- DDL, qui est utilisé pour modifier et supprimer des objets dans la base de données ;

DCL qui contrôlent l’accès à la base de données ;

TCL, qui détermine le résultat des transactions ;

DML, qui sont responsables du déplacement des données.

La commande la plus basique pour créer des requêtes peut être considérée comme SQL Create Table. Il décrit la structure de la table en cours de création. Dans cette requête, vous pouvez définir des colonnes locales qui définissent le type et les noms des données dans une colonne donnée. Par exemple:
CRÉER UNE TABLE Première table (

nom varchar(255),

nom de famille varchar(255)

);
La requête créera une table Firsttable avec les colonnes id, name et name, qui peuvent prendre les valeurs appropriées.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :