MySQL-Datenbank muss SQL-Anweisungen kennen (erweiterte Version)

MySQL-Datenbank muss SQL-Anweisungen kennen (erweiterte Version)

Dies ist eine erweiterte Version. Die Fragen und SQL-Anweisungen lauten wie folgt.

Erstellen Sie eine Benutzertabelle und legen Sie die Felder „ID“, „Name“, „Geschlecht“ und „Sal“ fest, wobei „ID“ der Primärschlüssel ist.

Tabelle löschen, wenn Benutzer vorhanden sind; 
Tabelle erstellen, falls keine Benutzer vorhanden sind ( 
  id int(5) Primärschlüssel auto_increment, 
  Name varchar(10) eindeutig nicht null,   
  Geschlecht varchar(1) nicht null, 
  sal int(5) nicht null 
); 
in Benutzer (Name, Geschlecht, Sal.) Werte (,AA‘, ,男‘, 1000) einfügen; 
in Benutzer (Name, Geschlecht, Sal.) Werte (,BB‘,,Geschlecht‘,1200) einfügen;

--------------------------------------------------------------------------------------------------

Eins-zu-eins: Wie lautet die ID-Nummer von AA?

Tabelle löschen, wenn Benutzer vorhanden sind; 
Tabelle erstellen, falls keine Benutzer vorhanden sind ( 
  id int(5) Primärschlüssel auto_increment, 
  Name varchar(10) eindeutig nicht null,   
  Geschlecht varchar(1) nicht null, 
  sal int(5) nicht null 
); 
in Benutzer (Name, Geschlecht, Sal.) Werte (,AA‘, ,男‘, 1000) einfügen; 
in Benutzer (Name, Geschlecht, Sal.) Werte (,BB‘,,Geschlecht‘,1200) einfügen; 
Tabelle löschen, wenn Karten vorhanden sind; 
Tabelle erstellen, falls keine Karten vorhanden sind ( 
  id int(5) Primärschlüssel auto_increment, 
  num int(3) ungleich null eindeutig, 
  loc varchar(10) nicht null, 
  uid int(5) ungleich null unique, 
  Einschränkung uid_fk Fremdschlüssel (uid) verweist auf Benutzer (id) 
); 
in Karten einfügen (Num, Ort, UID) Werte (111, „Insel“, 1); 
in Karten einfügen (Num, Ort, UID) Werte (222, „Eingabe“, 2);

[Hinweis: Inner Join bedeutet Inner Join]

wähle u.name "Name",c.num "ID-Nummer" 
von Benutzern u Inner Join-Karten c 
auf u.id = c.uid 
wobei u.name = 'AA'; 
-- 
wähle u.name "Name",c.num "ID-Nummer" 
von Benutzern u Inner Join-Karten c 
auf u.id = c.uid 
wobei Name = „AA“;

---------------------------------------------

One-to-many: Abfrage der Mitarbeiter in der „Entwicklungsabteilung“

Erstellen der Gruppentabelle

Tabelle löschen, wenn Gruppen vorhanden sind; 
Tabelle erstellen, falls keine Gruppen vorhanden sind ( 
  id int(5) Primärschlüssel auto_increment, 
  Name varchar(10) nicht null 
); 
in Gruppen (Name) Werte ('Entwicklungsabteilung') einfügen; 
in Gruppen (Name) Werte ('Verkaufsabteilung') einfügen;

Erstellen der emps-Tabelle

Tabelle löschen, falls vorhanden, emps; 
Tabelle erstellen, falls nicht vorhanden emps( 
  id int(5) Primärschlüssel auto_increment, 
  Name varchar(10) nicht null, 
  gid int(5) ungleich null, 
  Einschränkung gid_fk Fremdschlüssel (gid) Referenzen Gruppen (id) 
); 
in emps(name,gid) Werte einfügen('Name',1); 
in emps(name,gid) Werte einfügen('Name',1); 
in emps(name,gid) Werte einfügen('Name',2); 
in emps(name,gid) Werte einfügen('Name',2);

Prüfen Sie, welche Mitarbeiter in der Entwicklungsabteilung sind

select g.name "Abteilung",e.name "Mitarbeiter" 
von Gruppen g innerer Join emps e 
auf g.id = zBgid 
wobei g.name = „Entwicklungsabteilung“; 
-- 
select g.name "Abteilung",e.name "Mitarbeiter" 
von Gruppen g innerer Join emps e 
auf g.id = zBgid 
wobei g.name = „Entwicklungsabteilung“;

------------------------------------------------------

Viele-zu-viele: Abfrage, welche Schüler "Zhao" unterrichtet hat

Erstellen Sie die Studententabelle

Tabelle löschen, wenn Studenten vorhanden sind; 
Tabelle erstellen, falls keine Studenten vorhanden sind ( 
  id int(5) Primärschlüssel auto_increment, 
  Name varchar(10) nicht null 
); 
in Studenten (Name) Werte ('Studentenname') einfügen; 
in Studenten (Name) Werte einfügen ('Studentenname');

Erstellen Sie den Lehrertisch

Tabelle löschen, wenn Lehrer vorhanden sind; 
Tabelle erstellen, falls keine Lehrer vorhanden sind ( 
  id int(5) Primärschlüssel auto_increment, 
  Name varchar(10) nicht null 
); 
in Lehrer(Name) Werte('赵') einfügen; 
in Lehrer(Name) Werte('Name') einfügen;

Erstellen Sie die mittlere Tabelle. Der Primärschlüssel (sid, tid) stellt den gemeinsamen Primärschlüssel dar. Die beiden Felder müssen eindeutig sein.

Tabelle löschen, wenn Mitten vorhanden sind; 
Tabelle erstellen, falls keine Mitte vorhanden ist ( 
  sid int(5), 
  Einschränkung sid_fk Fremdschlüssel (sid) verweist auf Studenten (id), 
  tid int(5), 
  Einschränkung tid_fk Fremdschlüssel (tid) verweist auf Lehrer (id), 
  Primärschlüssel (Sid, Tid)  
); 
in Mitten (sid, tid) Werte (1,1) einfügen; 
in Mitten (sid, tid) Werte (1,2) einfügen; 
in Mitten (sid, tid) Werte (2,1) einfügen; 
in Mitten (sid, tid) Werte (2,2) einfügen;

Abfrage, welche Schüler "Zhao" unterrichtet hat

wähle t.name "Lehrer",s.name "Schüler" 
von Schülern s innerer Join Mitte m innerer Join Lehrer t 
am (s.id=m.sid) und (m.tid=t.id) 
wobei t.name = "Zhao"; 
-- 
wähle t.name "Lehrer",s.name "Schüler" 
von Schülern s innerer Join Mitte m innerer Join Lehrer t  
am (s.id=m.sid) und (t.id=m.tid) 
wobei t.name = "Zhao";

--------------------------------------------------------------------------------------------------------------------

Mitarbeiter mit einem Gehalt von 5.000 RMB oder mehr werden als „Hochgehalt“ gekennzeichnet, andernfalls als „Einstiegsgehalt“.

Mitarbeiter mit einem Gehalt von NULL als „unbezahlt“ identifizieren

Mitarbeiter mit einem Gehalt von 5.000 RMB oder mehr werden als „Hochgehalt“ gekennzeichnet, andernfalls als „Einstiegsgehalt“.

Mitarbeiter mit einem Gehalt von 7.000 Yuan werden als „hohes Gehalt“ gekennzeichnet, Mitarbeiter mit einem Gehalt von 6.000 Yuan als „mittleres Gehalt“ und Mitarbeiter mit einem Gehalt von 5.000 Yuan als „Einstiegsgehalt“, andernfalls als „Probegehalt“.

---------------------------------------------------------------------------------------------------------------------

Inner Join (äquivalenter Join): Abfrage Kundenname, Bestellnummer, Bestellpreis

[Hinweis: Der innere Join „customers c“ für Bestellungen o verwendet einen Alias, daher wird „o“ von nun an für Bestellungen stehen]

select c.name "Kundenname", o.isbn "Bestellnummer", o.price "Bestellpreis" 
von Kunden c innere Join-Aufträge o 
ein c.id = o.customers_id; 
-- 
select c.name "Kundenname", o.isbn "Bestellnummer", o.price "Bestellpreis" 
von Kunden c innere Join-Bestellungen o 
ein c.id = o.customers_id;

on+ Die Bedingung für die Verbindung zweier Tabellen. Der Primärschlüssel einer Tabelle und der Fremdschlüssel einer anderen Tabelle

Inner Join: Es können nur Datensätze abgefragt werden, die gemäß den Join-Bedingungen in beiden Tabellen vorhanden sind, was in gewisser Weise der Schnittmenge in der Mathematik ähnelt.

----------------------------------------------------

Äußere Verbindung: Gruppieren nach Kunden und Abfrage des Namens und der Anzahl der Bestellungen jedes Kunden

Äußerer Join: Sie können die Datensätze in beiden Tabellen basierend auf den Join-Bedingungen abfragen, oder Sie können die Datensätze in einer Tabelle abfragen, auch wenn die andere Tabelle die Bedingungen nicht erfüllt.

Äußere Verknüpfungen können wie folgt unterteilt werden:

<Left Outer Join: Mit der linken Seite als Referenz bedeutet Left Outer Join: select c.name, count(o.isbn) 
von Kunden c Left Outer Join-Aufträge o 
auf c.id = o.customers_id 
Gruppierung nach c.name; 
-- 
>Rechter äußerer Join: Mit der rechten Seite als Referenz bedeutet rechter äußerer Join „select c.name, count(o.isbn)“ 
von Bestellungen o rechter äußerer Join Kunden c 
auf c.id = o.customers_id 
Gruppierung nach c.name;

Left Outer Join bedeutet, dass der gesamte Inhalt links angezeigt wird, z. B. Kunden c Left Out Join bedeutet, dass der gesamte Inhalt einer Spalte in Kunden gefunden wird

------------------------------------------------------
Selbstbeitritt: Finden Sie heraus, dass der Chef von AA EE ist. Stellen Sie sich vor, Sie wären zwei Tische. Einer auf jeder Seite

Wählen Sie users.ename,bosss.ename 
von emps-Benutzern innerlich beitreten emps-Chefs 
auf users.mgr = bosss.empno; 
Wählen Sie users.ename,bosss.ename 
von emps-Benutzern links außen beitreten emps-Chefs 
auf users.mgr = bosss.empno;

-----------------------------------------------------------------------------------------------
Funktionen in MySQL demonstrieren (Abfragehandbuch)

Datums- und Uhrzeitfunktionen:

Wählen Sie addtime('2016-8-7 23:23:23','1:1:1'); Zeitaddition wählen Sie current_date(); 
wähle aktuelle_Zeit(); 
jetzt auswählen(); 
wähle Jahr (jetzt()); 
Monat auswählen (jetzt()); 
Tag auswählen (jetzt()); 
Wählen Sie Datediff('2016-12-31',jetzt());

Zeichenfolgenfunktionen:

wähle Zeichensatz('Zeichensatz'); 
wähle concat('hallo','haha','ma'); 
wählen Sie instr('www.baidu.com','baidu'); 
Wählen Sie Teilzeichenfolge („www.baidu.com“, 5,3);

Mathematische Funktionen:

wähle bin(10); 
select floor(3.14); //Die größte Ganzzahl kleiner als 3,14 --- positive 3 
select floor(-3.14); //Die größte Ganzzahl kleiner als -3.14 --- negative 4 
select ceiling(3.14); //Die kleinste Ganzzahl größer als 3,14 --- positive 4 
select ceiling(-3.14);//Die kleinste Ganzzahl größer als -3,14 --- negativ 3, muss ein ganzzahliger Wert sein select format(3.1415926,3); behalte 3 Dezimalstellen, runde auf select mod(10,3);//Hole den Rest select rand();//

Verschlüsselungsfunktion:

Wählen Sie md5('123456');

Gibt die 32-Bit Hexadezimalzahl e10adc3949ba59abbe56e057f20f883e zurück

Demonstrieren Sie Flusssteuerungsanweisungen in MySQL

verwende JSON; 
Tabelle löschen, wenn Benutzer vorhanden sind; 
Tabelle erstellen, falls keine Benutzer vorhanden sind ( 
  id int(5) Primärschlüssel auto_increment, 
  Name varchar(10) ungleich null eindeutig, 
  sal int(5) 
); 
in Benutzer (Name, Sal) Werte ('Benutzer', 3000) einfügen; 
in Benutzer (Name, Sal) Werte ('Name', 4000) einfügen; 
in Benutzer (Name, Sal) Werte ('Benutzer', 5000) einfügen; 
in Benutzer (Name, Sal) Werte ('Name', 6000) einfügen; 
in Benutzer (Name, Sal) Werte ('Name', 7000) einfügen; 
in Benutzer (Name, Sal) Werte ('丝丝', 8000) einfügen; 
in Benutzer (Name, Sal) Werte ('Benutzername', 9000) einfügen; 
in Benutzer (Name, Sal) Werte ('Benutzer', 10000) einfügen; 
in Benutzer (Name, Sal) Werte ('Name', NULL) einfügen;

Mitarbeiter mit einem Gehalt von 5.000 RMB oder mehr werden als „Hochgehalt“ gekennzeichnet, andernfalls als „Einstiegsgehalt“.

select name "Name",sal "Gehalt", 
    if(sal>=5000,"hohes Gehalt","Anfangsgehalt") "Beschreibung" 
von Benutzern;

Mitarbeiter mit einem Gehalt von NULL als „unbezahlt“ identifizieren

wähle den Namen "Name",ifnull(sal,"unbezahlt") "Gehalt" 
von Benutzern;

Mitarbeiter mit einem Gehalt von 5.000 RMB oder mehr werden als „Hochgehalt“ gekennzeichnet, andernfalls als „Einstiegsgehalt“.

select name "Name",sal "Gehalt", 
    Fall, wenn sal>=5000 dann "hohes Gehalt" 
    else "Einstiegsgehalt" end "Beschreibung" 
von Benutzern;

Mitarbeiter mit einem Gehalt von 7.000 Yuan werden als „hohes Gehalt“ gekennzeichnet, Mitarbeiter mit einem Gehalt von 6.000 Yuan als „mittleres Gehalt“ und Mitarbeiter mit einem Gehalt von 5.000 Yuan als „Einstiegsgehalt“, andernfalls als „Probegehalt“.

select name "Name",sal "Gehalt", 
    fall sal 
      wenn 3000 dann "niedriges Gehalt" 
      wenn 4000 dann "Einstiegsgehalt" 
      wenn 5000 dann "Probegehalt" 
      wenn 6000 dann "mittleres Gehalt" 
      wenn 7000 dann "besseres Gehalt" 
      wenn 8000 dann "kein schlechtes Gehalt" 
      wenn 9000 dann "hohes Gehalt" 
      sonst "hohes Gehalt" 
    Ende "Beschreibung" 
von Benutzern;

Oben sind die vom Herausgeber eingeführten, unverzichtbaren SQL-Anweisungen für die MySQl-Datenbank (erweiterte Version). Ich hoffe, sie sind für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • So verwenden Sie C zum Ausführen von SQL-Anweisungen in einer MySQL-Datenbank
  • Zusammenfassung von sechs nützlichen SQL-Anweisungen für MySQL-Datenbankoperationen
  • MySql-Datenbank - Tabelle ändern - SQL-Anweisungssatz
  • Zusammenfassung grundlegender SQL-Anweisungen in der MySQL-Datenbank
  • Grafisches Tutorial zum Herunterladen und Installieren von MySQL 5.7.14 sowie MySQL-Datenbank-Anweisungseintrag
  • Detaillierte Erläuterung der Insert- und Update-Anweisungen in MySQL-Datenbanken
  • Detaillierte Erläuterung der Optimierung von Abfrageanweisungen in der MySQL-Datenbank
  • Freigabe von Umbenennungsanweisungen für MySQL-Datenbanken
  • Detaillierte Erklärung der Verwendung von INSERT-, UPDATE-, DELETE- und REPLACE-Anweisungen in der MySQL-Datenbank
  • Erweitert und Zusammenfassung häufig verwendeter SQL-Anweisungen in MySQL-Datenbanken

<<:  So beheben Sie das Eingabe-Jitter-Problem beim WeChat-Applet

>>:  Unterschiede zwischen diesem Schlüsselwort in NodeJS und Browsern

Artikel empfehlen

js, um die Rotation von Webseitenbildern zu realisieren

In diesem Artikel wird der spezifische Code von j...

Detaillierte Erklärung der Javascript-Grundlagen

Inhaltsverzeichnis Variable Datentypen Erweiterun...

Beispielcode zur Implementierung eines gepunkteten Rahmen-Scrolleffekts mit CSS

Wir sehen oft einen coolen Effekt, wenn die Maus ...

Vue + SSM realisiert den Vorschaueffekt beim Hochladen von Bildern

Die aktuelle Anforderung lautet: Es gibt eine Sch...

Konfigurationsmethode für die Mehrfachauswahlfunktion von React Mouse

Im Allgemeinen verfügen Listen über Auswahlfunkti...

Vue.js implementiert eine einfache Timerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

So erzielen Sie mit CSS einen Daten-Hotspot-Effekt

Die Wirkung ist wie folgt: analysieren 1. Hier se...

Beispiel für die Kompilierung von LNMP im Docker-Container

Inhaltsverzeichnis 1. Projektbeschreibung 2. Ngin...

Eine kurze Diskussion über die Eigenschaften von CSS-Float

In diesem Artikel werden die Eigenschaften von CS...

Verwendung von relativen und absoluten Pfaden unter Linux

01. Übersicht Absolute und relative Pfade kommen ...

Detaillierte Erläuterung der Docker Volume-Berechtigungsverwaltung

Das Datenvolumen ist ein wichtiges Konzept von Do...