Wie bewerten Sie Multi-Statement-SQL-Abfragen gleichzeitig und erhalten Sie das Ergebnis mit SQLite zurückgegeben?
Posted: 10 Apr 2025, 06:59
Ich erstelle eine Bildungsplattform, auf der die Schüler SQL-Abfragen in einem Monaco-Editor für Datenbank-Aufgaben schreiben. Das System richtet ihre Einreichungen automatisch aus, indem sie die Abfrageergebnisse mit den erwarteten Ausgängen vergleichen und Markierungen entsprechend zugewiesen. Ich verwende den Knoten: SQLite oder Bun: SQLite Module für SQLite-Operationen in einem Knoten oder Bun-Umgebung, aber ich drücke bei der Ausführung und Bewertung von Multi-Statement-SQL-Querien. Hier ist ein Beispiel:
EXEC () Begrenzung : Die Exec () kann mehrere Anweisungen gleichzeitig ausführen, aber keine Abfrageergebnisse zurückgeben. Für die automatische Ausbindung benötige ich die Ausgabe (z. B. aus ausgewählten Anweisungen), sodass dies nicht lebensfähig ist. Da ich keine Semikolons durchsetze, kann ich die Eingaben des Schülers nicht zuverlässig in separate Aussagen aufteilen. Es funktionierte für grundlegende Befehle (erstellen, einfügen, auswählen), unterstützt jedoch keine erweiterten Befehle wie Alter Table, wodurch es unzureichend ist. Ergebnisse : Eine Methode oder Bibliothek, die die vollständige SQL-Abfrage mit mehreren Statements ausführt und die Ergebnisse zurückgibt (z. B. die Auswahl ausgewählt). Sequentiell. Teilen Sie die SQL in eine Reihe von Aussagen auf. Es funktionierte für grundlegende Befehle (erstellen, einfügen, auswählen), unterstützt jedoch keine erweiterten Befehle wie Alter Table, wodurch es unzureichend ist.>
- Beispielzuweisung : Erstellen Sie einen Tabellenstudent mit Fields ID , Telefon , E -Mail und Alter einfügen und 4 Zeilen einfügen und die Tabelle anfragen. class = "Lang-SQL PrettyPrint-Override">
Code: Select all
-- Create the table CREATE TABLE student ( id INT PRIMARY KEY, phone VARCHAR(15), email VARCHAR(100), age INT ) -- Insert 4 rows into the table INSERT INTO student (id, phone, email, age) VALUES (1, '123-456-7890', 'student1@example.com', 20), (2, '234-567-8901', 'student2@example.com', 21), (3, '345-678-9012', 'student3@example.com', 22), (4, '456-789-0123', 'student4@example.com', 23) -- Query to fetch all student data SELECT * FROM student
EXEC () Begrenzung : Die Exec () kann mehrere Anweisungen gleichzeitig ausführen, aber keine Abfrageergebnisse zurückgeben. Für die automatische Ausbindung benötige ich die Ausgabe (z. B. aus ausgewählten Anweisungen), sodass dies nicht lebensfähig ist. Da ich keine Semikolons durchsetze, kann ich die Eingaben des Schülers nicht zuverlässig in separate Aussagen aufteilen. Es funktionierte für grundlegende Befehle (erstellen, einfügen, auswählen), unterstützt jedoch keine erweiterten Befehle wie Alter Table, wodurch es unzureichend ist. Ergebnisse : Eine Methode oder Bibliothek, die die vollständige SQL-Abfrage mit mehreren Statements ausführt und die Ergebnisse zurückgibt (z. B. die Auswahl ausgewählt). Sequentiell. Teilen Sie die SQL in eine Reihe von Aussagen auf. Es funktionierte für grundlegende Befehle (erstellen, einfügen, auswählen), unterstützt jedoch keine erweiterten Befehle wie Alter Table, wodurch es unzureichend ist.>