Comment écrire des requêtes SQL - exemples détaillés. SQL - qu'est-ce que c'est, à quoi sert le langage et fonctions de base pour les débutants

Majorité Internet moderne les applications interagissent avec les bases de données, généralement en utilisant un langage appelé SQL. Heureusement pour nous, cette langue est très facile à apprendre. Dans cet article, nous examinerons des choses simples SQL requêtes et apprenez à les utiliser pour interagir avec Base de données MySQL.

De quoi aurez-vous besoin ?

SQL (langage de requête structuré) un langage spécialement conçu pour s'interfacer avec les systèmes de gestion de bases de données tels que MySQL, Oracle, SQLite et autres... Pour compléter SQL demandes dans cet article, je vous conseille d'installer MySQL sur ordinateur local. Je recommande également d'utiliser phpMonAdmin comme interface visuelle.

Tout cela est disponible dans le Denver préféré de tous. Je pense que tout le monde devrait savoir ce que c'est et où l'obtenir :). Peut utilisez également WAMP ou MAMP.

Denver a un intégré MySQL console. C'est ce que nous utiliserons.

CRÉER UNE BASE DE DONNÉES :création de base de données

Voici notre première demande. Nous allons créer notre première base de données pour des travaux ultérieurs.

Pour commencer, ouvrez MySQL console et connectez-vous. Pour WAMP Le mot de passe par défaut est vide. Ce n'est rien :). Pour MAMP - "racine". Pour Denver, il faut clarifier.

Après vous être connecté, entrez la ligne suivante 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, comme dans les autres langages.

Également des commandes en SQL sensible aux majuscules et minuscules. Nous les écrivons en majuscules.

Possibilités officiellement: Jeu de caractèresEt Collation

Si vous souhaitez installer le jeu de caractères (jeu de caractères) et le classement (comparaison) peuvent être écrivez la commande suivante :

CREATE DATABASE my_first_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Recherche une liste des jeux de caractères pris en charge dans MySQL.

AFFICHER LES BASES DE DONNÉES :affiche une liste de toutes les bases de données

Cette commande est utilisée pour lister toutes les bases de données disponibles.

SUPPRIMER LA BASE DE DONNÉES :supprimer une base de données

Vous pouvez supprimer une base de données existante à l'aide de cette requête.

Soyez prudent avec cette commande car elle s'exécute sans avertissement. S'il y a des données dans votre base de données, elles seront toutes supprimées.

UTILISER:Sélection de base de données

Techniquement, ce n'est pas une requête, mais une instruction et ne nécessite pas de point-virgule à la fin.

Il indique à MySQL sélectionnez la base de données par défaut pour la session en cours. Nous sommes maintenant prêts à créer des tables et à effectuer d'autres tâches avec la base de données.

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

Vous pouvez représenter la table dans la base de données comme Fichier Excel.

Tout comme sur l'image, les tableaux ont des noms de colonnes, des lignes et des informations. En utilisant SQL requêtes, nous pouvons créer de telles tables. Nous pouvons également ajouter, lire, mettre à jour et supprimer des informations.

CRÉER UN TABLEAU : Création d'un tableau

C En utilisant cette requête, nous pouvons créer des tables dans la base de données. Malheureusement, la documentation MySQL pas très clair pour les débutants sur cette question. La structure de ce type de requête peut être très complexe, mais nous allons commencer par quelque chose de simple.

La requête suivante créera une table avec 2 colonnes.

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

Veuillez noter que nous pouvons écrire nos requêtes sur plusieurs lignes et avec des onglets pour l'indentation.

La première ligne est simple. Nous créons simplement une table appelée "utilisateurs". Ensuite, entre parenthèses, séparées par des virgules, se trouve une liste de toutes les colonnes. Après chaque nom de colonne, nous avons des types d'informations, tels que VARCHAR ou DATE.

VARCHAR(20) signifie que la colonne est de type chaîne et peut comporter un maximum de 20 caractères. DATE est également un type d'information utilisé pour stocker les dates au format suivant : "AAAA - MM-JJ".

CLÉ PRIMAIRE ( clé primaireh)

Avant d'exécuter la requête suivante, nous devons également inclure une colonne pour "user_id", qui sera notre clé primaire. Vous pouvez considérer PRIMARY KEY comme des informations utilisées pour identifier chaque ligne d’un tableau.

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

INT ça fait 32 bits type entier(par exemple, des chiffres). INCRÉMENTATION AUTOMATIQUE génère automatiquement une nouvelle valeur IDENTIFIANT chaque fois que nous ajoutons une nouvelle série d’informations. Ce n’est pas nécessaire, mais cela facilite l’ensemble du processus.

Il n'est pas nécessaire que cette colonne soit une valeur entière, mais elle est le plus souvent utilisée. Disponibilité Clé primaireégalement facultatif, mais recommandé pour l'architecture et les performances de la base de données.

Lançons la requête :

AFFICHER LES TABLEAUX :afficher tous les tableaux

Cette requête vous permet d'obtenir une liste des tables présentes dans la base de données.

EXPLIQUER:Afficher la structure du tableau

Pour afficher la structure d'une table existante, vous pouvez utiliser cette requête.

Les colonnes sont affichées avec toutes les propriétés.

TABLEAU DE DÉPÔT :supprimer le tableau

Identique à DROP DATABASES, cette requête supprime la table et son contenu sans avertissement.

MODIFIER TABLE: changer de table

Cette requête peut également contenir une structure complexe en raison de plus changements qu'il peut apporter à la table. Regardons des exemples.

(si vous avez supprimé la table à l'étape précédente, créez-la à nouveau pour les tests)

AJOUTER UNE COLONNE

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

En raison de la bonne lisibilité de SQL, je pense qu'il ne sert à rien de l'expliquer en détail. Nous ajoutons une nouvelle colonne « email » après « nom d'utilisateur ».

SUPPRIMER UNE COLONNE

C'était aussi très facile. Utilisez cette demande avec prudence car vos données peuvent être supprimées sans avertissement.

Restaurez la colonne que vous venez de supprimer pour d'autres expériences.

FAIRE DES MODIFICATIONS DANS UNE COLONNE

Parfois, vous souhaiterez peut-être apporter des modifications aux propriétés d'une colonne et vous n'avez pas besoin de la supprimer complètement pour ce faire.

Cette requête a renommé la colonne utilisateur en « nom_utilisateur » et a modifié son type de VARCHAR(20) en VARCHAR(30). Ce changement ne devrait pas modifier les données du tableau.

INSÉRER: Ajouter des informations à un tableau

Ajoutons quelques informations au tableau à l'aide de la requête suivante.

Comme vous pouvez le voir, VALUES() contient une liste de valeurs séparées par des virgules. Toutes les valeurs sont placées dans des colonnes uniques. Et les valeurs doivent être dans l'ordre des colonnes définies lors de la création du tableau.

Notez que la première valeur est NULL pour le champ PRIMARY KEY appelé « user_id ». Nous faisons cela pour que l'ID soit généré automatiquement, puisque la colonne a la propriété AUTO_INCREMENT. Lorsque des informations sont ajoutées pour la première fois, l'ID sera 1. La ligne suivante sera 2, et ainsi de suite...

OPTION ALTERNATIVE

Il existe une autre option de requête pour ajouter des lignes.

Cette fois, nous utilisons mot-clé SET au lieu de VALUES, et il n'a pas de parenthèses. Il y a plusieurs nuances :

Vous pouvez sauter la colonne. Par exemple, nous n'avons pas attribué de valeur à "user_id", qui serait par défaut sa valeur AUTO_INCREMENT. Si vous omettez une colonne de type VARCHAR, une ligne vide sera ajoutée.

Chaque colonne doit être référencée par son nom. De ce fait, ils peuvent être mentionnés dans n’importe quel ordre, contrairement à la version précédente.

OPTION ALTERNATIVE 2

Voici une autre option.

Encore une fois, puisqu'il existe des références au nom de la colonne, vous pouvez définir les valeurs dans n'importe quel ordre.

LAST_INSERT_ID()

Vous pouvez utiliser cette requête pour obtenir l'ID AUTO_INCREMENT pour la dernière ligne de la session en cours.

MAINTENANT()

Il est maintenant temps de montrer comment utiliser la fonction MySQL dans les requêtes.

La fonction MAINTENANT() génère date actuelle. Vous pouvez donc l'utiliser pour définir automatiquement la date d'une colonne sur la date actuelle lorsque vous insérez une nouvelle ligne.

Veuillez noter que nous avons reçu 1 avertissement, mais veuillez l'ignorer. La raison en est que NOW() sert également à générer des informations temporaires.

SÉLECTIONNER: Lire les données d'une table

Si nous ajoutons des informations à un tableau, il serait alors logique d’apprendre à les lire à partir de là. C'est là que la requête SELECT nous aidera.

Vous trouverez ci-dessous la requête SELECT la plus simple possible pour lire une table.

Dans ce cas, l'astérisque (*) signifie que nous avons demandé tous les champs du tableau. Si vous souhaitez uniquement certaines colonnes, la requête ressemblera à ceci.

Condition

Le plus souvent, nous ne nous intéressons pas à toutes les colonnes, mais seulement à certaines. Par exemple, supposons que nous ayons seulement besoin adresse e-mail pour l'utilisateur "nettuts".

WHERE vous permet de définir des conditions dans une requête et d'effectuer des sélections détaillées.

Notez que pour l'égalité, un signe égal (=) est utilisé, et non deux, comme en programmation.

Vous pouvez également utiliser des comparaisons.

AND ou OR peuvent être utilisés pour combiner des conditions :

Notez que les valeurs numériques ne doivent pas être entre guillemets.

DANS()

Ceci est utile pour échantillonner sur plusieurs valeurs

COMME

Vous permet de faire des requêtes "wildcard"

L'icône % est utilisée comme "caractère générique". Autrement dit, n'importe quoi pourrait être à sa place.

ConditionCOMMANDÉ PAR

Si vous souhaitez obtenir le résultat sous une forme ordonnée selon n'importe quel critère

L'ordre par défaut est ASC (du plus petit au plus grand). Pour le contraire, DESC est utilisé.

LIMITE... DÉCALAGE...

Vous pouvez limiter le nombre de résultats renvoyés.

LIMIT 2 ne prend que les 2 premiers résultats. LIMITE 1 OFFSET 2 obtient 1 résultat après les 2 premiers. LIMIT 2, 1 signifie la même chose (notez simplement que offset vient en premier, puis limit ).

MISE À JOUR: Apporter des modifications aux informations du tableau

Cette requête est utilisée pour modifier les informations dans une table.

Dans la plupart des cas, il est utilisé conjointement avec une clause WHERE, car vous souhaiterez probablement apporter des modifications à certaines colonnes. S'il n'y a pas de clause WHERE, les modifications affecteront toutes les lignes.

Vous pouvez également utiliser LIMIT pour limiter le nombre de lignes auxquelles des modifications doivent être apportées.

SUPPRIMER: Supprimer des informations d'un tableau

Tout comme UPDATE, cette requête est utilisée avec WHERE :

Pour supprimer le contenu d'un tableau, vous pouvez simplement faire ceci :

SUPPRIMER DES utilisateurs ;

Mais il vaut mieux utiliser TRONQUER

En plus de la suppression, cette requête réinitialise également les valeurs INCRÉMENTATION AUTOMATIQUE et lors de l'ajout de lignes à nouveau, le compte à rebours commencera à zéro. SUPPRIMER ne le fait pas et le compte à rebours continue.

Désactivation des valeurs minuscules et des mots spéciaux

Valeurs de chaîne

Certains caractères doivent être désactivés ( s'échapper ), ou il peut y avoir des problèmes.

Une barre oblique inverse est utilisée pour cela.(\).

Mots spéciaux

Parce que dans MySQL il y a beaucoup de mots spéciaux ( SÉLECTIONNER ou METTRE À JOUR ), pour éviter les erreurs lors de leur utilisation, vous devez utiliser des guillemets. Mais pas des citations ordinaires, mais comme ça(`).

Autrement dit, vous devrez ajouter une colonne nommée " supprimer ", vous devez procéder ainsi :

Conclusion

Merci d'avoir lu jusqu'au bout. J'espère que vous avez trouvé cet article utile. Ce n'est pas encore fini! À suivre:).

Aujourd'hui, les cours SQL « pour les nuls » sont de plus en plus populaires. Cela peut s'expliquer très simplement, car dans monde moderne On trouve de plus en plus souvent des services web dits « dynamiques ». Ils se distinguent par une coque assez souple et s'appuient sur Tous les programmeurs débutants qui décident de leur consacrer des sites Web, s'inscrivent tout d'abord à des cours SQL « pour les nuls ».

Pourquoi apprendre cette langue ?

Tout d'abord, SQL est enseigné afin de créer davantage une grande variété d'applications pour l'un des moteurs de blog les plus populaires aujourd'hui : WordPress. Après avoir passé plusieurs leçons simples vous pouvez déjà créer des requêtes de toute complexité, ce qui ne fait que confirmer la simplicité de ce langage.

Qu’est-ce que SQL ?

Un langage de requête structuré a été créé dans un seul but : les déterminer, y donner accès et les traiter dans des délais assez courts. Si vous connaissez la signification de SQL, alors vous comprendrez que ce serveur est classé dans la catégorie des langages dits « non procéduraux ». Autrement dit, ses capacités incluent uniquement une description des composants ou des résultats que vous souhaitez voir à l'avenir sur le site. Mais quand n’indique pas exactement quels résultats vont être obtenus. Chaque nouvelle requête dans cette langue, c'est comme une « superstructure » supplémentaire. C'est dans l'ordre de leur saisie dans la base de données que les requêtes seront exécutées.

Quelles procédures peuvent être effectuées en utilisant ce langage ?

Malgré sa simplicité, la base Données SQL vous permet de créer une grande variété de requêtes. Alors, que pouvez-vous faire si vous apprenez cet important langage de programmation ?

  • créer une grande variété de tables ;
  • recevoir, stocker et modifier les données reçues ;
  • modifier les structures des tables à votre discrétion ;
  • combiner les informations reçues en blocs uniques ;
  • calculer les données reçues ;
  • assurer une protection complète des informations.

Quelles commandes sont les plus populaires dans ce langage ?

Si vous décidez de suivre des cours SQL pour les nuls, vous recevrez des informations détaillées sur les commandes utilisées pour créer des requêtes en l'utilisant. Les plus courants aujourd'hui sont :

  1. DDL est une commande qui définit les données. Il est utilisé pour créer, modifier et supprimer une grande variété d'objets dans la base de données.
  2. DCL est une commande qui manipule les données. Il est utilisé pour permettre à différents utilisateurs d'accéder aux informations de la base de données, ainsi que pour utiliser des tables ou des vues.
  3. TCL est une équipe qui gère une variété de transactions. Son objectif principal est de déterminer l’avancement d’une transaction.
  4. DML - manipule les données reçues. Son but est de permettre à l'utilisateur de se déplacer diverses informations de la base de données ou entrez-le ici.

Types de privilèges qui existent sur ce serveur

Les privilèges font référence aux actions qu'un utilisateur particulier peut effectuer en fonction de son statut. Le plus minimal, bien sûr, est une connexion régulière. Bien entendu, les privilèges peuvent évoluer avec le temps. Les anciens seront supprimés et de nouveaux seront ajoutés. A ce jour, tous ceux qui suivent des cours serveur SQL"pour les nuls" sachez qu'il existe plusieurs types d'actions autorisées :

  1. Type d'objet - l'utilisateur est autorisé à exécuter n'importe quelle commande uniquement en relation avec un objet spécifique situé dans la base de données. Dans le même temps, les privilèges diffèrent selon les objets. Ils sont également liés non seulement à un utilisateur particulier, mais également à des tables. Si quelqu'un, utilisant ses capacités, a créé une table, il est alors considéré comme son propriétaire. Par conséquent, il a le droit d'attribuer de nouveaux privilèges à d'autres utilisateurs liés aux informations qu'il contient.
  2. Le type de système est ce qu'on appelle le droit d'auteur sur les données. Les utilisateurs qui ont reçu de tels privilèges peuvent créer divers objets dans la base de données.

Histoire de SQL

Ce langage a été créé par IBM Research Laboratory en 1970. A cette époque, son nom était légèrement différent (SEQUEL), mais après quelques années d'utilisation il a été modifié, le raccourcissant un peu. Malgré cela, même aujourd’hui, de nombreux experts en programmation de renommée mondiale prononcent encore ce nom à l’ancienne. SQL a été créé dans un seul but : inventer un langage qui serait si simple qu'il pourrait être utilisé sans problèmes particuliers même apprendre utilisateurs ordinaires L'Internet. Un fait intéressant est qu’à cette époque, SQL n’était pas le seul langage de ce type. En Californie, un autre groupe de spécialistes a développé un Ingres similaire, mais il ne s'est jamais répandu. Avant 1980, il existait plusieurs variantes de SQL qui n'étaient que légèrement différentes les unes des autres. Pour éviter toute confusion, une version standard a été créée en 1983, qui est toujours populaire aujourd'hui. Cours SQL« pour les nuls » permettent d'en apprendre beaucoup plus sur le service et de l'explorer pleinement en quelques semaines.

De l'auteur : Vous ont-ils traité de théière ? Eh bien, cela peut être corrigé ! Chaque samovar était autrefois une théière ! Ou est-ce que chaque professionnel était autrefois un samovar ? Non, quelque chose ne va pas encore ! En général, MySQL est destiné aux débutants.

Pourquoi les nuls ont-ils besoin de MySQL ?

Si vous envisagez sérieusement de connecter votre vie à Internet, dès les premiers pas dans le « Web », vous rencontrerez ce SGBD. MySQL peut facilement être qualifié de système de gestion de bases de données « tout Internet ». Pas une seule ressource plus ou moins sérieuse ne peut s'en passer, elle est présente dans le panneau d'administration de chaque hébergement. Et surtout, les CMS populaires et même les moteurs « faits maison » sont construits avec sa participation.

En général, vous ne pouvez pas vous passer de cette plateforme. Mais pour l'étudier, vous aurez également besoin la bonne approche, les bons outils, et surtout l'envie et la patience. J'espère que vous avez assez des derniers ingrédients. Et préparez-vous à ce que votre cerveau bouillonne et que de la vapeur s'échappe de votre tête, comme d'une vraie bouilloire.

Mais MySQL n'est si difficile pour les nuls que si vous commencez à l'apprendre de manière incorrecte. Vous et moi ne ferons pas une telle erreur et nous commencerons notre connaissance de cette technologie dès le début.

Concepts de base

Tout d’abord, revenons sur les concepts de base que nous évoquerons dans cette publication :

La base de données (DB) est l’unité principale d’un SGBD. La base de données comprend des tables composées de colonnes et d'enregistrements (lignes). Les cellules formées à l'intersection contiennent des données structurées d'un certain type.

SGBD (système de gestion de base de données) – un ensemble de tous modules logiciels pour l'administration de bases de données.

SQL est un langage de requête structuré avec lequel le développeur « communique » avec le cœur (serveur) du SGBD. Comme tout langage de programmation, SQL possède sa propre syntaxe, son propre ensemble de commandes et d'opérateurs ainsi que les types de données pris en charge.

Je pense que les connaissances théoriques nous suffisent pour commencer. Nous « colorierons » les lacunes manquantes en théorie avec la pratique. Il ne vous reste plus qu'à choisir le bon outil logiciel.

Choisir le bon outil

Après avoir fouillé toute la gamme de shells MySQL pour débutants, j'ai réalisé qu'ils n'existaient tout simplement pas. Tous produits logiciels Pour administrer un SGBD, vous devez déjà avoir serveur installé BD. En général, j'ai décidé une fois de plus de ne pas inventer le « scooter », et j'ai opté pour le forfait domestique Denwer. Vous pouvez le télécharger sur le site officiel.

Il comprend déjà tous les composants d'un SGBD, permettant à un débutant de commencer une connaissance pratique de MySQL immédiatement après une installation simple et directe. De plus, Denwer comprend plusieurs autres outils nécessaires à un développeur novice : serveur local, PHP.

Premiers pas

Je ne décrirai pas le processus d'installation du set « gentleman », puisque tout s'y passe automatiquement. Après avoir lancé l'installation, ayez juste le temps clés requises recueillir Juste ce dont vous avez besoin dans la version MySQL pour les nuls.

Une fois le processus d'installation terminé, démarrez le serveur local et attendez quelques secondes. Après cela, tapez localhost dans la barre d'adresse de votre navigateur.

Sur la page « Hourra, ça marche ! » suivez l'un des liens indiqués dans l'image. Après quoi, vous serez redirigé vers phpMyAdmin - un shell pour administrer les bases de données.

En suivant le lien http://downloads.mysql.com/docs/world.sql.zip, vous téléchargerez un exemple de base de données de test depuis le site officiel de MySQL. Allez à nouveau sur phpMyAdmin, dans le menu principal en haut, allez dans l'onglet « Importer ». Dans la fenêtre Importer vers le courant, dans la première section (Fichier à importer), définissez la valeur sur Parcourir votre ordinateur.

Dans la fenêtre Explorateur, sélectionnez l'archive contenant l'exemple de base de données téléchargé. N'oubliez pas de cliquer sur "Ok" en bas de la fenêtre principale.

Je vous conseille de ne pas modifier les valeurs des paramètres spécifiés pour l'instant. Cela peut conduire à affichage incorrect données sources importées. Si le système phpMyAdmin génère une erreur indiquant qu'il ne peut pas reconnaître l'algorithme de compression de la base de données, décompressez-le et répétez l'intégralité du processus d'importation depuis le début.

Si tout s'est bien passé, un message du programme apparaîtra en haut indiquant que l'importation a réussi, et à gauche dans la liste des bases de données, il y en aura un autre (mot).

Regardons sa structure de l'intérieur afin que vous puissiez imaginer plus clairement à quoi vous devez faire face.

Cliquez sur le nom de la base de données MySQL pour les débutants. Une liste des tableaux qui le composent sera affichée en dessous. Cliquez sur l'un d'eux. Ensuite aller à menu principal"Structure". La zone de travail principale affichera la structure du tableau : noms de toutes les colonnes, types de données et tous les attributs.

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 se trouvent au début d’un chemin épineux. apprendre SQL. Cela vous permettra non seulement d'acquérir la base nécessaire notions de base, mais vous parlera également des subtilités les plus populaires et des fonctionnalités puissantes du langage utilisées par les programmeurs expérimentés.
De nombreux manuels sur les bases de données, la théorie relationnelle et SQL sont remplis d'explications ennuyeuses. fondements théoriques. 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 un parcours pédagogique Base de données MySQL et fournit de nombreux exemples pratiques de requêtes couvrant tout le 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 des fenêtres et opérateurs spéciaux, ainsi que des méthodes avancées de travail avec les entrepôts de données : création d'histogrammes, résumé des données en blocs, agrégation d'une plage mobile de valeurs, génération de sommes cumulées et de sous-totaux. Vous pourrez développer des lignes en colonnes et vice versa, simplifier les calculs au sein d'une ligne et effectuer une double expansion de l'ensemble de résultats, effectuer un parcours de lignes, ce qui vous permet d'utiliser SQL pour analyse chaînes en caractères, mots ou éléments de chaîne délimités. 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 décrit la plupart des bases de données open source modernes. code source: 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.

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 une requête SQL volumineuse prend 30 minutes, alors 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.