Einführung in MySQL/Mariadb -Datenbank SQL -Ansichten

Einführung in MySQL/Mariadb -Datenbank SQL -Ansichten

Eine Datenbankansicht ist nichts anderes als eine virtuelle Tabelle, die keine Daten selbst enthält, sondern auf Daten, die in anderen Tabellen enthalten sind. Ansichten sind im Grunde das Ergebnis gespeicherter Abfragen, die sich in der Komplexität variieren können und beispielsweise zum Ausblenden von Daten vor den Benutzern verwendet werden können, so. In diesem Tutorial sehen wir, wie Sie eine Ansicht in einer MySQL -Datenbank erstellen, aktualisieren, ändern und fallen lassen.

In diesem Tutorial lernen Sie:

  • Was ist eine Ansicht
  • So erstellen Sie eine Ansicht
  • So aktualisieren Sie eine Ansicht
  • Wie man eine Ansicht verändert
  • So lassen Sie eine Aussicht ab


Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System OS-unabhängig
Software Eine laufende MySQL/Mariadb -Datenbank
Andere Basic Knwoledge von MySQL/Mariadb und relationale Datenbankenkonzepte
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Erstellen einer Testdatenbank

Für dieses Tutorial erstellen wir eine Testdatenbank namens "Filme". Es enthält zwei Tabellen: Der erste enthält Daten über Direktoren, die zweite enthält Informationen über Titel und wird über a mit dem ersten verknüpft Unbekannter Schlüssel. Um unsere Datenbank zu erstellen, können wir die folgenden Befehle aus der MySQL/Mariadb -Shell ausgeben:



Mariadb [(keine)]> Datenbankfilme erstellen; Mariadb [(keine)]> Filme verwenden; Datenbank geändert Mariadb [Filme]> Tabelle Director erstellen Key (id) ->); 
Kopieren

Der nächste Schritt besteht darin, einige Einträge in die Tabelle einzufügen:

Mariadb [Filme]> In Director (First_Name, Last_Name, Geburts) Werte-> ('Stanley', 'Kubrik', '1928-07-26'),-> ('Jeffrey', 'Adams', '1966-' 1966- '1966- 06-27 '),-> (' Alfred ',' Hitchcock ',' 1899-08-13 ');
Kopieren

Wir können jetzt die Tabelle "Titel" erstellen und einige Einträge einfügen:

Mariadb [Filme]> Tabellentitel erstellen ( -> ID Smallint Unsigned Not Null Auto_Increment, -> Name Varchar (30) Nicht NULL, -> Genre Varchar (30) NICHT NULL, -> RAVE_DATE DATUM NICHT NULL, -> DIRECTION_ID Smallint Unsigned Nicht null, -> Primärschlüssel (ID), -> Fremd Key (Director_id) Referenzen Director (ID) ->); Mariadb [Filme]> In Titel (Name, Genre, Release_Date, Director_id) Werte -> ('2001: A Space Odyssey', 'Science Fiction', '1968-04-02', 1), -> ('The Force Awakens ',' Fantasy ',' 2015-12-14 ', 2),-> (' Psyco ',' Horror ',' 1960-06-16 ', 3); 
Kopieren

Jetzt, wo wir einige Tische zum Arbeiten haben, können wir eine erstellen Sicht.

Erstellen einer Ansicht

Eine Ansicht ist einfach eine virtuelle Tabelle, mit der wir eine alternative „Prospekte“ für Daten erhalten, die in realen Tabellen enthalten sind. Wir können problemlos eine Ansicht erstellen, indem wir die Spalten aus auswählen, die wir in sie aus vorhandenen Tabellen einbeziehen möchten. Sagen Sie zum Beispiel, wir wollen unsere Sicht Um die Spalten "Name" und "Genre" aus der Tabelle "Titel" einzubeziehen, die wir in unserer Testdatenbank erstellt haben. So erstellen wir es:

Mariadb [Movies]> Beispiel für Ansicht als ausgewählte Name, Genre aus dem Titel;
Kopieren

Mit dem Befehl Ansicht erstellen, Wir haben a geschaffen Sicht und nennen Sie es "Beispiel". Die Ansicht wird erstellt, indem die AS -Anweisung verwendet wird, gefolgt von der Abfrage, die erforderlich ist, um die Daten zu erhalten, die wir einschließen möchten. Der Inhalt der Ansicht wird das Ergebnis der Abfrage sein:

Mariadb [Filme]> Auswählen * aus dem Beispiel; +-----------------------+------------------+| Name | Genre | +-----------------------+------------------+| 2001: Ein Space Odyssey | Science -Fiction | | Die Force Awakens | Fantasie | | Psyco | Horror | +-----------------------+-----------------+
Kopieren

Wir können die in der Ansicht abgerufenen Daten genauso einschränken, wie wir es in einer Standardtabelle tun würden, zum Beispiel:

Mariadb [Filme]> SELECT * Aus Beispiel, wobei Genre = "Science Fiction"; +-----------------------+------------------+| Name | Genre | +-----------------------+------------------+| 2001: Ein Space Odyssey | Science -Fiction | +-----------------------+-----------------+ 
Kopieren

Bereitstellung spezifischer Namen für die Spalten der Ansicht

Standardmäßig der Name der Spalten der Erstellten Sicht entspricht dem Namen der in der enthaltenen Spalten WÄHLEN Anweisung zum Erstellen. Falls wir alternative Namen angeben möchten, müssen wir sie in Klammern zur Verfügung stellen. Die Anzahl der Namen muss mit der Anzahl der ausgewählten Spalten übereinstimmen. Hier ist ein Beispiel:

Mariadb [Movies]> Ansicht Beispiel (Movie_Name, Movie_Genre) als ausgewählter Name, Genre aus dem Titel; Mariadb [Filme]> Auswählen * aus dem Beispiel; +-----------------------+------------------+| Movie_Name | movie_genre | +-----------------------+------------------+| 2001: Ein Space Odyssey | Science -Fiction | | Die Force Awakens | Fantasie | | Psyco | Horror | +-----------------------+-----------------+ 
Kopieren

Eine Ansicht kann mit komplexen Abfragen erstellt und Werte enthalten, die aus Funktionen resultieren. Hier ist ein Beispiel für eine Ansicht, die durch den Beitritt zu den Tabellen "Titel" und "Regisseur" und mit der Verwendung der Tische "die Tische" erstellt wurde Concat Funktion:

Mariadb [Movies]> Ansicht Beispiel (Movie_Name, Movie_Genre, Movie_Director) als -> Select -> Titel.Name ->, Titel.Genre ->, concat (Regisseur.First_Name, ", Direktor.Last_name) -> From -> Titel -> Treten Sie den Titel "Director on Title" bei.Director_id = Director.Ausweis; 
Kopieren

Hier ist der vollständige Inhalt der resultierenden Ansicht:

Mariadb [Filme]> Auswählen * aus dem Beispiel; +-----------------------+-----------------+------- -----------+ | Movie_Name | movie_genre | Movie_director | +-----------------------+-----------------+------- -----------+ | 2001: Ein Space Odyssey | Science -Fiction | Stanley Kubrik | | Die Force Awakens | Fantasie | Jeffrey Adams | | Psyco | Horror | Alfred Hitchcock | +-----------------------+-----------------+------------------+
Kopieren

Aktualisieren einer Ansicht

Wenn einige Einzelheiten erfüllt sind, ist es möglich, eine Ansicht zu aktualisieren: Die Änderungen werden in den zugrunde liegenden Tabellen reflektiert. Um eine Ansicht aktualisieren zu können:



  • Die Ansicht muss erstellt werden, indem eine einzelne Tabelle abfragt und direkt an sie zugeordnet ist
  • Die Ansicht kann keine Aggregatwerte enthalten, die sich aus Funktionen wie SUM () ergeben
  • Eine Operation in der Ansicht muss einer Operation in einer einzelnen Zeile der Originaltabelle entsprechen

Lassen Sie uns ein Beispiel sehen. Angenommen, wir arbeiten an der zuvor erstellten Ansicht:

+-----------------------+-----------------+ | Movie_Name | movie_genre | +-----------------------+------------------+| 2001: Ein Space Odyssey | Science -Fiction | | Die Force Awakens | Fantasie | | Psyco | Horror | +-----------------------+-----------------+
Kopieren

Da die Ansicht die oben erwähnte Anforderungen respektiert, wird die Änderung in der Tabelle "Titel", wenn wir jetzt das Genre des "Psyco" -Films aktualisieren und von "Horror" zu "Thriller" ändern, um es zu ändern. Überprüfen wir es:

Mariadb [Filme]> Beispiel set Movie_genre = "Thriller" wobei Movie_Name = "Psyco";
Kopieren

Wenn wir jetzt die zugrunde liegende "Titel" -Tabelle abfragen, können wir überprüfen, ob die Änderung angewendet wurde:

Mariadb [Filme]> SELECT * Aus dem Titel WHERE name = "psyco"; +----+-------+----------+--------------+-------------- ---+ | id | Name | Genre | Release_date | Director_id | +----+-------+----------+--------------+-------------- ---+ | 3 | Psyco | Thriller | 1960-06-16 | 3 | +----+-------+----------+--------------+-------------+
Kopieren

Eine Ansicht ändern

Um die Definition einer Ansicht zu ändern, verwenden wir die Ansicht ändern Befehl. Jedes Mal, wenn wir die Struktur einer Ansicht ändern möchten, müssen wir die neu schreiben WÄHLEN Anweisung zum Erstellen. Nehmen wir beispielsweise an, wir möchten die Spalte „Release_Date“ aus der Tabelle "Titel" zu unserer Ansicht hinzufügen: Wir können einen Befehl wie nicht verwenden Spalte hinzufügen, Wir müssen eine neue Abfrage bereitstellen, die die Spalte umfasst, die wir hinzufügen möchten:

Mariadb [films]> teure -Beispiel (Movie_Name, Movie_Genre, movie_release_date) als ausgewählter Name, Genre, Release_date aus dem Titel; Aus dem Beispiel auswählen; +-----------------------+-----------------+------- --------------+ | Movie_Name | movie_genre | Movie_release_date | +-----------------------+-----------------+------- --------------+ | 2001: Ein Space Odyssey | Science -Fiction | 1968-04-02 | | Die Force Awakens | Fantasie | 2015-12-14 | | Psyco | Thriller | 1960-06-16 | +-----------------------+-----------------+--------------------+ 
Kopieren

Eine Aussicht fallen lassen

Eine Ansicht fallen zu lassen, ist ein sehr einfacher Betrieb. Der Befehl zur Erfüllung der Aufgabe ist Drop View. In diesem Fall würden wir unsere Ansicht „Beispiel“ entfernen: Wir würden ausführen:

Beispiel für Drop -Ansicht;
Kopieren

Gedanken schließen

In diesem Artikel haben wir gesehen, wie wir mit MySQL/MariadB -Ansichten einen anderen Standpunkt zu den in einer Datenbanktabelle enthaltenen Daten sammeln können. Wir haben gesehen, wie man eine Ansicht erstellt, wie man seine Struktur verändert, wie wir sie aktualisieren können, wenn einige Anforderungen erfüllt werden, und wie sie fallen lassen. Wenn Sie an anderen Themen in MySQL/Mariadb interessiert sind, können Sie sich unsere Artikel zu diesem Thema ansehen, beispielsweise diejenigen über die Gewerkschaft oder die Aussagen beizutreten.

Verwandte Linux -Tutorials:

  • Einführung in MySQL -Speichermotoren
  • So ändern Sie Mariadb -Benutzerkennwort
  • Dinge zu installieren auf Ubuntu 20.04
  • Installieren Sie MySQL auf Ubuntu 20.04 LTS Linux
  • So installieren Sie MySQL auf Almalinux
  • So erstellen Sie einen Docker -basierten Lampenstapel mit Docker auf…
  • Ubuntu 20.04 WordPress mit Apache -Installation
  • So grep für Text in Bash -Skripten korrekt Grep
  • Ampache Raspberry Pi Installation
  • Ubuntu 20.04: WordPress mit Nginx -Installation