Heim >Datenbank >MySQL-Tutorial >Was ist eine MySQL-Unterabfrage? Beispiel für die tatsächliche Verwendung einer MySQL-Datenbank-Unterabfrage

Was ist eine MySQL-Unterabfrage? Beispiel für die tatsächliche Verwendung einer MySQL-Datenbank-Unterabfrage

php是最好的语言
php是最好的语言Original
2018-07-24 15:57:171973Durchsuche

Was ist eine MySQL-Unterabfrage?

Eine Unterabfrage wird auch als interne Abfrage bezeichnet. Im Vergleich zur internen Abfrage wird diejenige, die eine interne Abfrage enthält, als externe Abfrage bezeichnet. Unterabfragen ermöglichen die Verschachtelung einer Abfrage in einer anderen Abfrage.

Eigenschaften von MySQL-Datenbank-Unterabfrageanweisungen: Überall dort, wo ein Ausdruck verwendet werden kann, kann eine Unterabfrage verwendet werden, solange die Unterabfrage von der Anzahl der zurückgegebenen Werte abhängt und die Unterabfrage extern ist Abhängigkeiten, Klassifizierung basierend auf Unterschieden in den Vergleichsoperatoren; dies wird häufig in SQL-Anweisungen für Paging-Abfragen verwendet.

1: Eigenschaften von Unterabfragen:

  1. Unterabfragen können in SELECT-, INSERT-, UPDATE-, DELETE- und anderen Anweisungen verschachtelt werden

  2. In den meisten Fällen fungieren Unterabfragen als Zwischenergebnismengen

  3. Unterabfragen können verschachtelt werden und die Verschachtelungsbeschränkungen variieren je nach Speicher und Komplexität des Ausdrucks

  4. Überall dort, wo ein Ausdruck verwendet werden kann, kann eine Unterabfrage verwendet werden, solange sie einen einzelnen Wert zurückgibt

2: Klassifizierung von Unterabfragen:

  1. Je nach Anzahl der Rückgabewerte kann es unterteilt werden in: Skalare Unterabfrage, mehrwertige Unterabfrage

  2. Je nach Unterabfrage, externe Abhängigkeit: unabhängige Unterabfrage, verwandte Unterabfrage

  3. entsprechend dem Unterschied der Vergleichsoperatoren: IN, EXISTS, ANY, SOME, ALL und andere Formen

Drei: Verwendung von Unterabfragen:

  1. Erstellen Sie zunächst zwei Tabellen (Schülertabelle und Lehrertabelle)

    # 创建学生表
    mysql> create table tb_student(
        -> stu_ID long,
        -> class varchar(5),
        -> score int
        -> );
    Query OK, 0 rows affected (0.23 sec)
    
    # 创建教师表
    mysql> create table tb_teacher(
        -> tea_ID long,
        -> class varchar(5),
        -> age int
        -> );
    Query OK, 0 rows affected (0.49 sec)
  2. Fügen Sie einige Werte in die Tabelle ein

    insert into tb_student values(1, "A", 20);
    
    insert into tb_student values(2, "A", 30);
    
    insert into tb_student values(3, "A", 70);
    
    insert into tb_student values(4, "B", 60);
    
    insert into tb_student values(5, "B", 70);
    
    insert into tb_student values(6, "B", 80);
    
    insert into tb_teacher values(1, "A", 25);
    
    insert into tb_teacher values(2, "B", 40);
  3. , die Vorbereitungsarbeiten sind abgeschlossen, und dann fahren Sie mit der Unterabfrageübung fort

  • Beispiel 1: Lehrer-ID jeder Klasse und die durchschnittliche Punktzahl der Klasse

    mysql> select tea_ID,
        -> (select avg(score) from tb_student as s where s.class = t.class group by class)
        -> as Avg from tb_teacher as t;
    +--------+---------+
    | tea_ID | Avg     |
    +--------+---------+
    | 1      | 40.0000 |
    | 2      | 70.0000 |
    +--------+---------+
    2 rows in set (0.00 sec)
  • Beispiel 2: Das Alter der Lehrer in jeder Klasse und die Anzahl der bestandenen Schüler in der Klasse (60 ist die Bestehensgrenze)

    mysql> select age,
        -> (select count(*) from tb_student as s where s.class = t.class && s.score >= 60 group by class)
        -> as Count from tb_teacher as t order by Count desc;
    +------+-------+
    | age  | Count |
    +------+-------+
    |   40 |     3 |
    |   25 |     1 |
    +------+-------+
    2 rows in set (0.00 sec)

Verwandte Empfehlung:

MySQL-Paging-Abfrageanweisungsdatenbank query_MySQL

Mysql-Limit-Unterabfrageanweisung_MySQL

Video: Erweiterte Datenabfrage – Where-Klausel – sechs Tage, um Sie durch MySQL zu führen

Das obige ist der detaillierte Inhalt vonWas ist eine MySQL-Unterabfrage? Beispiel für die tatsächliche Verwendung einer MySQL-Datenbank-Unterabfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn