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

Detaillierte Zusammenfassung des JavaScript-Arrays

Inhaltsverzeichnis 1. Array-Induktion 1. Teilen S...

Detaillierte Erklärung der JavaScript-Datentypen

Inhaltsverzeichnis 1. Literale 1.1 Numerische Lit...

Analyse der Implementierung der Nginx Rush-Kaufstrombegrenzungskonfiguration

Aus geschäftlichen Gründen kommt es häufig zu Eil...

CSS3 Flexible Box Flex, um ein dreispaltiges Layout zu erreichen

Wie der Titel schon sagt: Die Höhe ist bekannt, d...

MySql-Wissenspunkte: Transaktion, Index, Sperrprinzip und Nutzungsanalyse

Dieser Artikel erläutert anhand von Beispielen di...

Eine kurze Analyse des Zeitproblems von MySQL

Der Standardzeittyp (Datum/Uhrzeit und Zeitstempe...

5 MySQL-GUI-Tools, die Ihnen bei der Datenbankverwaltung empfohlen werden

Es gibt viele Datenbankverwaltungstools für MySQL...

Zusammenfassung der gebräuchlichen Buchstaben in Unicode

Die meisten der ersten Computer konnten nur ASCII...

So wählen Sie alle untergeordneten Elemente aus und fügen ihnen in CSS Stile hinzu

Verfahren: Nehmen wir „less“ im tatsächlichen Pro...

Beispielcode für kreisförmigen Hover-Effekt mit CSS-Übergängen

Dieser Artikel stellt vor Online-Vorschau und Dow...

Das Homepage-Design spiegelt am besten das Niveau des Webdesigners wider

Bei den vielen Projekten, an denen ich mitgearbei...

Aggregatabfrage- und Union-Abfragevorgänge für MySQL-Datenbanken

Inhaltsverzeichnis 1. Einfügen der abgefragten Er...