JavaRush /Java-Blog /Random-DE /Wir analysieren Datenbanken und die SQL-Sprache. (Teil 2)...

Wir analysieren Datenbanken und die SQL-Sprache. (Teil 2) - „Java-Projekt von A bis Z“

Veröffentlicht in der Gruppe Random-DE
Ein Artikel aus einer Reihe über die Erstellung eines Java-Projekts (Links zu anderen Materialien finden Sie am Ende). Sein Ziel ist es, Schlüsseltechnologien zu analysieren, das Ergebnis ist das Schreiben eines Telegram-Bots. „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 1Viel Gesundheit, liebe Leser. Heute werden wir ein wenig reden und mehr schreiben, denn unsere Hände erinnern sich viel besser als unsere Augen. Sie fragen sich vielleicht: Warum verwenden wir MySQL? Es gibt zum Beispiel das gleiche PostgreSQL und andere Lösungen. Hier ist alles einfach. Erstens ist es kostenlos. Zweitens verfügt es über eine praktische Benutzeroberfläche (wir werden in einem separaten Artikel darüber sprechen). Drittens ist sie mir vertraut und angenehm. Zusätzlich zu all dem ist auch MySQL weit verbreitet.

Hausaufgaben überprüfen

Das letzte Mal habe ich eine Aufgabe gestellt: Installieren Sie MySQL auf meinem Computer und melden Sie sich dort an. Über die Konsole oder auf andere Weise. Ist alles erledigt? „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 2Gut gemacht an diejenigen, die es geschafft haben! Es spielt keine Rolle, auf welchem ​​Level Sie sich in JavaRush befinden, es ist wichtig, die notwendigen Tools für die Arbeit gemäß den Handbüchern installieren und konfigurieren zu können. Und ich versichere Ihnen, es werden viele davon sein. Wer es versucht hat, es aber nicht geschafft hat, hat auch keine Angst. Das passiert nicht immer beim ersten Mal: ​​Manchmal muss man eine Pause einlegen und es mit frischer Kraft noch einmal versuchen. Wer hat MySQL selbst installiert? Schreiben Sie „+“ in die Kommentare, damit ich weiß, dass es jemand tut. Ich werde das auch selbst machen. Da ich keinen Windows-Laptop mehr habe, werde ich es auf einem MacBook zeigen. Ich glaube nicht, dass der Installationsprozess viel anders sein wird. Für diejenigen, die es mithilfe des englischen Handbuchs selbst installieren möchten, klicken Sie bitte hier .

MySQL unter MacOS installieren

Gehen Sie zunächst auf den folgenden Link und wählen Sie das Betriebssystem aus, sei es Windows, Ubuntu oder MacOS, wie unten gezeigt: „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 3Herunterladen und starten. Allerdings lief bei mir nicht auf Anhieb alles richtig. Es stellte sich heraus, dass Apple die Installation der neuesten Version nicht zulässt: „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 4Sie können dies natürlich deaktivieren, aber das MacBook funktioniert und ich werde mich nicht mit seinen Einstellungen herumschlagen. Daher habe ich durch Versuch und Irrtum eine Version gefunden, die installiert werden kann – das ist 5.7.21 . Um andere Versionen zu finden, gehen Sie zur Registerkarte „Archiv“ und wählen Sie die gewünschte Version aus: „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 5Führen Sie als Nächstes die heruntergeladene Datei aus. Klicken Sie auf Weiter, Weiter, Weiter, aber seien Sie am Ende vorsichtig! Für die Anmeldung bei der Datenbank sind ein Benutzername und ein Passwort erforderlich. Bei mir sah es so aus: „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 6Hier steht, dass es einen Benutzer mit dem Namen root und dem Passwort Vac/zto=.24q geben wird . Damit ist die Installation abgeschlossen.

Melden Sie sich bei der MySQL-Befehlszeile an

Um sich anzumelden, müssen Sie sicherstellen, dass der MySQL-Server eingeschaltet ist. Gehen Sie dazu zu den Systemeinstellungen und suchen Sie dort das MySQL-Symbol: „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 7Gehen Sie dorthin und stellen Sie sicher, dass der Server zuerst eingeschaltet werden muss. Klicken Sie dazu einfach auf „MySQL-Server starten“ und fertig. Ja, Sie können das Kontrollkästchen auch aktivieren, damit der Server bei jedem Maschinenstart im Hintergrund startet. Es ist wichtig zu beachten, dass ich zur Verdeutlichung „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 8alle Anfragen im Terminal mit dem $ -Symbol beginnen werde. Als nächstes müssen Sie über die Befehlszeile eine direkte Verbindung zum MySQL-Server herstellen. Öffnen Sie dazu das Terminal und schreiben Sie: $ mysql Und es gibt zwei Möglichkeiten:
  1. Wenn die Antwort „FEHLER 1045 (28000): Zugriff verweigert für Benutzer ‚roman_beskrovnyi‘@‘localhost‘ (mit Passwort: NEIN“) lautet , bedeutet dies, dass der Server installiert ist und zurückgerufen wird. Sie müssen nur den richtigen Befehl übergeben dazu.
  2. Wenn die Antwort „ command not found: mysql“ lautet , ist das in Ordnung – es gibt nur keine Verbindung zum Server. Dazu müssen Sie einen Alias ​​mit der MySQL-Variablen erstellen, also schreiben wir die folgende Zeile:

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

    Dies hilft nur für diese Terminalsitzung. Mehr brauchen wir aber nicht – wir werden sicher nicht ständig über das Terminal arbeiten.

  3. MySQL ist nicht installiert. Machen Sie Ihrem Computer nichts vor.
Als nächstes verwenden wir den bei der Installation angegebenen Namen und das Passwort und schreiben: $ mysql --user=root -p„Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 9 Dort schreiben wir das Passwort und geben es in dieser Form ein: „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 10Nur in der letzten Zeile steht, dass wir bei MySQL angemeldet sind Terminal-Server. Es stellte sich jedoch heraus, dass es sich bei diesem Passwort für Root um ein Einmalpasswort handelte und es in ein anderes geändert werden muss. Aus Sicherheitsgründen natürlich. Wenn wir dies nicht ändern und versuchen, eine neue Datenbank auf dem Server zu erstellen, erhalten wir die folgende Antwort: ERROR 1820 (HY000): Sie müssen Ihr Passwort mit der ALTER USER-Anweisung zurücksetzen, bevor Sie diese Anweisung ausführen . „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 11Sie werden sozusagen gezwungen. Na gut, ist es schwierig für uns? Machen wir das Passwort einfacher (dies gilt nur für lokale Arbeiten; für echte Arbeit muss das Passwort natürlich komplex sein). Sagen wir root∫ , wie der Benutzername. Um das Passwort zu ändern, müssen Sie die Zeile eingeben: ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; Und die Antwort wird so aussehen: „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 12Um sicherzustellen, dass alles richtig funktioniert, versuchen wir, eine neue Datenbank mit der folgenden Syntax zu erstellen : $ CREATE DATABASE test_db; Um sicherzustellen, dass eine solche Datenbank auf dem Server erstellt wurde, schreiben Sie den Befehl: $ SHOW DATABASES; Und als Ergebnis erhalten wir Folgendes: „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 13Das ist alles :) Man kann nicht sagen, dass es einfach und schnell war. Deshalb gilt demjenigen, der es selbst gemacht hat, besonderer Respekt. Für diejenigen, die es noch nicht getan haben, keine Sorge, es gibt Handbücher für alle Arten der Installation: Dort ist alles ganz vernünftig beschrieben. Das Einzige ist, dass alles auf Englisch ist. Jetzt schreiben wir unsere ersten Zeilen in SQL.

Schreiben unserer ersten Zeilen in SQL

Wie Sie oben vielleicht bemerkt haben, kennen wir zwei Befehle:
  1. Datenbank erstellen – erstellt eine Datenbank auf dem Server;
  2. DATENBANKEN ANZEIGEN – Zeigt alle erstellten und verfügbaren Datenbanken auf dem Server an.
Ich stelle fest, dass es SQL egal ist, wie wir ihre Befehle schreiben – entweder alle in Großbuchstaben oder nicht. Es gehört jedoch zum guten Ton, Befehle in Großbuchstaben zu schreiben. Um eine Datenbank zu löschen, müssen Sie als Nächstes den Befehl DROP DATABASE Datenbankname schreiben . Dabei ist Datenbankname der Name der Datenbank, die wir löschen möchten. Wir haben bereits eine Testdatenbank namens test_db erstellt , also löschen wir sie. Dazu schreiben wir: $ DROP DATABASE test; Es ist erwähnenswert, dass die Antwort „Abfrage OK, 0 Zeilen betroffen (0,02 Sek.)“ sehr wichtig ist, da sie bestätigt, dass die Anfrage erfolgreich war. Darüber hinaus erfahren Sie, wie viele Zeilen in den Tabellen diese Abfrage in welchem ​​Zeitraum geändert hat. „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 15Im Allgemeinen ist das Wort DROP dafür verantwortlich, etwas zu entfernen. In diesem Fall haben wir die Datenbank gelöscht. Dies kann aber auch für andere Zwecke genutzt werden (zum Beispiel zum Ablegen einer Tabelle). Und jetzt, um mir zu vertrauen , überprüfen Sie das Ergebnis und sehen wir, wie viele Datenbanken noch übrig sind: $ SHOW DATABASES; „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 16Wie wir sehen können, gibt es keine Datenbank mit dem Namen test_db. CHTD :D

Erstellen Sie Ihre eigene Datenbank und Tabelle

Erstellen Sie eine Städtedatenbank: $ CREATE DATABASE towns; Um in einer bestimmten Datenbank zu arbeiten, müssen Sie sich dort anmelden. Verwenden Sie dazu den Befehl USE Datenbankname , woraufhin alle Befehle zum Arbeiten mit Tabellen in dieser Datenbank ausgeführt werden. $ Städte verwenden; Wie aus der Antwort „ Datenbank geändert“ hervorgeht , war der Übergang zu dieser Datenbank erfolgreich. „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 17Der nächste Schritt ist die Erstellung der Tabelle. Welche? Lassen Sie uns zunächst eine Tabelle mit Ländern erstellen. Warum so? Denn Städte benötigen einen Fremdschlüssel für das Land, in dem sie liegen. Und es kann abgerufen werden, nachdem diese Länder im Allgemeinen in der Datenbank enthalten sind (im Folgenden als Datenbank abgekürzt). Wie wir uns aus dem vorherigen Artikel erinnern , haben wir in der Tabelle, in der die Länder beschrieben werden, zwei Felder – ID und Name, wobei ID eine eindeutige Kennung und Name der Name des Landes ist. Daher ist die Erstellung einer solchen Datenbank so einfach wie das Schälen von Birnen. Wir schreiben: $ CREATE TABLE Land (id INT, Name VARCHAR(30)); „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 18Wie Sie sehen, hat alles gut geklappt. Analog zu SHOW DATABASES können wir uns die Liste der Tabellen ansehen: $ SHOW TABLES; „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 19Hier ist er, unser Tisch. Jetzt lernen wir, wie man Tabellen löscht. Dazu schreiben wir: $ DROP TABLE Land; „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 20Es ist wichtig zu beachten, dass eine einmal gelöschte Tabelle oder Datenbank nicht wiederhergestellt werden kann!

Arbeiten mit dem Tisch

Lassen Sie uns die von uns erstellte Tabelle wiederherstellen. Dazu müssen Sie lediglich wiederholen, was Sie bereits getan haben. Um die Tabellenstruktur anzuzeigen, müssen Sie den folgenden Befehl verwenden: DESC Tabellenname : $ DESC Land; „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 21Wie Sie sehen, sind hier alle Informationen zur Tabelle erfasst. Um einer Tabelle etwas hinzuzufügen, müssen Sie den Befehl INSERT INTO table_name VALUES() verwenden . Fügen wir drei Datensätze für drei Länder hinzu: $ INSERT INTO Country VALUES (1, 'Ukraine'); $ INSERT INTO Country VALUES (2, 'Russland'); $ INSERT INTO Land VALUES(3, 'Belorus'); „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 22Um zu sehen, was in der Datenbank gespeichert ist, verwenden wir eine einfache Anfrage zum Abrufen von Daten. Dazu wollen wir die Daten aller Felder aus der Ländertabelle holen. Denken Sie sorgfältig an den vorherigen Satz, da die SQL-Abfrage wie folgt aussehen wird: $ SELECT * FROM Country; Wobei * bedeutet, dass Sie alle Felder ausfüllen müssen. „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 23So schön sind wir geworden. Wenn wir nur ein bestimmtes Feld erhalten möchten, ist das kein Problem: Statt eines Sterns schreiben wir die Namen der Felder, die durch Kommas getrennt werden sollen. Probieren Sie es selbst aus ;) Wir haben bereits eine Tabelle erstellt, aber irgendwie fehlen uns die Informationen dazu. Die Bevölkerungsgröße würde sicherlich nicht schaden, oder? Und wie geht das?
  1. Fügen Sie dem Tabellenschema ein neues Feld hinzu – Population.
  2. Vorhandene Einträge aktualisieren.
Als erstes verwenden wir den Befehl ALTER TABLE Tabellenname ADD COLUMN . Im Allgemeinen handelt es sich bei ALTER TABLE um eine Reihe von Befehlen für DDL-Operationen (erinnern Sie sich, was das ist? Es stand im vorherigen Artikel). SELECT bezieht sich übrigens auf eine DML-Operation. Schreiben wir Folgendes: $ ALTER TABLE Land ADD COLUMN Bevölkerung INT; $ DESC Land; „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 24Wie Sie der Abbildung entnehmen können, haben wir der Tabelle erfolgreich ein neues Feld hinzugefügt und mit dem zweiten Befehl überprüft, ob das Feld im Schema vorhanden ist. Der zweite Schritt besteht darin, die Einträge in der Tabelle zu aktualisieren und Werte zuzuweisen. Nehmen wir die Zahl aus Wikipedia. Nicht, dass ich ihnen vertraue, aber dennoch ist dies der schnellste und einfachste Weg. Verwenden Sie dazu einen anderen DML-Befehl. Aber sagen wir zunächst, was wir tun möchten: Wir möchten die Ländertabelle aktualisieren und das Bevölkerungsfeld im Datensatz auf 41806221 setzen, wobei die ID = 1 ist. Und so sieht diese Konstruktion aus: UPDATE Tabellenname SET Tabellenzeile1 = Wert WHERE Tabellenzeile2 = Wert2; Darauf aufbauend schreiben wir: $ UPDATE Country SET Population = 41806221 WHERE id = 1; „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 25Hier haben wir zum ersten Mal das Schlüsselwort WHERE verwendet . Es ist erforderlich, Werte zum Filtern hinzuzufügen. Diesmal haben wir beispielsweise gesagt, dass eine Aktualisierung nur für das Feld (die Felder) erforderlich ist, dessen ID gleich eins ist (bis wir SQL mitgeteilt haben, dass dies der Primärschlüssel ist – es können mehrere davon sein). Wir könnten auch eine Bedingung wie WHERE id > 2 angeben. Wenn wir überhaupt keine Filterung angegeben hätten, wäre dieser Wert in alle Tabellendatensätze geschrieben worden. Aktualisieren Sie sich für Russland, Weißrussland und andere Länder ;) Versuchen wir nun, Daten aus der Tabelle für die Felder „Name“ und „Bevölkerung“ abzurufen, vorausgesetzt, die ID ist größer als 1. $ SELECT Name, Bevölkerung FROM Land WHERE id >1; „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 26Somit erhielten wir nur die Felder, die wir selbst wollten. Mit INSERT INTO können wir angeben, welche Felder wir hinzufügen und welche wir leer lassen möchten. Dazu schreiben wir: $ INSERT INTO Land (Name, Bevölkerung) VALUES('Georgia', 1234566); Um zu überprüfen, was passiert ist, schauen wir uns die Liste aller Felder an: $ SELECT * FROM Country; „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 27Ohne ID ist der Eintrag schlecht und die Population wurde natürlich vom Kopf genommen, also muss man sie löschen. Verwenden Sie den Befehl DELETE FROM tabellenname : $ DELETE FROM land WHERE name = 'Georgia'; „Java-Projekt von A bis Z“: Wir analysieren Datenbanken und die SQL-Sprache.  Teil 2 - 28Auf diese Weise haben wir gelernt, wie man ein Feld aus der Tabelle löscht.

Hausaufgaben

Die Hausaufgaben werden wie folgt lauten:
  1. Sie müssen einen Primärschlüssel (PRIMARY KEY) aus dem ID-Feld zum Ländertabellenschema hinzufügen.
  2. Fügen Sie der Ländertabelle ein weiteres Land hinzu: Moldawien.
  3. Erstellen Sie gemäß dem Schema des vorherigen Artikels eine Tabelle Stadt, die alle beschriebenen Felder enthält. Die Feldnamen lauten wie folgt: ID, Name, Länder-ID, Bevölkerung.
  4. Fügen Sie der Stadttabelle einen Primärschlüssel hinzu.
  5. Fügen Sie der Stadttabelle einen Fremdschlüssel hinzu.
Die Aufgabe ist interessant, für Kenner geht sie schnell und unkompliziert. Für diejenigen, die dies nicht getan haben, wird es als hervorragende Verstärkung des Materials aus diesem Artikel dienen.

Fassen wir es zusammen

Wir haben in diesem Artikel viele Dinge getan. Zuerst haben wir den MySQL-Datenbankserver installiert und gestartet. Zweitens haben wir eine ganze Liste von Schlüsselwörtern und Abfragen gelernt, mit deren Hilfe wir nun Datenbanken und Tabellen erstellen/löschen können. Wir haben gelernt, wie man Daten zu Tabellen hinzufügt, aktualisiert und löscht. Hier sind alle Befehle, die wir verwendet haben, zusammen mit ihren Beschreibungen:
  • CREATE DATABASE Datenbankname; - Erstellen Sie eine neue Datenbank
  • DATENBANKEN ANZEIGEN; — Sehen Sie sich die Liste der Datenbanken an
  • DROP DATABASE Datenbankname; - Datenbank löschen
  • USE Datenbankname; - Arbeiten in der Datenbank
  • CREATE TABLE Tabellenname (id INT, ....); - Erstellen Sie eine Tabelle
  • TABELLEN ANZEIGEN; — Sehen Sie sich die Liste der Tabellen an
  • DESC TABLE Tabellenname; — siehe Tabellendiagramm
  • DROP TABLE Tabellenname; - Tabelle löschen
  • INSERT INTO Tabellenname VALUES (); - Fügen Sie der Tabelle ein Feld hinzu
  • SELECT * FROM Tabellenname WHERE Tabellenzeile = Wert; – Felder in der Tabelle unter der Bedingung nach WHERE abrufen
  • SELECT * FROM Tabellenname; - Alle Felder in der Tabelle abrufen
  • ALTER TABLE Tabellenname ADD COLUMN Spaltenname COLUMN_TYPE; – Fügen Sie dem Tabellenschema ein neues Feldfeld hinzu
  • UPDATE talbe_name SET talbe_row1 = value1 WHERE table_row2 = value2; – Datensätze in der Tabelle aktualisieren: Legen Sie die Werte eines Felds unter der Bedingung eines anderen Felds fest
  • DELETE FROM Tabellenname WHERE Tabellenzeile1 = Wert1; – Entfernen Sie unter einer bestimmten Bedingung ein Feld (oder Felder) aus einer Tabelle.
Ich denke, wir haben mit Ihnen hervorragende Arbeit geleistet. Ich lade jeden, dem meine Arbeit gefällt, ein, meinen GitHub-Account zu abonnieren , wo ich interessante Projekte und Entwicklungen poste, die in meiner Karriere passieren. Ich lade alle, die sich für die Arbeit mit Open Source interessieren, ein, sich an meinen Projekten (Repositories) zu beteiligen. Vielen Dank für Ihre Aufmerksamkeit. Seien Sie gespannt auf den nächsten Artikel über Datenbanken, der bald erscheint.

Eine Liste aller Materialien der Serie finden Sie am Anfang dieses Artikels.

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