Einführung in vierzehn Fälle von SQL-Datenbank

Einführung in vierzehn Fälle von SQL-Datenbank

Datenblatt

/*
Navicat SQLite-Datenübertragung

Quellserver: Schule
Quellserverversion: 30808
Quellhost::0

Zielservertyp: SQLite
Zielserverversion: 30808
Dateikodierung: 65001

Datum: 2021-12-23 16:06:04
*/

PRAGMA Fremdschlüssel = OFF;

-- ----------------------------
-- Tabellenstruktur für Kurse
-- ----------------------------
DROP TABLE, WENN "main"."Kurs" EXISTIERT;
CREATE TABLE Kurs(
    courseid ganzzahliger Primärschlüssel, automatische Inkrementierung,
    courseme varchar(32),
    Lehrer-ID int
);

-- ----------------------------
-- Kursaufzeichnungen
-- ----------------------------
INSERT INTO "main"."Kurs" VALUES (3001, 'Chinesisch', 1001);
INSERT INTO "main"."Kurs" VALUES (3002, 'Mathematik', 1002);

-- ----------------------------
-- Tabellenstruktur für Mark
-- ----------------------------
DROP TABLE, WENN "main"."Mark" EXISTIERT;
TABELLE ERSTELLEN Mark(
    Benutzer-ID Ganzzahl,
    courseid Ganzzahl ungleich null,
    Punktzahl int Standard 0
);

-- ----------------------------
-- Aufzeichnungen von Mark
-- ----------------------------
INSERT INTO "main"."Mark" WERTE (2001, 3001, 89);
INSERT INTO "main"."Mark" WERTE (2001, 3002, 90);
INSERT INTO "main"."Mark" WERTE (2002, 3001, 66);
INSERT INTO "main"."Mark" WERTE (2003, 3002, 85);

-- ----------------------------
-- Tabellenstruktur für sqlite_sequence
-- ----------------------------
Tabelle löschen, wenn "main"."sqlite_sequence" vorhanden ist;
Tabelle erstellen sqlite_sequence(Name, Sequenz);

-- ----------------------------
-- Aufzeichnungen von sqlite_sequence
-- ----------------------------
INSERT INTO "main"."sqlite_sequence" VALUES ('Lehrer', 1002);
INSERT INTO "main"."sqlite_sequence" VALUES ('Student', 2002);
INSERT INTO "main"."sqlite_sequence" VALUES ('Kurs', 3002);

-- ----------------------------
-- Tabellenstruktur für Studenten
-- ----------------------------
DROP TABLE, WENN "main"."Student" EXISTIERT;
CREATE TABLE Student(
    Benutzer-ID, ganzzahliger Primärschlüssel, automatische Inkrementierung
    Benutzername varchar(32),
    Nutzung int,
    Benutzersex varchar(32)
);

-- ----------------------------
-- Aufzeichnungen des Studenten
-- ----------------------------
INSERT INTO "main"."Student" VALUES (2001, 'Xiao Ming', 18, 'männlich');
INSERT INTO "main"."Student" VALUES (2002, 'Xiaohong', 18, 'weiblich');

-- ----------------------------
- Tabellenstruktur für Lehrer
-- ----------------------------
DROP TABLE, WENN "main"."Lehrer" EXISTIERT;
CREATE TABLE Lehrer(
    Lehrer-ID, ganzzahliger Primärschlüssel, automatische Inkrementierung
    Lehrername varchar(32)
);

-- ----------------------------
- Aufzeichnungen des Lehrers
-- ----------------------------
INSERT INTO "main"."Teacher" VALUES (1001, 'Teacher');
INSERT INTO "main"."Lehrer" VALUES (1002, "Li Si");

Frage:

1. Abfrage der Studentenausweise aller Studenten, deren Ergebnisse im Kurs „Chinesisch“ schlechter sind als die im Kurs „Mathematik“

Wählen Sie eine Benutzer-ID aus 
(Wählen Sie Benutzer-ID, Punktzahl von Mark, wo Kurs-ID = '3001')a,
(Wählen Sie Benutzer-ID und Punktzahl von Mark, wobei Kurs-ID = „3002“ ist)b 
wobei a.userid = b.userid und a.score<b.score;

2. Abfrage des Studierendenausweises und der Durchschnittsnote von Studierenden, deren Durchschnittsnote über 60 Punkte liegt

wähle userid,avg(score) von Mark
Gruppieren nach Benutzer-ID 
mit einem Durchschnitt(score)>60;

3. Abfrage der Matrikel-ID, des Namens, der Anzahl der gewählten Kurse und der Gesamtpunktzahl aller Studenten

select s.userid ,s.username ,count_courseid als Anzahl der ausgewählten Kurse, 
sum_score als Gesamtpunktzahl der Schüler
links beitreten 
(Wählen Sie Benutzer-ID, Anzahl (Kurs-ID) als Anzahl_Kurs-ID, Summe (Punktzahl) als Summe_Punktzahl 
von Mark group by userid )sc
ein s.userid = sc.userid;

4. Abfrage der Anzahl der Lehrer mit dem Nachnamen „Li“:

Wählen Sie Anzahl (Lehrername)
vom Lehrer 
wobei der Lehrername wie '张%' aussieht;

5. Suchen Sie nach den Studentenausweisen von Studenten, deren Chinesischkursergebnisse unter 60 liegen, sortiert in absteigender Reihenfolge nach Ergebnissen:

Benutzer-ID und Punktzahl auswählen
von Mark
wobei courseid = '3001'
und Punktzahl<60
Sortieren nach Punktzahl absteigend;

6. Fragen Sie die Namen der Schüler ab, die einen Kurs des Lehrers „Zhang San“ besucht haben oder nicht.

Benutzernamen auswählen  
von Student 
wobei die Benutzer-ID in (
    Benutzer-ID auswählen  
    von Mark, Kurs, Lehrer 
    wobei Course.teacherid = Teacher.teacherid und Mark.courseid = Course.courseid
    und Lehrer.Lehrername = "Zhang San"
);

7. Abfrage aller Wahlfächer, Lehrveranstaltungsnummern und Lehrveranstaltungsnamen aller Studierenden:

Wählen Sie die Kurs-ID, Courseme 
vom Kurs 
wo Kurs-ID in (wählen Sie Kurs-ID aus der Markierungsgruppe nach Kurs-ID aus);

8. Rufen Sie den Studentenausweis eines Studenten ab, der zwei Kurse belegt hat:

Benutzer-ID auswählen 
von Mark
Gruppieren nach Benutzer-ID 
mit Anzahl(8) == 2;

9. Abfrage der einzelnen Lehrveranstaltungen und der dazugehörigen Anzahl an Wahlfachstudierenden

Wählen Sie Kurs-ID, Anzahl (*) aus der Kursgruppe nach Kurs-ID;

10. Fragen Sie den Namen und die Note des Schülers mit der besten Note unter den Schülern ab, die den Kurs des Lehrers „Zhang San“ gewählt haben.

wählen Sie Student.Benutzername, Mark.score
von Mark 
links bei Student anmelden auf Mark.userid = Student.userid 
Kurs beigetreten links auf Mark.courseid = Course.courseid 
links beitreten Lehrer auf Course.teacherid = Teacher.teacherid 
wobei Lehrer.Lehrername = "Zhang San"
und Mark.score = (
wähle max(Punktzahl) 
von Mark sc_1 
wobei Mark.courseid = sc_1.courseid);

11. Die Anzahl der Studierenden, die den Kurs gewählt haben:

wähle count(2) aus 
(wählen Sie eine andere Benutzer-ID als Mark)a;

12. Abfrage der Studenten-ID und des Namens des Studenten, dessen Kurscode „Chinesisch“ ist und dessen Kurspunktzahl über 80 Punkte liegt

Wählen Sie Mark.userid,Student.username  
von Mark 
links bei Student anmelden auf Mark.userid = Student.userid 
wobei Mark.courseid = „3001“ und Mark.score > 80;

13. Fragen Sie die Durchschnittsnote jedes Kurses ab und sortieren Sie die Ergebnisse aufsteigend nach der Durchschnittsnote. Wenn die Durchschnittsnoten gleich sind, sortieren Sie sie absteigend nach der Kursnummer.

Kurs-ID auswählen, Durchschnitt (Punktzahl)
von Mark 
nach Kurs-ID gruppieren 
Sortieren nach Durchschnitt (Punktzahl), Kurs-ID absteigend;

14. Fragen Sie die Namen und Noten von Studierenden ab, deren Kursname „Mathematik“ ist und deren Noten höher als 85 sind:

Wählen Sie c.courseme, Student.userid, Student.username, Mark.score
ab Kurs c
links neben Mark auf Mark.courseid = c.courseid 
LEFT JOIN Student auf Student.Benutzer-ID = Mark.Benutzer-ID 
wobei c.courseme = „Mathematik“ und Mark.score > 85;

Dies ist das Ende dieses Artikels über die vierzehn SQL-Datenbankfälle. Weitere relevante Inhalte zu SQL-Datenbankfällen 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:
  • Fallanalyse mehrerer MySQL-Aktualisierungsvorgänge
  • Die 10 klassischen Optimierungsfälle und -szenarien von MySQL
  • Detaillierte Erläuterung zum SQL Server-Batch-Einfügen von Daten

<<:  Detaillierte Erläuterung der Vorgänge und Implementierungen im Zusammenhang mit dem HTML-Druck

>>:  Eine einfache Methode, um mit der Mindestbreite und Mindesthöhe von IE6 kompatibel zu sein

Artikel empfehlen

So schreiben Sie den Einführungsinhalt der Infoseite der Website

Alle Websites, ob offiziell, E-Commerce, soziale ...

JavaScript zum Erreichen eines einfachen Bildwechsels

In diesem Artikel wird der spezifische Code für J...

So verwenden Sie Binlog zur Datenwiederherstellung in MySQL

Vorwort Kürzlich wurden Daten online falsch bearb...

Detaillierte Erläuterung der Js-Klassenkonstruktion und Vererbungsfälle

Die Definition und Vererbung von Klassen in JS si...

Zusammenfassung der Befehle zur Benutzerverwaltung im Linux-System

Benutzer- und Gruppenverwaltung 1. Grundlegende K...

Rendern im Vue-Scaffolding verstehen

Im Vue-Gerüst können wir sehen, dass im neuen Vue...

MySQL-Datenbank Daten laden, vielfältige Verwendungsmöglichkeiten

Inhaltsverzeichnis Vielfältige Einsatzmöglichkeit...

JavaScript implementiert Konstellationsabfragefunktion mit detailliertem Code

Inhaltsverzeichnis 1. Titel 2. Code 3. Ergebnisse...

Detaillierte Erklärung des Linux Namespace-Benutzers

Der Benutzer-Namespace ist ein neuer Namespace, d...

Verwendung der hasOwnProperty-Methode des js-Attributobjekts

Die Methode hasOwnProperty() des Objekts gibt ein...

Installieren Sie CentOS 7 auf VMware14 – Grafik-Tutorial

Einführung in CentOS CentOS ist eine Linux-Distri...

So veröffentlichen Sie statische Ressourcen in Nginx

Schritt Platzieren Sie die vorbereiteten statisch...

Viewport-Parameter für mobile Browser (Web-Frontend-Design)

Mobile Browser platzieren Webseiten in einem virtu...

Eine kurze Diskussion über ereignisgesteuerte Entwicklung in JS und Nodejs

Inhaltsverzeichnis Ereignisgesteuert und Publish-...