So verwenden Sie DQL-Befehle zum Abfragen von Daten in MySQL

So verwenden Sie DQL-Befehle zum Abfragen von Daten in MySQL

In diesem Artikel zeigt Ihnen der Blogger die häufig verwendete Datenabfragesprache in MySQL.

DQL (Datenabfragesprache)

SELECT-Syntax

AUSWÄHLEN [ALLE | UNTERSCHIEDLICH]
{ * | Tabelle.* | [Tabelle.Feld1 [als Alias1][,Tabelle.Feld2] [als Alias2][,...]]}
VON Tabellenname [als Tabellenalias]
[left | out | inner join table_name2] #Gemeinsame Abfrage [WHERE ...] #Geben Sie die Bedingungen an, die die Ergebnisse erfüllen müssen [GROUP BY ...] #Geben Sie an, nach welchen Feldern die Ergebnisse gruppiert werden sollen [HAVING ...] #Sekundäre Bedingungen, die zum Filtern gruppierter Datensätze erfüllt sein müssen [ODER BY ...] #Geben Sie an, dass die Abfragedatensätze nach einer oder mehreren Bedingungen sortiert werden [LIMIT [Offset, Anzahl der zurückgegebenen Ergebnisdatensätze]; #Geben Sie an, welche Datensätze von welchen bis zu welchen abgefragt werden sollen

Grundlegende Abfrageanweisungen und AS

Die folgenden Beispiele verwenden Daten aus der Studententabelle.

Um alle Datenspalten in einer Tabelle abzufragen, verwenden Sie das Symbol „*“, was ineffizient ist.

wähle * vom Studenten;

Die Abfragespalte kann angegeben werden, was sehr effizient ist.

Wählen Sie „StudentName, Phone“ des Studenten aus.

Funktion und Verwendung der AS-Klausel

Hinweis: AS kann weggelassen werden

(1) Sie können der Datenspalte einen neuen Alias ​​zuweisen

Wählen Sie StudentName als „Studentenname“ aus dem Studenten;

(2) Geben Sie der Tabelle einen Alias

wähle stu.address von Student als Stu;

(3) Sie können das Ergebnis einer Berechnung oder Zusammenfassung durch einen anderen, neuen Namen ersetzen.

WÄHLEN SIE Telefon +1 als Tel. vom Studenten;

DISTINCT-Schlüsselwort

Funktion: Entfernen Sie doppelte Werte aus der SELECT-Abfrage (wenn alle zurückgegebenen Werte gleich sind, wird nur ein Datensatz zurückgegeben).

Grammatik:

SELECT DISTINCT Feldname1, Feldname2, ... aus Tabellenname

Hinweis: Das Schlüsselwort ALL ist das Standardschlüsselwort und gibt alle Datensätze zurück.

Beim Filtern doppelter Werte in mehreren Spalten wird der Filter nur ausgeführt, wenn in allen zum Filtern ausgewählten Spalten doppelte Werte vorhanden sind.

SELECT DISTINCT StudentNo, Adresse des Studenten;

Filtern einer einzelnen Spalte: Abfrage der Adresse in der Studententabelle

WÄHLEN SIE EINE UNTERSCHIEDLICHE Adresse vom Studenten aus;

Ausdrücke in SQL-Anweisungen

SELECT VERSION(),100*3 als Produkt; #Gibt die MySQL-Version und die Berechnungsergebnisse zurück SELECT NOW() 'aktuelle Zeit'; #Gibt die aktuelle Zeit zurück 

Vermeiden Sie SQL-Rückgabeergebnisse mit ".", "*" und Klammern, die das Entwicklungssprachenprogramm beeinträchtigen

SELECT VERSION() als MySQL_V,12.3*100 als Ausdruck;
#Die zurückgegebenen Ergebnisse werden nicht mit dem Hintergrundentwicklungsprogramm verwechselt

KONTACT

SELECT CONCAT(studentName,'@.com') als E-Mail vom Studenten;

Hinzufügen numerischer Typen

Wählen Sie StudentNo+100 vom Studenten;

Vergleichsoperatoren und Platzhalter

Where-Bedingungsanweisung: Wird verwendet, um Datensätze abzurufen, die die Bedingungen in der Datentabelle erfüllen

Die Suchbedingung kann aus einem oder mehreren logischen Ausdrücken bestehen und das Ergebnis ist im Allgemeinen wahr oder falsch.

Zusammensetzung der Suchbedingungen: logische Operatoren, Vergleichsoperatoren

#wobei bedingte Anweisung select * from student where address='Student';
 
#Fragen Sie die Namen der Studenten ab, deren Telefonnummern in der Studententabelle nicht null sind. Wählen Sie „StudentName“ unter den Studenten aus, bei denen die Telefonnummer nicht null ist.
 
#Fragen Sie die Namen der Studenten ab, deren Telefonnummern in der Studententabelle leer sind. Wählen Sie „StudentName“ unter „Student“ aus, bei dem „Phone“ null ist.
 
#Frage die gerade gelöschten Daten ab – leerer Wert, wähle „StudentName“ vom Studenten, wobei „Telefon“ = „“ ist;
 
# BETWEEN AND arbeitet mit Zeitbereichen

Logische Operatoren

Vergleichsoperatoren

Verwenden Sie das Schlüsselwort LIKE für die unscharfe Suche

  • Wird mit "%" verwendet, um 0 oder eine beliebige Anzahl von Zeichen abzugleichen
  • Wird mit „_“ verwendet, um einem einzelnen Zeichen zu entsprechen
#Fragen Sie den Namen des Studenten mit dem Nachnamen Zhang* in der Studententabelle ab. SELECT StudentName from student where studentname like '张_';
 
SELECT StudentName vom Studenten, wobei Studentenname wie '%丽%' ist;
# IN
SELECT * vom Studenten, wobei die Adresse in ('Sichuan', 'Shanghai') liegt.

Beachten:

  • Arithmetische Operationen können nur zwischen Datensätzen numerischer Datentypen durchgeführt werden
  • Es können nur Daten des gleichen Datentyps verglichen werden

NULL

  • null bedeutet „kein Wert“
  • Unterscheiden Sie zwischen dem Nullwert 0 und der leeren Zeichenfolge " "
  • Kann nur in Feldern erscheinen, die so definiert sind, dass sie NULL zulassen
  • Sie müssen den Vergleichsoperator IS NULL oder IS NOT NULL verwenden, um zu vergleichen

Inner Join und Selbstabfrage

Wenn Sie Daten aus mehreren Tabellen abfragen müssen, können Sie den Join-Operator verwenden, um mehrere Abfragen zu implementieren.

Zu den Kategorien gehören:

  • Innerer Join:
    • Äquivalente und nicht äquivalente Join-Abfragen
    • Selbstverbindungsabfrage
  • Äußerer Join
    • LINKS VERBINDEN
    • RECHTS JION

ORDER BY Sortierabfrage

Sortieren Sie die Ergebnisse der Select-Anweisungsabfrage nach bestimmten Feldern

Mit DESC (absteigende Reihenfolge) oder ASC (aufsteigende Reihenfolge) verwenden, die Standardeinstellung ist ASC.

Nehmen wir als Beispiel die Daten der Fächertabelle und der Notentabelle:

SELECT * vom Betreff ORDER BY classhour; #Aufsteigend SELECT * vom Betreff ORDER BY classhour desc; #Absteigend

Sortieren nach mehreren Feldern: Zuerst nach dem ersten Feld sortieren, dann nach dem zweiten Feld sortieren. Wenn die Daten im ersten Feld identisch sind, sortieren Sie nach dem zweiten Feld.

SELECT * aus dem Betreff ORDER BY classHour,GradeID; 

LIMIT Seitennummerierung

LIMIT [m,] n oder LIMIT n OFFSET m

Begrenzen Sie die Anzahl der von einem SELECT zurückgegebenen Zeilen.

m ist der Offset der ersten zurückgegebenen Datensatzzeile

n Gibt die Anzahl der Zeilen zurück

Beachten:

  • Wenn m nicht angegeben ist, beträgt der Offset 0 und die ersten n Datensätze werden beginnend mit dem ersten Datensatz zurückgegeben.
  • LIMIT wird häufig für die Seitenanzeige verwendet
  • Wenn die Daten die Tabelle überschreiten, alle anzeigen

Zum Beispiel:

SELECT * FROM grade LIMIT 3; #Gibt die ersten 3 Datensätze zurück SELECT * FROM grade LIMIT 1,3; #Gibt 2~4 Datensätze zurück 

Gesamtzahl der Datensätze: total

SELECT COUNT(subjectNO) 'Gesamtdaten' vom Betreff; 

Gesamtzahl der Seiten: int totalPage = total % Seitengröße ==0 ? total / Seitengröße : total / Seitengröße + 1

Unterabfragen

In der WHERE-Klausel der Abfrageanweisung ist eine weitere Abfrageanweisung verschachtelt

Hinweis: Das von der Unterabfrage zurückgegebene Ergebnis ist im Allgemeinen eine Sammlung. Es wird empfohlen, das Schlüsselwort IN zu verwenden

Wählen Sie Betreffname aus Betreff aus
wobei gradeID IN
(Wählen Sie GradeID aus der Note); 

Aggregatfunktionen

Häufig verwendete statistische Funktionen: COUNT(), SUM(), AVG(), MAX(), MIN()

SELECT COUNT(StudentNo) 'Gesamtdaten' FROM student;
SELECT sum(classHour) 'Gesamtzahl der Unterrichtsstunden' aus dem Betreff;
SELECT AVG(classHour) 'Durchschnittliche Unterrichtsstunden' FROM Subject;
SELECT MAX(classHour) 'Längste Unterrichtsstunden' FROM Subject;
SELECT MIN(classHour) 'Kürzeste Unterrichtsstunden' FROM Subject;

GRUPPELN NACH

Verwenden des Schlüsselworts GROUP BY zum Gruppieren von Abfrageergebnissen

  • Alle Daten gruppieren
  • Es können mehrere Gruppierungsfelder vorhanden sein und diese werden der Reihe nach gruppiert.
  • Wird in Verbindung mit HAVING verwendet, um Daten nach der Gruppierung zu filtern.

Nehmen wir als Beispiel den Studententisch

(1) Gruppieren Sie die Studierendentabelle nach Adressen und führen Sie eine Gruppierung nach durch

SELECT Adresse, COUNT(Adresse) FROM Student GROUP BY Adresse; 

HAVING Eine sekundäre Bedingung, die die Datensätze in der Filtergruppe erfüllen müssen

(2) Gruppieren Sie die Studententabelle nach Adressen, wobei die HAVING-Bedingung erfüllt ist, wobei Adresse = 1

SELECT GROUP_CONCAT(Studentenname), COUNT(Adresse) FROM student GROUP BY Adresse HAVING COUNT(Adresse)=1; 

Zusammenführen UNION, UNION

  • ALLUNION #Identische Daten zusammenführen
  • UNION ALL #Alle Daten zusammenführen

Hinweis: Beim Zusammenführen zweier Tabellen muss die Anzahl der Spalten gleich sein.

Wenn die Anzahl der Spalten in den beiden Tabellen unterschiedlich ist, wird der folgende Fehler gemeldet:

[SQL]SELECT * FROM Klasse UNION SELECT * FROM Schüler;
[Err] 1222 - Die verwendeten SELECT-Anweisungen haben eine unterschiedliche Anzahl von Spalten

(1) Führen Sie die Fachtabelle und die Schülertabelle zusammen

SELECT * FROM Betreff UNION SELECT * FROM Student;  
Wählen Sie * aus dem Fach UNION ALL Wählen Sie * aus dem Studenten; 

Unterabfrage EXISTIERT ——> wahr falsch

EXISTS / NOT EXISTS Wenn die Bedingung der Unterabfrage erfüllt ist, wird das Ergebnis der übergeordneten Abfrage angezeigt, andernfalls wird kein Ergebnis angezeigt

(1) Die Bedingung der Unterabfrage ist wahr (Grade-ID 1 bis 5 in der Grad-Tabelle existiert 1)

Wählen Sie Betreffname, Noten-ID aus Betreff
WO GIBT ES 
(AUSWÄHLEN * VON Klasse WHERE GradeID=1);

oder

Wählen Sie Betreffname, Noten-ID aus Betreff
WO ES NICHT GIBT 
(AUSWÄHLEN * VON Klasse, WO Klassen-ID=999); 

(2) Die Bedingung der Unterabfrage ist falsch (Grade-ID 1 bis 5 existiert in der Gradtabelle 999 nicht).

Wählen Sie Betreffname, Noten-ID aus Betreff
WO GIBT ES 
(AUSWÄHLEN * VON Klasse, WO Klassen-ID=999);

oder

Wählen Sie Betreffname, Noten-ID aus Betreff
WO ES NICHT GIBT 
(AUSWÄHLEN * VON Klasse WHERE GradeID=1); 

Unterabfrage (beliebig und alle)

ANY: Wenn in der Beurteilungsbedingung ein beliebiger Wert in der Unterabfrage die Bedingung erfüllt, wird die übergeordnete Abfrage ausgeführt.
ALLE: Wenn in der Beurteilungsbedingung alle Werte in der Unterabfrage die Bedingung erfüllen, wird die übergeordnete Abfrage ausgeführt
(1) Wenn die Bedingung erfüllt ist: subject.gradeid >= grade.gradeid, führe die übergeordnete Abfrage aus

Wählen Sie Betreffname, Noten-ID aus dem Betreff aus. 
Wo Noten-ID >=Beliebig
(Wählen Sie GradeID aus Note); 

(2) Wenn die Bedingung nicht erfüllt ist: all subject.gradeid >= grade.gradeid, wird die übergeordnete Abfrage nicht ausgeführt.

Wählen Sie Betreffname, Noten-ID aus dem Betreff aus. 
Wo Noten-ID >=ALLE
(Wählen Sie GradeID aus Note); 

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • MySQL-Lerndatenbank-Suchanweisung DQL Xiaobai Kapitel
  • Detaillierte Erklärung der DQL-Operationen in der MySQL-Syntax

<<:  Vue verwendet die Methode in der Referenzbibliothek mit Quellcode

>>:  Docker-Installation Tomcat Dubbo-Admin-Instanz-Kenntnisse

Artikel empfehlen

So fügen Sie eine Schnittstellen-Abhörmaske in ein Vue-Projekt ein

1. Geschäftshintergrund Die Verwendung einer Mask...

Detaillierter Installationsprozess und Prinzip des Vue-Routers

Inhaltsverzeichnis 1. Implementierungsprinzip des...

Eine kurze Diskussion über Schreibregeln für Docker Compose

Dieser Artikel stellt nichts im Zusammenhang mit ...

So fügen Sie Bilder in HTML-Seiten ein und fügen Kartenindexbeispiele hinzu

1. Im Web unterstützte Bildformate: GIF: kann 256...

28 berühmte Beispiele für Blog-Redesigns

1. WebDesignerWall 2. Veerles Blog 3. Lernprogram...

Detaillierte Erklärung zum Problem der CSS-Klassennamen

Die folgenden CSS-Klassennamen, die mit einer Zah...

Konvertierung von virtuellem Dom in reales Dom mit Vue

Es gibt eine andere Baumstruktur Javascript-Objek...

Tabelle td Bild horizontal und vertikal zentriert Code

HTML Code: Code kopieren Der Code lautet wie folgt...

HTML-Grundlagen HTML-Struktur

Was ist eine HTML-Datei? HTML steht für Hyper Text...

Detaillierte Schritte zur Installation von Docker in 5 Minuten

Für die Installation von Docker auf CentOS muss d...

Spezifische Verwendung des Node.js-Paketmanagers npm

Inhaltsverzeichnis Zweck npm init und package.jso...