JavaRush /Blog Java /Random-FR /Nous analysons les bases de données et le langage SQL. (P...
Roman Beekeeper
Niveau 35

Nous analysons les bases de données et le langage SQL. (Partie 2) - "Projet Java de A à Z"

Publié dans le groupe Random-FR
Un article d'une série sur la création d'un projet Java (les liens vers d'autres documents se trouvent à la fin). Son objectif est d'analyser les technologies clés, le résultat est d'écrire un robot télégramme. "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 1Bonne santé, chers lecteurs. Aujourd'hui, nous allons parler un peu et écrire davantage, car nos mains se souviennent bien mieux que nos yeux. Vous vous demandez peut-être : pourquoi utilisons-nous MySQL ? Il existe par exemple les mêmes solutions PostgreSQL et autres. Tout est simple ici. Tout d’abord, c’est gratuit. Deuxièmement, il dispose d'une interface utilisateur pratique (nous en parlerons dans un article séparé). Troisièmement, elle m'est familière et agréable. En plus de tout ce qui précède, MySQL est également très courant.

Vérification des devoirs

La dernière fois, j'ai confié une tâche : installez MySQL sur ma machine et connectez-vous. Via la console, ou d'une autre manière. Est-ce que tout est fait ? "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 2Bravo à ceux qui l'ont fait ! Quel que soit votre niveau dans JavaRush, il est important de pouvoir installer et configurer les outils nécessaires pour travailler conformément aux manuels. Et je vous assure qu'ils seront nombreux. Ceux qui ont essayé, mais n’ont pas réussi, n’ont pas non plus peur. Cela n’arrive pas toujours du premier coup : il faut parfois faire une pause et réessayer avec de nouvelles forces. Qui a installé MySQL vous-même - écrivez «+» dans les commentaires pour que je sache que quelqu'un le fait. Je le ferai moi-même aussi. Comme je n'ai plus d'ordinateur portable Windows, je vais le montrer sur un MacBook. Je ne pense pas que le processus d'installation sera très différent. Pour ceux qui souhaitent l'installer eux-mêmes à l'aide du manuel en anglais, veuillez cliquer ici .

Installer MySQL sur MacOS

Tout d'abord, allez sur le lien suivant , sélectionnez le système d'exploitation, que ce soit Windows, Ubuntu ou MacOS, comme indiqué ci-dessous : "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 3Téléchargez et lancez. Cependant, tout ne s’est pas bien passé pour moi tout de suite. Il s'est avéré qu'Apple n'autorise pas l'installation de la dernière version : "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 4vous pouvez bien sûr désactiver cette fonctionnalité, mais le MacBook fonctionne et je ne vais pas jouer avec ses paramètres. Par conséquent, par essais et erreurs, j'ai trouvé une version qui peut être installée - il s'agit de la 5.7.21 . Pour rechercher d'autres versions, allez dans l'onglet Archive et sélectionnez la version souhaitée : "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 à 5Ensuite, exécutez le fichier téléchargé. Cliquez sur suivant, suivant, suivant, mais à la fin, soyez prudent ! Il y aura un nom d'utilisateur et un mot de passe pour se connecter à la base de données. Pour moi, cela ressemblait à ceci : "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 à 6il est dit ici qu'il y aura un utilisateur avec le nom root et le mot de passe Vac/zto=.24q . Ceci termine l’installation.

Connectez-vous à la ligne de commande MySQL

Pour vous connecter, vous devez vous assurer que le serveur MySQL est activé. Pour ce faire, allez dans les Préférences Système , recherchez-y l'icône MySQL : "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 à 7allez-y et voyez que le serveur doit d'abord être activé. Pour ce faire, cliquez simplement sur Démarrer MySQL Server et c'est tout. Oui, vous pouvez également cocher la case pour que le serveur démarre en arrière-plan à chaque démarrage de la machine. "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 8Il est important de noter que je commencerai toutes les requêtes dans le terminal par le symbole $ pour que ce soit clair. Ensuite, vous devez vous connecter directement au serveur MySQL via la ligne de commande. Pour ce faire, ouvrez le terminal et écrivez : $ mysql Et il y a deux options :
  1. Si la réponse est « ERREUR 1045 (28000) : Accès refusé pour l'utilisateur 'roman_beskrovnyi'@'localhost' (en utilisant le mot de passe : NON" , cela signifie que le serveur est installé et est en cours de rappel. Il vous suffit de passer la commande correcte. à cela.
  2. Si la réponse est command not found: mysql , ce n'est pas grave - il n'y a tout simplement pas de lien vers le serveur. Pour ce faire, vous devrez créer un alias avec la variable mysql, nous écrivons donc la ligne suivante :

    $ alias mysql=/usr/local/mysql/bin/mysql

    Cela n'aidera que pour cette session de terminal. Mais nous n'en avons pas besoin de plus - nous ne travaillerons certainement pas tout le temps via le terminal.

  3. MySQL n'est pas installé, ne trompez pas votre ordinateur.
Ensuite, nous utilisons le nom et le mot de passe fournis lors de l'installation et écrivons : $ mysql --user=root -p"Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 à 9 Là, nous écrivons le mot de passe, et nous serons heureux sous cette forme : "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 10Seule la dernière ligne dit que nous sommes connectés à MySQL serveur Principal. Mais ce mot de passe pour root s'est avéré être un mot de passe à usage unique et il doit être remplacé par un autre. Pour des raisons de sécurité, bien sûr. Si nous ne changeons pas cela et essayons de créer une nouvelle base de données sur le serveur, nous recevrons la réponse suivante : ERREUR 1820 (HY000) : Vous devez réinitialiser votre mot de passe à l'aide de l'instruction ALTER USER avant d'exécuter cette instruction . "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 11Ils sont forcés, pour ainsi dire. Bon, d'accord, est-ce difficile pour nous ? Simplifions le mot de passe (cela concerne uniquement le travail local ; pour un vrai travail, le mot de passe doit être complexe, bien sûr). Disons root∫ , comme le nom d'utilisateur. Pour changer le mot de passe, vous devez saisir la ligne : ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; Et la réponse sera la suivante : "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 12Pour être sûr que tout fonctionne correctement, essayons de créer une nouvelle base de données en utilisant la syntaxe suivante : $ CREATE DATABASE test_db; Pour vous assurer qu'une telle base de données a été créée sur le serveur, écrivez la commande : $ SHOW DATABASES ; Et le résultat nous obtenons ceci : "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 13C'est tout :) On ne peut pas dire que c'était simple et rapide. Par conséquent, celui qui l'a fait lui-même a un respect particulier. Pour ceux qui ne l’ont pas fait, ne vous inquiétez pas, il existe des manuels pour tous les types d’installation : Tout y est décrit de manière assez saine. Le seul problème c'est que tout est en anglais. Maintenant, nous écrivons nos premières lignes en SQL.

Écrire nos premières lignes en SQL

Comme vous l'avez peut-être remarqué ci-dessus, nous connaissons deux commandes :
  1. CREATE DATABASE - crée une base de données sur le serveur ;
  2. AFFICHER LES BASES DE DONNÉES - Affiche toutes les bases de données créées et disponibles sur le serveur.
Je note que SQL ne se soucie pas de la façon dont nous écrivons leurs commandes - que ce soit en majuscules ou non. Cependant, il est considéré comme de bonnes manières d’écrire les commandes en majuscules. Ensuite, pour supprimer une base de données, vous devez écrire la commande DROP DATABASE nom_base de données ; où nom_base de données est le nom de la base de données que nous souhaitons supprimer. Nous avons déjà créé une base de données de test appelée test_db , supprimons-la. Pour ce faire nous écrivons : $ DROP DATABASE test ; Il convient de noter que la réponse Requête OK, 0 ligne affectée (0,02 s) est très importante, car elle confirme que la requête a réussi. De plus, il vous indique combien de lignes dans les tables cette requête a changé et sur quelle période. "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 15En général, le mot DROP est chargé de supprimer quelque chose. Dans ce cas, nous avons supprimé la base de données. Mais cela peut aussi être utilisé à d’autres fins (par exemple, supprimer une table). Et maintenant, pour me faire confiance , vérifiez le résultat, voyons combien de bases de données il reste : $ SHOW DATABASES; "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 16Comme nous pouvons le voir, il n’existe pas de base de données nommée test_db. CHTD :D

Créez votre propre base de données et table

Créer une base de données de villes : $ CREATE DATABASE villes ; Pour travailler dans une base de données spécifique, vous devez vous y connecter. Pour ce faire, utilisez la commande USE database_name , après quoi toutes les commandes permettant de travailler avec les tables seront exécutées dans cette base de données. $ UTILISER les villes ; Comme le montre la réponse - Base de données modifiée , la transition vers cette base de données a réussi. "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 17L'étape suivante consiste à créer le tableau. Lequel? Eh bien, commençons par créer un tableau avec les pays. Pourquoi donc? Parce que les villes ont besoin d’une clé étrangère du pays dans lequel elles se trouvent. Et il peut être obtenu une fois que ces pays ont généralement commencé à figurer dans la base de données (ci-après - en abrégé de la base de données). Comme nous nous en souvenons de l'article précédent , dans le tableau où les pays sont décrits, nous avons deux champs - ID et nom, où ID est un identifiant unique et nom est le nom du pays. Par conséquent, créer une telle base de données est aussi simple que décortiquer des poires. On écrit : $ CREATE TABLE pays (id INT, nom VARCHAR(30)); "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 18Comme vous pouvez le constater, tout s'est bien passé. Par analogie avec SHOW DATABASES, on peut regarder la liste des tables : $ SHOW TABLES; "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 19La voici, notre table. Apprenons maintenant comment supprimer des tables. Pour ce faire nous écrivons : $ DROP TABLE country ; "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 20Il est important de noter qu’une fois qu’une table ou une base de données est supprimée, elle ne peut plus être restaurée !

Travailler avec le tableau

Restaurons la table que nous avons créée. Pour ce faire, il vous suffit de répéter ce que vous avez déjà fait. Pour examiner la structure de la table, vous devez utiliser la commande suivante - DESC nom_table : $ DESC country; "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 21Comme vous pouvez le voir, toutes les informations sur la table sont enregistrées ici. Pour ajouter quelque chose à une table, vous devez utiliser la commande INSERT INTO table_name VALUES() . Ajoutons trois enregistrements pour trois pays : $ INSERT INTO country VALUES (1, 'Ukraine'); $ INSERT INTO country VALUES (2, 'Russie'); $ INSERT INTO country VALUES(3, 'Biélorussie'); "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 22Pour regarder ce qui est stocké dans la base de données, nous utiliserons une simple requête pour obtenir des données. Pour ce faire, nous souhaitons récupérer les données de tous les champs de la table des pays. Rappelez-vous attentivement la phrase précédente car la requête SQL ressemblera à ceci : $ SELECT * FROM country ; Où * signifie que vous devez prendre tous les champs. "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 23C’est comme ça que nous sommes devenus beaux. Si l’on veut obtenir uniquement un champ spécifique, ce n’est pas un problème : au lieu d’une étoile, on écrit les noms des champs qui doivent être séparés par des virgules. Essayez-le vous-même ;) Nous avons déjà créé un tableau, mais nous n'avons pas suffisamment d'informations à ce sujet. La taille de la population ne ferait certainement pas de mal, n'est-ce pas ? Et comment faire ?
  1. Ajoutez un nouveau champ au schéma de table - population.
  2. Mettez à jour les entrées existantes.
Pour le premier, nous utiliserons la commande ALTER TABLE table_name ADD COLUMN . En général, ALTER TABLE est un ensemble de commandes pour les opérations DDL (vous vous souvenez de ce que c'est ? C'était dans l'article précédent). À propos, SELECT fait référence à une opération DML. Écrivons ce qui suit : $ ALTER TABLE country ADD COLUMN population INT; $ DESC pays ; "Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 24Comme vous pouvez le voir sur la figure, nous avons ajouté avec succès un nouveau champ à la table et vérifié avec la deuxième commande que le champ est dans le schéma. La deuxième étape consiste à mettre à jour les entrées du tableau et à attribuer des valeurs. Prenons le numéro de Wikipédia. Non pas que je leur fasse confiance, mais c’est néanmoins le moyen le plus rapide et le plus simple. Pour ce faire, utilisez une autre commande DML. Mais d’abord, disons ce que nous voulons faire : nous voulons mettre à jour la table country, rendre le champ population égal à 41806221 dans l’enregistrement où id = 1. Et voici à quoi ressemble cette construction : UPDATE table_name SET table_row1 = value WHERE table_row2 = valeur2; Sur cette base, nous écrivons : $ UPDATE country SET population = 41806221 WHERE id = 1 ; Ici, nous avons utilisé le mot-clé WHERE"Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 25 pour la première fois . Il est nécessaire d'ajouter des valeurs pour le filtrage. Par exemple, cette fois nous avons dit qu'il était nécessaire de mettre à jour uniquement pour le(s) champ(s) dont l'identifiant est égal à un (jusqu'à ce que nous disions à SQL qu'il s'agit de la clé primaire - il peut y en avoir plusieurs). Nous pourrions également spécifier une condition telle que WHERE id > 2. Si nous n'avions pas spécifié de filtrage du tout, cette valeur aurait été écrite dans tous les enregistrements de la table. Pour la Russie, la Biélorussie et d'autres pays, mettez à jour vous-même ;) Essayons maintenant d'obtenir les données du tableau pour les champs nom et population, à condition que l'identifiant soit supérieur à 1. $ SELECT name, population FROM country WHERE id >1; Ainsi, nous n'avons reçu que les champs que nous souhaitions nous-mêmes. En utilisant INSERT INTO, nous pouvons spécifier les champs que nous voulons ajouter et ceux que nous voulons laisser vides. Pour ce faire, nous écrivons : $ INSERT INTO country (nom, population) VALUES('Georgia', 1234566); Pour vérifier ce qui s'est passé, regardons la liste de tous les champs : $ SELECT * FROM country ; Sans pièce d'identité, l'entrée est mauvaise et la population, bien sûr, a été retirée de la tête, vous devez donc la supprimer. Utilisez la commande DELETE FROM nom_table : $ DELETE FROM country WHERE name = 'Georgia'; De cette façon, nous avons appris à supprimer un champ de la table."Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 26"Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 27"Projet Java de A à Z" : nous analysons les bases de données et le langage SQL.  Partie 2 - 28

Devoirs

Les devoirs seront les suivants :
  1. Vous devez ajouter une clé primaire (PRIMARY KEY) du champ ID au schéma de la table country.
  2. Ajoutez un autre pays au tableau des pays - Moldavie.
  3. Selon le schéma de l'article précédent, créez une table city, qui contiendra tous les champs décrits. Les noms des champs seront les suivants : id, name, country_id, population.
  4. Ajoutez une clé primaire à la table city.
  5. Ajoutez une clé étrangère à la table city.
La tâche est intéressante, pour ceux qui sont au courant, elle sera rapide et simple. Pour ceux qui ne l’ont pas encore fait, cela constituera un excellent renforcement du contenu de cet article.

Résumons-le

Nous avons fait beaucoup de choses dans cet article. Tout d'abord, nous avons installé et démarré le serveur de base de données MySQL. Deuxièmement, nous avons appris toute une liste de mots-clés et de requêtes, à l'aide desquels nous pouvons désormais créer/supprimer des bases de données et des tables. Nous avons appris à ajouter des données aux tableaux, à les mettre à jour et à les supprimer. Voici toutes les commandes que nous avons utilisées, ainsi que leurs descriptions :
  • CREATE DATABASE nom_base de données ; - créer une nouvelle base de données
  • AFFICHER LES BASES DE DONNÉES ; — afficher la liste des bases de données
  • DROP DATABASE nom_base de données ; - supprimer la base de données
  • USE nom_base de données ; - travailler dans la base de données
  • CREATE TABLE nom_table (id INT, ....); - créer un tableau
  • AFFICHER LES TABLEAUX ; — voir la liste des tables
  • DESC TABLE nom_table ; — voir le schéma du tableau
  • DROP TABLE nom_table ; - supprimer le tableau
  • INSERT INTO nom_table VALUES (); - ajouter un champ à la table
  • SELECT * FROM nom_table WHERE ligne_table = valeur ; — récupère les champs de la table sous la condition après WHERE
  • SELECT * FROM nom_table ; - récupérer tous les champs du tableau
  • ALTER TABLE nom_table ADD COLUMN nom_colonne COLUMN_TYPE ; — ajouter un nouveau champ au schéma de la table
  • UPDATE talbe_name SET talbe_row1 = valeur1 WHERE table_row2 = valeur2; — mettre à jour les enregistrements dans le tableau : définir les valeurs d'un champ sous réserve de la condition d'un autre champ
  • DELETE FROM nom_table WHERE rangée_table1 = valeur1 ; — supprimer un ou plusieurs champs d'une table sous une certaine condition.
Je pense que nous avons fait un excellent travail avec vous. J'invite tous ceux qui aiment mon travail à s'abonner à mon compte GitHub , où je publie des projets et des développements intéressants qui se produisent dans ma carrière. J'invite tous ceux qui sont intéressés à travailler en open source à participer à mes projets (dépôts). Merci à tous pour votre attention. Restez à l'écoute pour le prochain article sur les bases de données à venir.

Une liste de tous les matériaux de la série se trouve au début de cet article.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION