SQL - qu'est-ce que c'est, à quoi sert le langage et fonctions de base pour les débutants. Requêtes SQL simples – aide courte et exemples

Chacun de nous rencontre et utilise régulièrement diverses bases de données. Quand nous choisissons 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é utilisation constante bases de données, même pour de nombreux développeurs systèmes logiciels Il reste de nombreux « points blancs » en raison des différentes interprétations des mêmes termes. Nous donnerons courte définition termes de base de la base de données avant de les consulter 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 - il ne s'agit que d'un référentiel 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 des 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 feuilles de calcul, qui contient également des lignes et des colonnes. N'importe lequel base relationnelle data fonctionne avec les tableaux 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 requises.

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 dans actuellement est un standard 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 création de SQL requêtes pour des opérations complexes avec des bases 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 de base et les fonctions 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 fonctionnalités du langage dans un court article, nous ne considérerons donc brièvement que les principales. Requêtes SQL. 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.

Créé nouvelle base données de 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 de la table
  • 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 spécifier le nom de la table et les valeurs de la colonne (champ) 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 indiqué 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 trouvée l'entrée souhaitée, en spécifiant la valeur d'ID souhaitée dans WHERE.

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, manipuler, modifier, analyser des données dans une base de données et implémenter des requêtes. Accès SQL via un concepteur de requêtes interactif pratique (Query Designer), à l'aide duquel vous pouvez créer et exécuter immédiatement 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 Accéder aux applications 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 serveur SQL- 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. Comment composant inclus dans les assemblages de serveurs Internet les plus populaires, tels que XAMPP, WAMP et LAMP, et est 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.

Les requêtes sont écrites sans guillemets d'échappement, car MySQL, MSSQL Et PostGree ils sont différents.

Requête SQL : obtenir les champs spécifiés (nécessaires) de la table

SELECT id, country_title, count_people FROM table_name

Nous obtenons une liste de dossiers : TOUS les pays et leurs populations. Les noms des champs obligatoires sont indiqués séparés par des virgules.

SELECT * FROM nom_table

* désigne tous les champs. Autrement dit, il y aura des spectacles TOUT champs de données.

Requête SQL : sortie des enregistrements d'une table en excluant les doublons

SELECT DISTINCT country_title FROM table_name

Nous obtenons une liste d'enregistrements : pays où se trouvent nos utilisateurs. Il peut y avoir plusieurs utilisateurs d’un même pays. Dans ce cas, c'est votre demande.

Requête SQL : afficher les enregistrements d'une table en fonction d'une condition donnée

SELECT id, country_title, city_title FROM table_name WHERE count_people>100000000

Nous obtenons une liste de records : pays où le nombre de personnes est supérieur à 100 000 000.

Requête SQL : affichage des enregistrements d'une table avec classement

SELECT id, city_title FROM table_name ORDER BY city_title

Nous obtenons une liste d'enregistrements : villes de ordre alphabétique. Au début A, à la fin Z.

SELECT id, city_title FROM table_name ORDER BY city_title DESC

On obtient une liste d'enregistrements : villes à l'envers ( DESC) d'accord. Au début moi, à la fin A.

Requête SQL : compter le nombre d'enregistrements

SELECT COUNT(*) FROM nom_table

Nous obtenons le nombre (nombre) d'enregistrements dans le tableau. Dans ce cas, il n’y a AUCUNE liste d’enregistrements.

Requête SQL : sortie de la plage d'enregistrements souhaitée

SELECT * FROM nom_table LIMIT 2, 3

Nous obtenons 2 (deuxième) et 3 (troisième) enregistrements de la table. La requête est utile lors de la création d'une navigation sur des pages WEB.

Requêtes SQL avec conditions

Affichage des enregistrements d'une table en fonction d'une condition donnée à l'aide d'opérateurs logiques.

Requête SQL : construction ET

SELECT id, city_title FROM table_name WHERE country="Russie" ET huile=1

Nous obtenons une liste d'enregistrements : villes de Russie ET avoir accès au pétrole. Quand utiliser l'opérateur ET, alors les deux conditions doivent correspondre.

Requête SQL : construction OU

SELECT id, city_title FROM table_name WHERE country="Russie" OU country="USA"

Nous obtenons une liste de records : toutes les villes de Russie OU ETATS-UNIS. Quand utiliser l'opérateur OU, alors AU MOINS une condition doit correspondre.

Requête SQL : construction ET NON

SELECT id, user_login FROM table_name WHERE country="Russie" ET NON count_comments<7

Nous obtenons une liste d'enregistrements : tous les utilisateurs de Russie ET qui a fait PAS MOINS 7 commentaires.

Requête SQL : construction IN (B)

SELECT id, user_login FROM table_name WHERE country IN ("Russie", "Bulgarie", "Chine")

Nous obtenons une liste d'enregistrements : tous les utilisateurs qui vivent dans ( DANS) (Russie, ou Bulgarie, ou Chine)

Requête SQL : PAS EN construction

SELECT id, user_login FROM table_name WHERE country NOT IN ("Russie", "Chine")

Nous obtenons une liste d'enregistrements : tous les utilisateurs qui n'habitent pas ( PAS DEDANS) (Russie ou Chine).

Requête SQL : construction IS NULL (valeurs vides ou NON vides)

SELECT id, user_login FROM table_name OÙ le statut EST NULL

Nous obtenons une liste d'enregistrements : tous les utilisateurs dont le statut n'est pas défini. NULL est un problème distinct et est donc vérifié séparément.

SELECT id, user_login FROM table_name OÙ l'état N'EST PAS NULL

Nous obtenons une liste d'enregistrements : tous les utilisateurs dont le statut est défini (NON NULL).

Requête SQL : construction LIKE

SELECT id, user_login FROM table_name WHERE nom LIKE "Ivan%"

Nous obtenons une liste d'enregistrements : les utilisateurs dont le nom de famille commence par la combinaison « Ivan ». Le signe % signifie TOUT nombre de TOUT caractères. Pour trouver le signe %, vous devez utiliser l'échappement « Ivan\% ».

Requête SQL : construction ENTRE

SELECT id, user_login FROM table_name OÙ salaire ENTRE 25000 ET 50000

On obtient une liste d'enregistrements : les utilisateurs qui perçoivent un salaire de 25 000 à 50 000 inclus.

Il existe BEAUCOUP d'opérateurs logiques, alors étudiez en détail la documentation du serveur SQL.

Requêtes SQL complexes

Requête SQL : combiner plusieurs requêtes

(ID SÉLECTIONNER, connexion_utilisateur FROM nom_table1) UNION (ID SÉLECTIONNER, connexion_utilisateur FROM nom_table2)

Nous obtenons une liste d'entrées : les utilisateurs enregistrés dans le système, ainsi que les utilisateurs enregistrés séparément sur le forum. L'opérateur UNION peut combiner plusieurs requêtes. UNION agit comme SELECT DISTINCT, c'est-à-dire qu'elle supprime les valeurs en double. Pour obtenir absolument tous les enregistrements, vous devez utiliser l'opérateur UNION ALL.

Requête SQL : comptage des valeurs des champs MAX, MIN, SUM, AVG, COUNT

Affichage d'une valeur de compteur maximale dans le tableau :

SELECT MAX(compteur) FROM nom_table

Sortie d'une valeur de compteur minimale dans le tableau :

SELECT MIN (compteur) FROM nom_table

Affichage de la somme de toutes les valeurs des compteurs dans le tableau :

SELECT SUM(compteur) FROM nom_table

Affichage de la valeur moyenne du compteur dans le tableau :

SELECT AVG(compteur) FROM nom_table

Affichage du nombre de compteurs dans le tableau :

SELECT COUNT(compteur) FROM nom_table

Affichage du nombre de mètres dans l'atelier n°1 dans le tableau :

SELECT COUNT(counter) FROM table_name WHERE office="Atelier n°1"

Ce sont les équipes les plus populaires. Il est recommandé, dans la mesure du possible, d'utiliser des requêtes SQL de ce type pour les calculs, car aucun environnement de programmation ne peut comparer la vitesse de traitement des données à celle du serveur SQL lui-même lors du traitement de ses propres données.

Requête SQL : regroupement d'enregistrements

SELECT continent, SUM(country_area) FROM country GROUP BY continent

On obtient une liste d'enregistrements : avec le nom du continent et la somme des superficies de tous leurs pays. Autrement dit, s'il existe un répertoire de pays dans lequel chaque pays a sa superficie enregistrée, alors en utilisant la construction GROUP BY, vous pouvez connaître la taille de chaque continent (en fonction du regroupement par continents).

Requête SQL : utilisation de plusieurs tables via un alias

SELECT o.order_no, o.amount_paid, c.company FROM commandes AS o, client AS avec O.custno=c.custno ET c.city="Tyumen"

Nous recevons une liste d'enregistrements : commandes de clients qui habitent uniquement à Tioumen.

En fait, avec une base de données de ce type correctement conçue, la requête est la plus fréquente, c'est pourquoi un opérateur spécial a été introduit dans MySQL qui fonctionne plusieurs fois plus rapidement que le code écrit ci-dessus.

SELECT o.order_no, o.amount_paid, z.company FROM commandes AS o LEFT JOIN client AS z ON (z.custno=o.custno)

Sous-requêtes imbriquées

SELECT * FROM nom_table WHERE salaire=(SELECT MAX(salaire) FROM employé)

Nous obtenons un enregistrement : des informations sur l'utilisateur avec le salaire maximum.

Attention! Les sous-requêtes imbriquées sont l'un des plus gros goulots d'étranglement des serveurs SQL. En plus de leur flexibilité et de leur puissance, ils augmentent également considérablement la charge sur le serveur. Ce qui entraîne un ralentissement catastrophique pour les autres utilisateurs. Les cas d'appels récursifs dans des requêtes imbriquées sont très courants. Par conséquent, je recommande fortement de NE PAS utiliser de requêtes imbriquées, mais de les diviser en requêtes plus petites. Ou utilisez la combinaison LEFT JOIN décrite ci-dessus. De plus, ce type de demande est une source accrue de violations de sécurité. Si vous décidez d'utiliser des sous-requêtes imbriquées, vous devez les concevoir très soigneusement et effectuer des exécutions initiales sur des copies de bases de données (bases de données de test).

Requêtes SQL modifiant les données

Requête SQL : INSÉRER

Instructions INSÉRER vous permettent d'insérer des enregistrements dans une table. En termes simples, créez une ligne avec des données dans un tableau.

Option 1. L'instruction souvent utilisée est la suivante :

INSERT INTO table_name (id, user_login) VALEURS (1, "ivanov"), (2, "petrov")

À la table " nom de la table"2 (deux) utilisateurs seront insérés en même temps.

Option 2. Il est plus pratique d'utiliser le style :

INSERT table_name SET id=1, user_login="ivanov"; INSERT table_name SET id=2, user_login="petrov";

Cela a ses avantages et ses inconvénients.

Principaux inconvénients :

  • De nombreuses petites requêtes SQL s'exécuteront un peu plus lentement qu'une grande requête SQL, mais d'autres requêtes seront mises en file d'attente pour le service. Autrement dit, si l'exécution d'une requête SQL volumineuse prend 30 minutes, pendant tout ce temps, les requêtes restantes fumeront du bambou et attendront leur tour.
  • La demande s’avère plus massive que la version précédente.

Principaux avantages:

  • Lors de petites requêtes SQL, les autres requêtes SQL ne sont pas bloquées.
  • Facilité de lecture.
  • La flexibilité. Dans cette option, vous n’êtes pas obligé de suivre la structure, mais d’ajouter uniquement les données nécessaires.
  • Lors de la création d'archives de cette manière, vous pouvez facilement copier une ligne et l'exécuter via la ligne de commande (console), sans restaurer ainsi l'intégralité de l'ARCHIVE.
  • Le style d'écriture est similaire à celui de l'instruction UPDATE, ce qui facilite sa mémorisation.

Requête SQL : MISE À JOUR

UPDATE table_name SET user_login="ivanov", user_surname="Ivanov" WHERE id=1

Dans la table " nom de la table"dans l'enregistrement portant le numéro id=1, les valeurs des champs user_login et user_surname seront remplacées par les valeurs spécifiées.

Requête SQL : SUPPRIMER

DELETE FROM nom_table OÙ id=3

Dans la table nom_table, l'enregistrement portant le numéro d'identification 3 sera supprimé.

  1. Il est recommandé d'écrire tous les noms de champs en minuscules et, si nécessaire, de les séparer par un espace forcé « _ » pour assurer la compatibilité avec différents langages de programmation, tels que Delphi, Perl, Python et Ruby.
  2. Écrivez les commandes SQL en majuscules pour plus de lisibilité. N'oubliez jamais que d'autres personnes peuvent lire le code après vous, et très probablement vous-même après N laps de temps.
  3. Nommez les champs d'abord avec un nom, puis avec une action. Par exemple : city_status, user_login, user_name.
  4. Essayez d'éviter les mots de réserve dans différentes langues qui peuvent causer des problèmes en SQL, PHP ou Perl, tels que (nom, nombre, lien). Par exemple : le lien peut être utilisé dans MS SQL, mais est réservé dans MySQL.

Ce matériel est une courte référence pour le travail quotidien et ne prétend pas être une source super méga faisant autorité, qui est la source originale des requêtes SQL d'une base de données particulière.

Je présente à votre attention une traduction gratuite de l'article SQL pour les débutants

De plus en plus d'applications Web modernes interagissent avec des bases de données, généralement en utilisant le langage SQL. Heureusement pour nous, cette langue est assez facile à apprendre. Dans cet article, nous commencerons à apprendre les bases des requêtes SQL et comment elles interagissent avec une base de données. MySQL.

De quoi as-tu besoin

SQL (Structured Query Language) est un langage conçu pour interagir avec les systèmes de gestion de bases de données relationnelles (SGBD), tels que MySQL, Oracle, SQLite et d'autres. Pour exécuter les requêtes SQL de cet article, je suppose que vous avez MySQL. Je recommande également d'utiliser phpMonAdmin comme outil d'affichage visuel pour MySQL.

Les applications suivantes faciliteront l'installation MySQL Et phpMonAdminà ton ordinateur:

  • WAMP pour Windows
  • MAMP pour Mac

Commençons par exécuter des requêtes sur la ligne de commande. WAMP le contient déjà dans la console MySQL. Pour MAMP, vous devrez peut-être lire ceci.

CRÉER UNE BASE DE DONNÉES : Créer une base de données

Notre toute première demande. Nous allons créer une base de données avec laquelle nous travaillerons.

Tout d'abord, ouvrez la console MySQL et connectez-vous. Pour WAMP Par défaut, un mot de passe vide est utilisé. Pour MAMP Le mot de passe doit être "root".

Après vous être connecté, tapez cette demande et cliquez sur Entrer:

CRÉER UNE BASE DE DONNÉES my_first_db ;

Notez qu'un point-virgule (;) est ajouté à la fin de la requête, tout comme à la fin d'une ligne de code.

Aussi, les mots-clés CRÉER UNE BASE DE DONNÉES ne sont pas sensibles à la casse, comme tous les mots-clés dans SQL. Mais nous les écrirons en majuscules pour améliorer la lisibilité.

Remarque : jeu de caractères et ordre de classement

Si vous souhaitez définir le jeu de caractères et l'ordre de classement par défaut, utilisez une requête comme celle-ci :

CREATE DATABASE my_first_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Vous trouverez une liste des jeux de caractères et des classements pris en charge dans MySQL.

AFFICHER LES BASES DE DONNÉES : Liste de toutes les bases de données

Cette requête est utilisée pour afficher toutes les bases de données.

DROP DATABASE : Supprimer une base de données

Avec cette requête, vous pouvez supprimer une base de données existante.

Soyez prudent avec cette requête car elle ne génère aucun avertissement. Si vous avez des tables et des données dans la base de données, la requête les supprimera toutes en un instant.

D'un point de vue technique, il ne s'agit pas d'une demande. Il s'agit d'un "opérateur" et ne nécessite pas de point-virgule à la fin.

Il rapporte MySQL que vous devez sélectionner la base de données par défaut et travailler avec elle jusqu'à la fin de la session. Nous sommes maintenant prêts à créer les tables et tout le reste dans cette base de données.

Qu'est-ce qu'une table de base de données ?

Vous pouvez considérer une table dans une base de données comme une table ordinaire ou comme un fichier CSV contenant des données structurées.

Comme dans cet exemple, le tableau comporte des noms de lignes et des colonnes de données. À l'aide de requêtes SQL, nous pouvons créer cette table. Nous pouvons également ajouter, lire, modifier et supprimer des données.

CRÉER UNE TABLE : Créer une table

Avec cette requête, nous pouvons créer une table dans la base de données. Malheureusement, la documentation pour MySQL pas très convivial pour les nouveaux utilisateurs. La structure de cette requête peut être très complexe, mais nous allons commencer simplement.

La requête suivante crée une table avec deux colonnes.

Utilisateurs CREATE TABLE (nom d'utilisateur VARCHAR(20), create_date DATE) ;

Notez que nous pouvons écrire la requête sur plusieurs lignes et utiliser Languette pour l'indentation.

La première ligne est simple. Nous créons une table nommée utilisateurs. Ensuite, les colonnes du tableau sont répertoriées entre parenthèses, séparées par des virgules. Chaque nom de colonne est suivi d'un type de données, par ex. VARCHAR ou DATE.

VARCHAR(20) signifie que la colonne est de type chaîne et ne peut pas contenir plus de 20 caractères. DATE- type de données destiné au stockage des dates au format : "AAAA-MM-JJ".

Clé primaire

Avant d'exécuter cette requête, nous devons insérer une colonne ID de l'utilisateur, qui sera la clé primaire (PRIMARY KEY). Sans entrer dans trop de détails, vous pouvez considérer une clé primaire comme un moyen d'identifier chaque ligne de données dans un tableau.

La requête devient comme ceci :

Utilisateurs CREATE TABLE (user_id INT AUTO_INCREMENT PRIMARY KEY, nom d'utilisateur VARCHAR(20), create_date DATE) ;

INT- Type entier 32 bits (numérique). INCRÉMENTATION AUTOMATIQUE crée automatiquement un nouveau numéro d'identification chaque fois qu'une ligne de données est ajoutée. Ce n’est pas nécessaire, mais c’est plus pratique.

Cette colonne peut ne pas être un nombre entier, bien qu'il s'agisse du type de données le plus courant. Une colonne de clé primaire est facultative, mais elle est recommandée pour améliorer les performances et l'architecture de la base de données.

Lançons la requête :

AFFICHER LES TABLES : répertorier toutes les tables

La requête vous permet d'obtenir une liste de toutes les tables de la base de données actuelle.

EXPLIQUER : Afficher la structure du tableau

Utilisez cette requête pour afficher la structure d'une table existante.

Le résultat montre les champs (colonnes) et leurs propriétés.

DROP TABLE : Supprimer une table

Comme SUPPRIMER LES BASES DE DONNÉES, cette requête supprime la table et son contenu sans aucun avertissement.

ALTER TABLE : Changer de table

Une telle requête peut avoir une structure complexe car elle peut apporter plusieurs modifications à la table. Regardons des exemples simples.

Grâce à la lisibilité SQL, cette requête ne nécessite aucune explication.

Le retrait est tout aussi simple. Utilisez la requête avec prudence ; les données sont supprimées sans avertissement.

Rajoutons le champ e-mail, Vous en aurez besoin plus tard:

ALTER TABLE utilisateurs ADD email VARCHAR(100) AFTER nom d'utilisateur ;

Parfois, vous devrez peut-être modifier les propriétés d'une colonne ; pour ce faire, vous n'avez pas besoin de la supprimer et de la recréer.

Cette requête renomme le champ nom d'utilisateur V nom d'utilisateur et change de type de VARCHAR(20) sur VARCHAR(30). De tels changements n'affectent pas les données du tableau.

INSERT : Ajout de données à la table

Ajoutons des enregistrements à la table à l'aide de requêtes.

Comme vous pouvez le voir, VALEURS() contient une liste de valeurs séparées par des virgules. Les valeurs de chaîne sont placées entre guillemets simples. Les valeurs doivent suivre l'ordre spécifié lors de la création du tableau.

Notez que la première valeur est NUL pour la clé primaire dont nous avons nommé le champ ID de l'utilisateur. Tout cela parce que le champ est marqué comme INCRÉMENTATION AUTOMATIQUE et l'identifiant est généré automatiquement. La première ligne de données aura un identifiant de 1. La prochaine ligne ajoutée sera 2, etc.

Syntaxe alternative

Voici une autre syntaxe pour insérer des lignes.

Cette fois, nous avons utilisé le mot-clé ENSEMBLE au lieu de VALEURS. Notons quelques choses :

  • La colonne peut être omise. Par exemple, nous n'avons pas attribué de valeur au champ ID de l'utilisateur, car il est marqué comme INCRÉMENTATION AUTOMATIQUE. Si vous n'attribuez pas de valeur à un champ de type VARCHAR, alors par défaut il prendra la valeur d'une chaîne vide (si une autre valeur par défaut n'a pas été spécifiée lors de la création de la table).
  • Chaque colonne est accessible par son nom. Les champs peuvent donc être dans n’importe quel ordre, contrairement à la syntaxe précédente.

Syntaxe alternative numéro 2

Voici un autre exemple.

Comme auparavant, les champs sont accessibles par nom et peuvent être dans n'importe quel ordre.

Utilisez cette requête pour obtenir l'identifiant de la dernière ligne insérée.

MAINTENANT()

Il est temps de vous montrer comment utiliser les fonctions MySQL dans les demandes.

Fonction MAINTENANT() renvoie la date actuelle. Utilisez-le pour ajouter automatiquement la date actuelle à un champ de type DATE.

Veuillez noter que nous avons reçu un avertissement de MySQL, mais ce n'est pas si important. La raison est que la fonction MAINTENANT() renvoie en fait des informations temporelles.

Nous avons créé un champ créer un rendez-vous, qui ne peut contenir qu'une date mais pas une heure, les données ont donc été tronquées. Au lieu de MAINTENANT() nous pourrions utiliser CURDATE(), qui renvoie uniquement la date actuelle, mais finalement le résultat serait le même.

SELECT : Récupération de données d'une table

Évidemment, les données que nous avons écrites sont inutiles tant que nous ne pouvons pas les lire. Une demande vient à la rescousse SÉLECTIONNER.

L'exemple le plus simple d'utilisation d'une requête SÉLECTIONNER pour lire les données d'une table :

L'astérisque (*) signifie que nous voulons récupérer toutes les colonnes du tableau. Si vous n'avez besoin que de certaines colonnes, utilisez quelque chose comme ceci :

Le plus souvent, nous souhaitons récupérer uniquement certaines lignes, pas toutes. Par exemple, obtenons l'adresse e-mail de l'utilisateur nettuts.

C'est similaire à la condition IF. WHERE vous permet de définir une condition dans une requête et d'obtenir le résultat souhaité.

La condition d'égalité utilise un signe simple (=) plutôt que le signe double (==) que vous pourriez utiliser en programmation.

Vous pouvez également utiliser d'autres conditions :

ET Et OU sont utilisés pour combiner des conditions :

Veuillez noter que les valeurs numériques n'ont pas besoin d'être placées entre guillemets.

DANS()

Utilisé pour la comparaison avec plusieurs valeurs.

COMME

Vous permet de spécifier un modèle de recherche.

Le signe de pourcentage (%) est utilisé pour spécifier un modèle.

Clause ORDER BY

Utilisez cette condition si vous souhaitez que le résultat soit renvoyé trié :

L'ordre par défaut est A.S.C.(Ascendant). Ajouter DESC pour trier dans l'ordre inverse.

LIMITE... DÉCALAGE...

Vous pouvez limiter le nombre de lignes renvoyées.

LIMITE 2 prend les deux premières lignes. LIMITE 1 DÉCALAGE 2 prend une ligne après les deux premières. LIMITE 2, 1 signifie la même chose, seul le premier nombre est le décalage et le second limite le nombre de lignes.

UPDATE : Mise à jour des données dans une table

Cette requête est utilisée pour mettre à jour les données d'une table.

Dans la plupart des cas utilisé avec , afin de mettre à jour des lignes spécifiques. Si l'état n'est pas spécifié, les modifications seront appliquées à toutes les lignes.

Pour limiter les lignes pouvant être modifiées, vous pouvez utiliser LIMITE.

DELETE : supprimer des données d'une table

Comme , cette requête est souvent utilisée conjointement avec la condition .

TABLE TRONQUÉE

Pour supprimer le contenu d'une table, utilisez cette requête :

SUPPRIMER DES utilisateurs ;

Pour améliorer les performances, utilisez .

Le compteur de champs sera également réinitialisé. INCRÉMENTATION AUTOMATIQUE, donc les lignes nouvellement ajoutées auront un identifiant égal à 1. Lors de l'utilisation cela n’arrivera pas et le compteur continuera de croître.

Échapper aux valeurs de chaîne et aux mots spéciaux

Valeurs de chaîne

Certains caractères doivent être échappés, sinon des problèmes pourraient survenir.

La barre oblique inverse (\) est utilisée pour s'échapper.

Ceci est très important pour des raisons de sécurité. Toutes les données utilisateur doivent être échappées avant d'être écrites dans la base de données. DANS PHP utilisez la fonction mysql_real_escape_string() ou des requêtes préparées.

Mots spéciaux

Depuis dans MySQL de nombreux mots réservés tels que SÉLECTIONNER ou Pour éviter les conflits, placez les noms de colonnes et de tables entre guillemets. De plus, vous devez utiliser des backticks (`) plutôt que des guillemets ordinaires.

Disons que, pour une raison quelconque, vous souhaitez ajouter une colonne nommée :

Conclusion

Merci d'avoir lu l'article. J'espère avoir pu vous montrer cette langue SQL très fonctionnel et facile à apprendre.

Requêtes - requêtes structurées vers la base de données. Pourquoi exactement cours de programmation? Malgré le fait que de nombreux « experts littéraires » diront que SQL ne l'est pas, mais langage de requête, je crois que les cours sur son étude peuvent et doivent être classés comme cours de programmation. Premièrement, ne les appelez pas cours de rédaction de demandes, car cela pourrait les confondre avec des cours destinés aux fonctionnaires ou procureurs novices. Deuxièmement, le travail avec des bases de données est si étroitement lié au fait que le manque de compétences SQL réduit considérablement le champ d'action d'un programmeur particulier. Et troisièmement, les requêtes structurées (pas nécessairement adressées aux bases de données) ne sont plus à l'approche des frontières des langages de programmation - elles les ont déjà franchies, et la technologie peut en servir d'exemple.

Tous les exemples sont construits autour de requêtes sur trois tables,


contenant les informations suivantes :

  • D_PERSONNEL- liste des salariés de l'entreprise ;

    • S_NAME – nom complet
    • S_POSITION – position (répertoire) ;
    • S_EXPERIENCE – expérience professionnelle (nombre entier d’années);
    • S_CHIEF_ID – cadre supérieur de l'entreprise (relation « patron » - « subordonné ») ;
    • S_COMMENTS – remarque.


  • D_PROFIE- une liste de profils d'utilisateurs qui, selon la légende, sont déployés sur le territoire de l'entreprise en question et permettent d'automatiser certains de ses processus métiers. Ce système pourrait être soit un développement national de « 1C – Enterprise », soit un système basé sur le progiciel SAP R/3, qui est le représentant le plus éminent de cette classe de logiciels à l'étranger ;

    • XD_IID – Identificateur d'enregistrement unique ;
    • P_NAME – nom du profil (rôle) ;
    • P_COMMENTS – remarque.


  • D_STAFF_PROFILE– un tableau reliant les employés de l'entreprise (D_STAFF) aux profils utilisateurs du système (D_PROFILE). Chaque entrée de ce tableau est une relation qui détermine la capacité du salarié à se connecter avec tous les droits et autorisations du profil sélectionné pour lui. Chaque employé peut avoir plusieurs profils autorisés, et tout profil peut être associé à plusieurs employés différents. Ainsi, la table D_STAFF_PROFILE définit une relation plusieurs-à-plusieurs.

Bref aperçu de la syntaxe des requêtes SQL en question

Mise à jour des données ou commande UPDATE

Le but de la commande UPDATE est de mettre à jour les enregistrements existants dans la table spécifiée. Nous indiquons où et ce que nous voulons modifier, et après le mot-clé WHERE, nous définissons les critères de sélection des enregistrements mis à jour. Dans une commande de mise à jour de données, comme dans d'autres requêtes SQL, vous pouvez utiliser des sous-requêtes : par exemple, vous pouvez définir le résultat d'une sous-requête qui renvoie une seule colonne et une seule ligne comme valeur affectée à un champ.

UPDATE SET ( = ) ou UPDATE SET ( = (SELECT FROM WHERE))

Ajout de données ou commande INSERT

Ajout de nouveaux enregistrements à la table spécifiée. Rien de compliqué ici non plus. On précise le tableau, la liste des champs et la liste des valeurs ajoutées à ces champs. Il est également facile de deviner ce que l'utilisation d'une sous-requête SQL peut apporter : copier le tableau de données sélectionné à l'aide de SELECT dans la table spécifiée (dans les champs répertoriés séparés par des virgules). Bien entendu, le nombre et le type de colonnes de la requête SELECT doivent correspondre au nombre et au type de champs de la table dans laquelle l'insertion est effectuée.

INSERT INTO [()] VALUES () ou INSERT INTO [()] (SELECT FROM WHERE)

Suppression de données ou commande DELETE

Suppression de lignes d'une table ou de plusieurs tables à la fois, dont les lignes sont combinées par conditions. Tout ici est également évident. Nous indiquons de quelle table nous supprimons les données, et dans la partie WHERE nous sélectionnons les données à supprimer. La deuxième version de la requête SQL utilisant l'instruction DELETE montre la syntaxe générale pour supprimer des enregistrements de plusieurs tables à la fois. Dans les conditions de sélection (dans la partie WHERE), vous pouvez également utiliser des sous-requêtes.

SUPPRIMER DE ou SUPPRIMER DE

Si tout est plus ou moins clair, alors nous faisons connaissance avec ou et commençons le processus d'apprentissage lui-même.

    Exécuter des requêtes SQL simples à l'aide de la commande SELECT. Définir des critères simples et composés pour sélectionner des enregistrements à l'aide de la clause WHERE. Utilisation des opérateurs BETWEEN et LIKE. Création d'une requête hiérarchique à l'aide d'alias de table et de champ.

Une sélection de livres, de cours vidéo et de ressources en ligne pour étudier les bases de données, les fondamentaux de la théorie relationnelle et le langage SQL.

Livres

Alan Bewley "Apprentissage de SQL" (2007)

Ce livre est un excellent choix pour ceux qui sont au début du chemin épineux de l'apprentissage de SQL. Il vous permettra non seulement d'acquérir la base de connaissances initiales nécessaire, mais vous informera également des subtilités les plus appréciées et des outils linguistiques puissants utilisés par les programmeurs expérimentés.
De nombreux manuels sur les bases de données, la théorie relationnelle et SQL sont remplis de concepts théoriques ennuyeux. Ce livre constitue une agréable exception par son style léger et vivant. L'auteur présente habilement au lecteur des informations sur les expressions et blocs SQL, les types de conditions, les jointures, les sous-requêtes et bien plus encore.
Pour consolider les connaissances acquises dans la pratique, l'auteur crée une base de formation MySQL et fournit de nombreux exemples pratiques de requêtes couvrant l'ensemble du matériel théorique présenté.

Chris Fiaily "SQL" (2013)


Le livre traite de la version du langage ANSI SQL-92 (SQL2). Il décrit en détail comment utiliser le langage de requête pour résoudre les classes correspondantes de problèmes de récupération et de modification de données et d'utilisation des objets de la structure de la base de données. Tous les exemples sont expliqués en détail.
Une attention particulière dans cette publication est accordée aux différences entre les dialectes SQL dans la mise en œuvre des SGBD les plus courants : MySQL, Oracle, MS SQL Server et PostgreSQL.
Le livre s'adresse à toute personne souhaitant apprendre de manière autonome le langage SQL ou améliorer ses connaissances sur ce sujet.

Anthony Molinaro "SQL. Recueil de recettes" (2009)


Cette publication est destinée à ceux qui ont déjà quelques connaissances en SQL et souhaitent améliorer leurs compétences dans ce domaine. Il sera également très utile aux experts en bases de données, puisque l'auteur propose des exemples de résolution de problèmes dans différents SGBD : DB2, Oracle, PostgreSQL, MySQL et SQL Server.
Le livre vous aidera à apprendre à utiliser SQL pour résoudre un plus large éventail de problèmes : des opérations au sein d'une base de données à la récupération de données et à leur transmission sur le réseau vers des applications.
Vous apprendrez à utiliser les fonctions de fenêtre et les opérateurs spéciaux, ainsi que des techniques avancées pour travailler avec des entrepôts de données : créer des histogrammes, résumer les données en blocs, effectuer des agrégations à plage mobile, générer des sommes cumulées et des sous-totaux. Vous pourrez développer des lignes en colonnes et vice versa, simplifier les calculs au sein d'une ligne, déplier deux fois le jeu de résultats et effectuer un parcours de chaîne, ce qui vous permet d'utiliser SQL pour analyser une chaîne en caractères, mots ou chaîne délimitée. éléments. Les techniques proposées par l'auteur vous permettront d'optimiser le code de vos applications et de vous ouvrir de nouvelles possibilités dans le langage SQL.

Alex Kriegel et autres « SQL. Bible de l'utilisateur, 2e édition (2010)


Le livre est unique dans la mesure où chaque chapitre compare les implémentations de certaines requêtes dans les dialectes des trois principaux SGBD. Cela en fait un guide complet et pratique du langage SQL pour les développeurs, des débutants aux gourous, une sorte de guide de bureau.
La publication couvre des sujets allant des bases aux transactions et verrous, en passant par les fonctions et la sécurité des bases de données.
Plusieurs sujets supplémentaires sont présentés à la fin : l'intégration de SQL vers XML, la business intelligence OLAP, et bien plus encore.

Eric Redmond, Jim R. Wilson « Sept bases de données en sept semaines ». Introduction aux bases de données modernes et à l'idéologie NoSQL" (2015)

Le livre couvre la plupart des bases de données open source modernes : Redis, Neo4J, CouchDB, MongoDB, HBase, PostgreSQL et Riak. Pour chaque base, des exemples de travail avec des données réelles sont fournis, démontrant les principales idées et points forts.
Ce livre mettra en lumière les forces et les faiblesses de chacune des sept bases de données et vous apprendra à choisir celle qui répond le mieux à vos besoins.