Heim  >  Artikel  >  Datenbank  >  SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

青灯夜游
青灯夜游nach vorne
2022-02-21 10:55:225655Durchsuche

In unserem Entwicklungsprozess verwenden wir häufig mehrere Abfrageergebnisse, die direkt angezeigt werden sollen. Wie sollten wir also abfragen? In diesem Artikel geht es um das Erlernen von SQL. Werfen wir einen Blick auf das Schlüsselwort UNION in SQL und hoffen, dass es für alle hilfreich ist.

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

Das Schlüsselwort UNION in SQL zeigt die Ergebnisse mehrerer Abfragebedingungen an.

UNION

   Die chinesische Bedeutung von UNION ist Vereinigung, also das Zusammenführen der Ergebnisse von zwei oder mehr SELECT-Anweisungen. Die Verwendungstipps lauten wie folgt:

  • Jede SELECT-Anweisung innerhalb von UNION muss die gleiche Anzahl von Spalten haben.
  • Spalten müssen ähnliche Datentypen haben.
  • Die Reihenfolge der Spalten in jeder SELECT-Anweisung muss gleich sein.

Die gleiche Anzahl von Spalten

Verwenden Sie wie unten gezeigt die im vorherigen Kapitel eingeführten Daten als Demonstrationsdaten

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

Erstellen Sie Tabellen separats_user 和表s_user_1

CREATE TABLE `s_user` (
  `userid` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `pass_word` varchar(255) DEFAULT NULL,
  `salt` varchar(255) DEFAULT NULL,
  `state` varchar(255) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

Die Testdaten lauten wie folgt:

INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小米', '小米', '123123', '123', '1', '2022-02-10 19:48:43');
INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43');

INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小红', '小红', '123123', '123', '1', '2022-02-10 19:48:43');
INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小黄', '小黄', '123123', '123', '1', '2022-02-10 19:48:43');

Jede SELECT-Anweisung Innerhalb von UNION muss die gleiche Anzahl von Spalten vorhanden sein: Fragen Sie zuerst SQL

SELECT * FROM `s_user` UNION SELECT * FROM `s_user_1`

mit denselben Spalten ab, um alle Spalten abzufragen. Sie können sehen, dass die Ausführungsergebnisse wie folgt sind.

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

Wenn die erste Abfrage alle Spalten und die zweite Abfrage drei Felder betrifft, was ist das Abfrageergebnis? Führen Sie nun die folgende SQL aus:

Falsche Verwendung

SELECT * FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

Fehler Nachricht: Die SELECT-Anweisung wird verwendet, um eine unterschiedliche Anzahl von Spalten abzufragen

Richtige Verwendung

SELECT userid,name,pass_word  FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

Datentyp

Wir haben oben gesehen, dass die Anzahl der Spalten in mehreren Abfragen gleich sein muss, dann die Anzahl der Spalten abgefragt Wenn sie gleich sind, aber die Datentypen der Abfragefelder unterschiedlich sind, können sie dann normal verarbeitet werden? Ersetzen Sie als Nächstes pass_word in der s_user-Abfrage durch create_time to query. Sie können es nach der Abfrage sehen. Bei SQL-Abfragen ist der Datentyp der Spalte irrelevant. Im tatsächlichen Geschäft werden sie natürlich nicht auf unterschiedliche Typen festgelegt.

SELECT userid,name,create_time  FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

Spaltenreihenfolge

 Hat es bei der Abfrage das UNION-Schlüsselwort mit der Reihenfolge der Spalten zu tun? Also lasst es uns testen. Sie sehen, dass die Ausführungsergebnisse nichts mit der Reihenfolge der Spalten zu tun haben. Im tatsächlichen Geschäft werden mehrere Abfragen zusammengeführt, daher muss die Reihenfolge der Spalten, die wir im Projekt definieren, konsistent sein.

SELECT create_time,userid,name  FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

Der Unterschied zwischen UNION und UNION ALL

  Um den Unterschied zwischen UNION und UNION ALL zu testen, müssen Sie [Xiaobai] in der Datentabelle s_user_1 hinzufügen, und [Xiaobai] in der Tabelle s_user sind beide vorhanden in der Datenbank, und die beiden werden ein was für unterschiedliches Ergebnis haben.

INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (3, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43');

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

Erste Ausführung:

SELECT user_name,name,pass_word,salt
FROM `s_user` UNION SELECT user_name,name,pass_word,salt FROM `s_user_1`

Ausführungsergebnis:

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

Erneut ausführen

SELECT user_name,name,pass_word,salt
FROM `s_user` UNION ALL SELECT user_name,name,pass_word,salt FROM `s_user_1`

Ausführungsergebnis:

SQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION

Sie können sehen, dass doppelte Elemente entfernt wurden ON-Zuordnung und UNION ALL-Abfrage werden angezeigt Alle Werte, keine Duplikate entfernt.

Fazit

  Okay, das Obige ist die Verwendung des UNION-Schlüsselworts in SQL. Vielen Dank fürs Lesen. Wenn es Ihnen gefällt, liken Sie es bitte und speichern Sie es. Wenn es Mängel gibt, kommentieren und korrigieren Sie diese bitte. Bis zum nächsten Mal.

Empfohlenes Lernen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen