Verwendung von „Select“, „Distinct“ und „Limit“ in MySQL

Verwendung von „Select“, „Distinct“ und „Limit“ in MySQL

1. Einleitung

Dieser Blog ist sehr grundlegend. Wenn Sie über MySQL -Erfahrung verfügen, können Sie ihn überspringen. Dieser Blog richtet sich an Anfänger. Im Folgenden wird erläutert, wie Sie mit „Select“ eine einzelne Spalte, mehrere Spalten oder alle Spalten einer angegebenen Tabelle anzeigen.

Bereiten Sie zunächst eine Tabelle mit folgender Struktur vor:

Namen festlegen utf8mb4;
Setzen Sie FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Tabellenstruktur für Benutzer
-- ----------------------------
DROP TABLE, WENN `Benutzer` EXISTIERT;
CREATE TABLE `Benutzer` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Primärschlüssel',
  `name` varchar(255) NOT NULL COMMENT 'Benutzername',
  `Alter` int(11) NICHT NULL KOMMENTAR 'Alter',
  `sex` smallint(6) NOT NULL COMMENT 'Geschlecht',
  PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

Die Tabellendaten lauten wie folgt:

INSERT INTO `user` VALUES (1, 'Benutzername', 18, 1);
INSERT INTO `user` VALUES (2, 'Benutzer', 22, 1);
INSERT INTO `user` VALUES (3, 'Benutzer', 38, 1);
INSERT INTO `user` VALUES (4, 'Benutzer', 25, 1);
INSERT INTO `user` VALUES (5, 'Benutzername', 13, 0);
INSERT INTO `user` VALUES (6, 'Benutzer', 37, 1);

Setzen Sie FOREIGN_KEY_CHECKS = 1;

Beachten Sie, dass nach MySQL4.1 die Groß-/Kleinschreibung bei Datenbankschlüsselwörtern überhaupt nicht mehr beachtet wird; bei Datenbanknamen, Tabellennamen und Spaltennamen wird die Groß-/Kleinschreibung standardmäßig nicht beachtet, dies kann jedoch geändert werden (nicht empfohlen).

2. auswählen

2.1 Abfragen einer einzelnen Spalte

Geben Sie zunächst mittels use die zu bedienende Datenbank an.

mysql> verwende liziba;
Datenbank geändert

Als nächstes verwenden Sie select , um name aus der user abzufragen. Auf select folgt der Spaltenname und auf from “ der Tabellenname.

Wählen Sie den Spaltennamen aus dem Tabellennamen.

mysql> wähle den Namen vom Benutzer aus;
+--------+
| Name |
+--------+
| Pflaume Acht|
| Zhang San|
| Li Si|
| Wang Wu|
| Liu Mazi|
| Tianqi|
+--------+
6 Zeilen im Satz (0,00 Sek.)

2.2 Abfragen mehrerer Spalten

Der Unterschied zwischen der Abfrage mehrerer Spalten und einer einzelnen Spalte besteht darin, dass auf „Select“ mehrere durch Kommas getrennte Spaltennamen folgen.

Wählen Sie Spaltenname1, Spaltenname2 und Spaltenname3 aus Tabellenname.

mysql> wähle Name und Alter vom Benutzer aus;
+--------+-----+
| Name | Alter |
+--------+-----+
| Pflaume Acht | 18 |
| Zhang San | 22 |
| Li Si | 38 |
| Wang Wu| 25 |
| Sechs Pockennarben | 13 |
| 37 |
+--------+-----+
6 Zeilen im Satz (0,00 Sek.)

2.3 Alle Spalten abfragen

Es gibt zwei Möglichkeiten, alle Spalten abzufragen. Die erste besteht aus den beiden oben abgeleiteten Methoden, die alle Spaltennamen auflisten.

mysql> wähle ID, Name, Alter, Geschlecht vom Benutzer aus;
+----+--------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+--------+-----+-----+
| 1 | Pflaume 8 | 18 | 1 |
| 2 | Zhang San | 22 | 1 |
| 3 | Li Si | 38 | 1 |
| 4 | Wang Wu | 25 | 1 |
| 5 | Liu Mazi | 13 | 0 |
| 6 | Tianqi | 37 | 1 |
+----+--------+-----+-----+
6 Zeilen im Satz (0,00 Sek.)

Der zweite Typ, der auch von einigen Programmierern am häufigsten verwendete SQL , verwendet das Platzhalterzeichen *** **, um alle Spalten der Tabelle zu ersetzen.

Wählen Sie * aus Tabellenname;

mysql> wähle * vom Benutzer aus;
+----+--------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+--------+-----+-----+
| 1 | Pflaume 8 | 18 | 1 |
| 2 | Zhang San | 22 | 1 |
| 3 | Li Si | 38 | 1 |
| 4 | Wang Wu | 25 | 1 |
| 5 | Liu Mazi | 13 | 0 |
| 6 | Tianqi | 37 | 1 |
+----+--------+-----+-----+
6 Zeilen im Satz (0,00 Sek.)

Tipp: Dies ist für Programmierer tabu. Wenn wir nicht alle Spalten der Tabelle abrufen müssen und die Spaltennamen der Tabelle übertragen werden, sollten wir die Abfrage nicht für alle Daten verwenden, sondern die Datenbankspaltenabfrage angeben, was die Abfrageleistung verbessern kann.

3. deutlich

Wenn Sie Daten mit eindeutigen Spaltenwerten abfragen müssen, können Sie Duplikate mit distinct entfernen.

Wir fügen neue Daten in die obige Tabelle ein. Das age der Daten ist gleich dem von Li Zi Ba und auch sex ist gleich.

mysql> in Benutzer einfügen (Name, Alter, Geschlecht) Werte('Name', 18, 1);
Abfrage OK, 1 Zeile betroffen (0,01 Sek.)

Jetzt können Sie sehen, dass die Spalte „Alter“ gleiche Werte aufweist

mysql> wähle * vom Benutzer aus;
+----+--------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+--------+-----+-----+
| 1 | Pflaume 8 | 18 | 1 |
| 2 | Zhang San | 22 | 1 |
| 3 | Li Si | 38 | 1 |
| 4 | Wang Wu | 25 | 1 |
| 5 | Liu Mazi | 13 | 0 |
| 6 | Tianqi | 37 | 1 |
| 7 | Danke | 18 | 1 |
+----+--------+-----+-----+
7 Zeilen im Satz (0,00 Sek.)

An diesem Punkt möchten wir das Alter der Benutzer in der user abrufen. Wir können das Schlüsselwort distinct verwenden und es vor der Spalte anwenden, die dedupliziert werden muss.

mysql> wähle ein anderes Alter als der Benutzer aus;
+-----+
|Alter|
+-----+
| 18 |
| 22 |
| 38 |
| 25 |
| 13 |
| 37 |
+-----+
6 Zeilen im Satz (0,00 Sek.)

Dabei ist eines zu beachten . distinct wird auf alle Felder angewendet. Wenn auf das Schlüsselwort distinct mehrere Felder folgen, müssen die Werte der mehreren Felder unterschiedlich sein, um als nicht dupliziert zu gelten.

Wenn beispielsweise in der user keine eindeutigen Daten sowohl für age als auch name vorhanden sind, ist distinct nicht unwirksam, aber es existiert nicht.

mysql> wähle ein anderes Alter und einen anderen Namen als den des Benutzers aus;
+-----+--------+
| Alter | Name |
+-----+--------+
| 18 | Pflaume Acht |
| 22 | Zhang San|
| 38 | Li Si|
| 25 | Wang Wu|
| 13 | Sechs Pockennarben |
| 37 | Tianqi |
| 18 | Dankeschön Geschenk |
+-----+--------+
7 Zeilen im Satz (0,00 Sek.)


Wenn die auf das Schlüsselwort distinct folgenden Feldwerte nicht gleich sind, kann distinct dennoch zum Entfernen von Duplikaten verwendet werden. Beispielsweise haben Li Ziba und Xie Li das gleiche Alter und Geschlecht, sodass das Schlüsselwort distinct ein Datenelement herausfiltert.

mysql> wähle ein unterschiedliches Alter und Geschlecht des Benutzers aus;
+-----+-----+
| Alter | Geschlecht |
+-----+-----+
| 18 | 1 |
| 22 | 1 |
| 38 | 1 |
| 25 | 1 |
| 13 | 0 |
| 37 | 1 |
+-----+-----+
6 Zeilen im Satz (0,00 Sek.)

4. Begrenzen

Die vorherige Abfrage gibt alle Datensätze zurück, die die Bedingungen erfüllen. Wenn wir nur eine bestimmte Anzahl von Datensätzen benötigen, können wir limit verwenden, um die zurückgegebenen Zeilen zu begrenzen. Dieses Szenario wird häufig für die Datenpagierung verwendet.

Der limit muss eine Ganzzahl größer oder gleich 0 sein. Wenn eine negative Zahl oder Dezimalzahl übergeben wird, wird ein Fehler gemeldet.

mysql> Auswahl * ab Benutzerlimit 0;
Leerer Satz (0,00 Sek.)

mysql> Auswahl * ab Benutzerlimit 1;
+----+--------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+--------+-----+-----+
| 1 | Pflaume 8 | 18 | 1 |
+----+--------+-----+-----+
1 Zeile im Satz (0,00 Sek.)

Wenn der durch limit angegebene Wert größer als der Zeilendatensatzwert der Tabelle ist, werden alle Daten zurückgegeben. Wenn wir beispielsweise den Datensatzwert der Benutzertabelle über select count(1) abfragen, gibt es insgesamt 7 Daten. Wenn wir zu diesem Zeitpunkt 8 übergeben, tritt kein Fehler auf und MySQL fügt alle Daten in user Benutzertabelle zurück.

mysql> wähle count(1) vom Benutzer aus;
+----------+
| Anzahl(1) |
+----------+
| 7 |
+----------+
1 Zeile im Satz (0,01 Sek.)

mysql> Auswahl * ab Benutzerlimit 8;
+----+--------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+--------+-----+-----+
| 1 | Pflaume 8 | 18 | 1 |
| 2 | Zhang San | 22 | 1 |
| 3 | Li Si | 38 | 1 |
| 4 | Wang Wu | 25 | 1 |
| 5 | Liu Mazi | 13 | 0 |
| 6 | Tianqi | 37 | 1 |
| 7 | Danke | 18 | 1 |
+----+--------+-----+-----+
7 Zeilen im Satz (0,00 Sek.)

Auf limit können zwei Parameter folgen, um den Startwert, den Endwert oder ein geschlossenes Intervall (einschließlich Startwert und Endwert) darzustellen. Wenn ein Parameter folgt, gibt dieser den Endwert an und der Startwert ist standardmäßig 0. Beachten Sie, dass der Index der MySQL -Daten bei 0 beginnt.

limit 2 , 4 bedeutet, dass das dritte bis fünfte Datenelement abgefragt wird, deren Zeilennummern 2 bis 4 sind.

mysql> Auswahl * ab Benutzerlimit 2, 4;
+----+--------+-----+-----+
| ID | Name | Alter | Geschlecht |
+----+--------+-----+-----+
| 3 | Li Si | 38 | 1 |
| 4 | Wang Wu | 25 | 1 |
| 5 | Liu Mazi | 13 | 0 |
| 6 | Tianqi | 37 | 1 |
+----+--------+-----+-----+
4 Zeilen im Satz (0,00 Sek.)

Dies ist das Ende dieses Artikels über die Verwendung von MySQL Select, Distinct und Limit. Weitere Informationen zur Verwendung von MySQL Select, Distinct und Limit finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Eine kurze Diskussion zur MySQL-Select-Optimierungslösung
  • MySQL-Beispiel-Tutorial: Ergebnisse auswählen, um ein Update durchzuführen
  • Beheben Sie das Problem, dass die Lese-/Schreibtrennung von MySQL dazu führt, dass Daten nach dem Einfügen nicht ausgewählt werden
  • Wie die MySQL Select-Anweisung ausgeführt wird
  • Detailliertes Beispiel zur Verwendung der distinct-Methode in MySQL
  • Sollte ich zum Entfernen von Duplikaten in MySQL „distinct“ oder „group by“ verwenden?
  • Der Unterschied zwischen distinct und group by in MySQL
  • Lassen Sie uns ausführlich über die LIMIT-Anweisung in MySQL sprechen
  • Tutorial der MySQL-Reihe zum Verständnis der Verwendung der Schlüsselwörter „union“ (alles), „limit“ und „exists“
  • Die Auswirkungen des Limits auf die Abfrageleistung in MySQL

<<:  Führen Sie die Schritte aus, um schnell ein Vue3.0-Projekt zu erstellen

>>:  Detaillierte Erläuterung der Implementierung mehrerer dreispaltiger adaptiver CSS-Layouts

Artikel empfehlen

Einführung und Anwendungsbeispiele von ref und $refs in Vue

Vorwort In JavaScript müssen Sie document.querySe...

So konfigurieren Sie NAS unter Windows Server 2019

Vorwort Dieses Tutorial installiert die neuste Ve...

Anwendung von HTML und CSS in Flash

Anwendung von HTML und CSS in Flash: Ich habe zufä...

Ein Beispiel, wie Tomcat Session verwaltet

Sie haben ConcurrentHashMap gelernt, wissen aber ...

Detailliertes Beispiel des MySQL InnoDB-Sperrmechanismus

1. InnoDB-Sperrmechanismus Die InnoDB-Speicher-En...

CSS erzielt den Effekt der Vermischung zweier Elemente (Sticky-Effekt)

Ich erinnere mich, dass es vor ein paar Jahren in...

Zusammenfassung der Anwendungspraxis für Docker-Container des Node.js-Dienstes

In diesem Artikel wird die Verwendung und Install...

Einfache Implementierung zum Ausblenden der Bildlaufleiste in HTML

1. HTML-Tags mit Attributen XML/HTML-CodeInhalt i...

So verwenden Sie die Shell, um Batchvorgänge auf mehreren Servern auszuführen

Inhaltsverzeichnis SSH-Protokoll SSH Verbindungsp...

JavaScript zum Erzielen eines Klickbild-Flip-Effekts

Ich habe kürzlich an einem Projekt zur Gesichtser...

Analyse des Idea-Compiler-Vue-Einrückungsfehlerproblemszenarios

Projektszenario: Beim Ausführen des Vue-Projekts ...

mysql drei Tabellen verbunden, um eine Ansicht zu erstellen

Drei Tabellen sind miteinander verbunden. Feld a ...

Tutorial zur Installation und Konfiguration der Version MySQL 5.7.23

Ich habe drei Stunden gebraucht, um MySQL selbst ...

Installieren Sie eine virtuelle Python-Umgebung in Ubuntu 18.04

Nur als Referenz für Python-Entwickler, die Ubunt...