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

TCP-Socket-SYN-Warteschlange und Accept-Warteschlangen-Unterschiedsanalyse

Zunächst müssen wir verstehen, dass ein TCP-Socke...

Tutorial zur Installation von jdk1.8 auf Ubuntu14.04

1. Laden Sie die JDK-Download-Adresse herunter我下載...

Studiennotizen zur MySQL Master-Slave-Konfiguration

● Ich hatte vor, einige Cloud-Daten zu kaufen, um...

So implementieren Sie Bildmapping mit CSS

1. Einleitung Mit Imagemaps können Sie Bereiche e...

Nutzerbedürfnisse führen zu marketingorientiertem Design

<br />Zu jedem unserer Themen bespricht das ...

So implementieren Sie die @person-Funktion über Vue

Dieser Artikel verwendet Vue und fügt Mausklicker...

Mehrere Methoden zur Lösung des Problems des MySQL-Fuzzy-Abfrageindexfehlers

Wenn wir das Platzhalterzeichen „like %“ verwende...

So verwenden Sie worker_threads zum Erstellen neuer Threads in nodejs

Einführung Wie im vorherigen Artikel erwähnt, gib...

Beispielcode zum Erstellen eines Dropdown-Menüs mit reinem CSS

Einführung: Als ich mir in letzter Zeit die Frage...

JavaScript implementiert Produktdetails der E-Commerce-Plattform

In diesem Artikel wird ein allgemeines Beispiel f...

Führen Sie die Schritte zum Upgrade von Nginx http auf https aus.

Der Unterschied zwischen http und https ist Bei m...

So installieren Sie eine virtuelle Maschine mit Windows-Diensten auf dem Mac

1. Laden Sie die virtuelle Maschine herunter Offi...