MySql-Lerntag 03: Verbindungs- und Abfragedetails zwischen Datentabellen

MySql-Lerntag 03: Verbindungs- und Abfragedetails zwischen Datentabellen

Primärschlüssel:

Schlagwort: Primärschlüssel

Funktionen: darf nicht null sein und muss eindeutig sein.

Primärschlüsselklassifizierung:

  1. Logischer Primärschlüssel: wie z. B. ID, stellt keine tatsächliche geschäftliche Bedeutung dar, sondern wird nur zur eindeutigen Identifizierung eines Datensatzes verwendet (empfohlen)
  2. Primärschlüssel für Unternehmen: wie z. B. Benutzername, der an der eigentlichen Geschäftslogik beteiligt ist.

Verwendung des Primärschlüssels:

Methode 1:

    Tabelle t1 erstellen(

       ID int Primärschlüssel,

       Name varchar(100)

);

In t1-Werte (1, 'zs') einfügen;

In t1-Werte (2, 'ls') einfügen;

Automatische Inkrementierung des Primärschlüssels:

Schlüsselwort: auto_increment

   Tabelle t4 erstellen(

                     ID int Primärschlüssel auto_increment,

                     Name varchar(100)

);

In t4(Name) Werte('zs') einfügen;

In t4-Werte (null, „ls“) einfügen;

Domänenintegrität:

Bezieht sich auf die Spalten (d. h. Felder) einer Datenbanktabelle, die einem bestimmten Datentyp oder einer bestimmten Einschränkung entsprechen müssen

Datentypen

Länge

Nicht NULL-Einschränkung: NOT NULL

Eindeutige Einschränkung: UNIQUE

    TABELLE ERSTELLEN t5(

                     Benutzername varchar(100) NOT NULL UNIQUE,

                     Geschlecht varchar (100) NICHT NULL,

                     phonenum varchar(100) UNIQUE

       );

Verbindungen zwischen Datentabellen:

1. Eins-zu-viele (1*N): Kunden und Bestellungen. Ein Kunde kann mehrere Bestellungen haben und jede Bestellung gehört nur einem Kunden.

Erstellen Sie die Kundentabelle:

CREATE TABLE Kunden(

  Ich würde int,

  Name varchar(100),

  Adresse varchar(255),

  PRIMÄRSCHLÜSSEL(id)

);

Erstellen Sie die Tabelle „Bestellungen“:

CREATE TABLE-Aufträge (

       order_num int Primärschlüssel,

       Preis Float (8,2),

       Status int,

       Kunden-ID int,

CONSTRAINT customer_id_fk FOREIGN KEY(customer_id) REFERENZEN Kunden(id)

);

Daten einfügen:

2. Viele-zu-viele: Verwenden Sie den Fremdschlüssel der dritten Tabelle, um die Primärschlüssel der beiden Tabellen zu verbinden.

Zwischen Lehrern und Schülern besteht eine Viele-zu-viele-Beziehung. Ein Lehrer betreut mehrere Schüler, und ein Schüler wird von mehreren Lehrern unterrichtet.

Erstellen Sie die Lehrertabelle:

   Tabelle „Lehrer“ erstellen (

              Ich würde int,

              Name varchar(100)

              Gehaltsfloat (8,2),

              Primärschlüssel (ID)

);

Erstellen Sie die Studententabelle:

 Tabelle „Studenten“ erstellen (

  Ich würde int,

  Name varchar(100),

  Klasse varchar(100),

  Primärschlüssel (ID)

);

Die dritte Tabelle:

Tabelle Lehrer_Schüler erstellen(

       t_id int,

       s_id int,

       Primärschlüssel (t_id, s_id)

CONSTRAINT teacher_id_fk FOREIGN KEY(t_id) REFERENZEN Lehrer(id),

CONSTRAINT student_id_fk Fremdschlüssel (s_id) Referenzen Studenten (id)

);

Daten einfügen:

3. Eins-zu-eins: Der Fremdschlüssel einer Tabelle verbindet sich mit dem Primärschlüssel der zweiten Tabelle. Dies ist in der eigentlichen Entwicklung nicht notwendig. Sie können einfach eine Tabelle entwerfen.

Abfrage mehrerer Tabellen:

Cross Join (kartesisches Produkt): Alle Zeilen der ersten Tabelle werden mit allen Zeilen der zweiten Tabelle multipliziert. Das Endergebnis ist falsch, daher wird dieser Vorgang im Allgemeinen nicht verwendet.

Innerer Join:

Weil der durch den Cross Join erhaltene Ergebnissatz falsch ist. Die innere Verbindung basiert daher auf der Querverbindung

Es werden nur die Datenzeilen in der Verbindungstabelle aufgelistet, die den Verbindungsbedingungen entsprechen. Die Datensätze, die nicht übereinstimmen, werden nicht aufgelistet.

Grammatik:

Implizite Syntax:

Wählen Sie * aus Kunden, Bestellungen, wobei Kunden-ID = Bestellungen.Kunden-ID;

Explizite Syntax:

Wählen Sie * aus Kunden c INNER JOIN Bestellungen o ON c.id=o.customer_id;

Äußerer Join:

Ein Outer Join verwendet eine Tabelle als Basistabelle und verknüpft Informationen aus anderen Tabellen. Wenn die Informationen vorhanden sind, werden sie verknüpft. Wenn nicht, wird null angezeigt. Outer Joins werden in Left Outer Joins und Right Outer Joins unterteilt.

Left outer join: Verknüpfung mit der Tabelle links vom Schlüsselwort als Basistabelle

Syntax: Auswahl * von Kunden c LEFT JOIN Bestellungen o ON c.id=o.customer_id;

Right outer join: Die Tabelle rechts vom Schlüsselwort ist die Basistabelle

Syntax: Auswahl * aus Bestellungen o RIGHT JOIN Kunden c ON c.id=o.customer_id;

Hinweis: Das Ergebnis des Left Outer Join zwischen Tabelle A und Tabelle B sowie des Right Outer Join zwischen Tabelle A ist dasselbe.

Unterabfrage:

In einigen Fällen ist die erforderliche Bedingung beim Ausführen einer Abfrage das Ergebnis einer anderen Select-Anweisung. In diesem Fall wird eine Unterabfrage verwendet. Die Abfrage (innere Abfrage), die zuerst ausgeführt wird, um Daten für die Hauptabfrage (äußere Abfrage) bereitzustellen, wird als Unterabfrage bezeichnet. Unterabfragen werden in verschachtelte Unterabfragen und korrelierte Unterabfragen unterteilt.

Verschachtelte Unterabfragen:

Die Ausführung der inneren Abfrage ist unabhängig von der äußeren Abfrage. Die innere Abfrage wird nur einmal ausgeführt und das Ergebnis wird nach Abschluss der Ausführung als Bedingung der äußeren Abfrage verwendet (die Unterabfrageanweisung in der verschachtelten Unterabfrage kann herausgenommen und separat ausgeführt werden.)

Grammatik und Übungen: Abfrage aller Schüler, die der Lehrer mit der ID 1 unterrichtet.

Wählen Sie * aus den Studenten, wobei die ID in (Wählen Sie s_id aus den Lehrer-Studenten, wobei t_id=1 ist) ist;

Korrelierte Unterabfragen:

Die Ausführung der internen Abfrage hängt von den Daten der externen Abfrage ab. Jedes Mal, wenn die externe Abfrage ausgeführt wird, wird auch die interne Abfrage ausgeführt. Jedes Mal wird zuerst die äußere Abfrage ausgeführt, ein Tupel in der äußeren Abfragetabelle herausgenommen, die Daten im aktuellen Tupel an die innere Abfrage übergeben und dann die innere Abfrage ausgeführt. Bestimmen Sie anhand des Ergebnisses der internen Abfrageausführung, ob das aktuelle Tupel die Where-Bedingung in der externen Abfrage erfüllt. Wenn ja, ist das aktuelle Tupel ein Datensatz, der die Anforderungen erfüllt, andernfalls erfüllt es die Anforderungen nicht. Anschließend ruft die externe Abfrage die nächsten Tupeldaten ab und führt die obigen Vorgänge aus, bis alle Tupel verarbeitet sind.

Grammatik und Übungen: Ermitteln Sie die Anzahl der Schüler, deren Testergebnisse über der Durchschnittsnote in den einzelnen Fächern liegen.

Wählen Sie * aus Punktzahl als a, wobei a.score>(Wählen Sie Durchschnitt(b.score) aus Punktzahl als b, wobei a.cou_id=b.cou_id);

Oben ist die vom Herausgeber eingeführte Integration der Verbindung und Abfragedetails zwischen MySql-Datentabellen. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • MySQL-Join-Abfrage (Left Join, Right Join, Inner Join)
  • PHP-Einführungstutorial: So verwenden Sie MySQL zum Bedienen der Datenbank (Verbindung, Abfrage, Transaktions-Rollback usw.)
  • Detaillierte Erläuterung der Gruppenabfrage- und Join-Abfrageanweisungen in MySQL
  • Grundlegendes Tutorial zu Multi-Table-Join-Abfragen in MySQL
  • PHP-Grundlagen: Verbindung zur MySQL-Datenbank herstellen und Daten abfragen
  • Lösung für die verstümmelte Anzeige chinesischer Zeichen in der PHP-Verbindung zu MySQL-Abfrageergebnissen
  • MySQL-Hinweise: Detaillierte Erklärung der Verbindungsabfrage
  • MySQL-Abfrageoptimierung: Einführung in das Sortierlimit für Join-Abfragen (Join-, Order-by- und Limit-Anweisung)
  • MySQL-Abfrageoptimierung: Verwenden von Unterabfragen anstelle von Join-Abfragebeispielen mit Nicht-Primärschlüsseln
  • MySQL-Abfrageoptimierung: eine kurze Erläuterung zur Sortierung von Join-Abfragen

<<:  Vue implementiert Ankerpositionierungsfunktion

>>:  Linux-Befehl „exa“ (bessere Dateianzeige als „ls“)

Artikel empfehlen

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.16 winx64

Ich habe erst vor Kurzem angefangen, mich mit Dat...

Detailliertes Beispiel zum Beheben der Tablespace-Fragmentierung in MySQL

Detailliertes Beispiel zum Beheben der Tablespace...

Details zum MySQL-Index-Pushdown

Inhaltsverzeichnis 1. Prinzip des ganz linken Prä...

Beheben Sie den Fehler bei der Installation von VMware Tools unter Ubuntu 18.04

1. Laut dem Online-Tutorial schlägt die Installat...

JavaScript implementiert einen verschiebbaren Fortschrittsbalken

In diesem Artikel wird der spezifische JavaScript...

Mehrere Möglichkeiten zum Zentrieren einer Box in der Webentwicklung

1. Notieren Sie mehrere Methoden zum Zentrieren d...

SQL-Anweisungen in MySQL verwenden keine Indizes

MySQL-Abfrage ohne Verwendung der Indexaggregatio...

So extrahieren Sie Zeichenfolgenelemente aus nicht festen Positionen in MySQL

Vorwort Hinweis: Die Testdatenbankversion ist MyS...

Beispielcode zum Erstellen eines Dropdown-Menüs mit reinem CSS

Einführung: Als ich mir in letzter Zeit die Frage...

Zusammenfassung häufig verwendeter Leistungstestskripte für VPS-Server

Hier ist ein allgemeines Ein-Klick-Leistungstests...

Umgang mit Leerzeichen in CSS

1. Weltraumregeln Leerzeichen im HTML-Code werden...

MySQL-Schritte vollständig löschen

Inhaltsverzeichnis 1. Stoppen Sie zuerst den MySQ...