Ich habe fast keine Erfahrung mit SQL, Ich habe gelernt, wie man mit SQLite in Node.js, C # </ span>, Python3 und HSP3 umgeht. (Derzeit funktioniert es nur mit SQL-Anweisungen.)
Node.js ist irgendwie in TypeScript geschrieben, löschen Sie also die Typennotation für jede automatische Methode. (Vielleicht nur ein zusammenfassendes Versprechen)
Node.js node-sqlite3 Unten installiert.
> npm i sqlite3
> dotnet add package Microsoft.Data.Sqlite
Python sqlite3 Da es sich um eine Standardbibliothek handelt, ist keine zusätzliche Installation erforderlich.
HSP sqlele Da es sich um eine Standardbibliothek handelt, ist keine zusätzliche Installation erforderlich.
Öffnen Sie die Datenbank, Wenn Sie keine Tabelle haben, erstellen Sie eine Tabelle (CREATE), Element hinzufügen (EINFÜGEN), Schließen Sie die Datenbank.
Die Spalte "ID" ist auf AUTO INCREMENT gesetzt.
SQL
Befehl
> sqlite3 sqlitest.db < sqlitest.sql
CREATE TABLE IF NOT EXISTS DMCARDS (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT,
COLOR TEXT,
COST INTEGER,
POWER INTEGER
);
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('La Ura Giga','Licht',1,2000)
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Aquawache','Wasser',1,2000)
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Knochenschleim','Dunkelheit',1,1000)
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Blaze Claw','Feuer',1,1000)
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Schnepfenmücke','Natur',1,2000)
Node.js
const sqlite=require("sqlite3");
var db=new sqlite.Database("../sqlitest.db",err=>{
db.serialize(()=>{
db.run(`CREATE TABLE IF NOT EXISTS DMCARDS (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT,COLOR TEXT,
COST INTEGER,
POWER INTEGER
)`);
db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('La Ura Giga','Licht',1,2000)");
db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Aquawache','Wasser',1,2000)");
db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Knochenschleim','Dunkelheit',1,1000)");
db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Blaze Claw','Feuer',1,1000)");
db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Schnepfenmücke','Natur',1,2000)");
db.close();
});
});
C#
using System;
using Microsoft.Data.Sqlite;
class Program{
static void Main(){
using(var db=new SqliteConnection("Data Source=../sqlitest.db")){
db.Open();
var sql=db.CreateCommand();
sql.CommandText=@"CREATE TABLE IF NOT EXISTS DMCARDS (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT,
COLOR TEXT,
COST INTEGER,
POWER INTEGER
)";
sql.ExecuteNonQuery();
sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('La Ura Giga','Licht',1,2000)";
sql.ExecuteNonQuery();
sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Aquawache','Wasser',1,2000)";
sql.ExecuteNonQuery();
sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Knochenschleim','Dunkelheit',1,1000)";
sql.ExecuteNonQuery();
sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Blaze Claw','Feuer',1,1000)";
sql.ExecuteNonQuery();
sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Schnepfenmücke','Natur',1,2000)";
sql.ExecuteNonQuery();
}
}
}
Python
import sqlite3
with sqlite3.connect("../sqlitest.db") as db:
db.row_factory=sqlite3.Row
sql=db.cursor()
sql.execute("""CREATE TABLE IF NOT EXISTS DMCARDS (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT,COLOR TEXT,
COST INTEGER,
POWER INTEGER
)""")
sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('La Ura Giga','Licht',1,2000)")
sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Aquawache','Wasser',1,2000)")
sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Knochenschleim','Dunkelheit',1,1000)")
sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Blaze Claw','Feuer',1,1000)")
sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Schnepfenmücke','Natur',1,2000)")
HSP
#runtime "hsp3cl"
#include "sqlele.hsp"
sql_open "../sqlitest.db"
makeTable={"CREATE TABLE IF NOT EXISTS DMCARDS (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT,COLOR TEXT,
COST INTEGER,
POWER INTEGER
)"}
sql_q makeTable
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('La Ura Giga','Licht',1,2000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Aquawache','Wasser',1,2000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Knochenschleim','Dunkelheit',1,1000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Blaze Claw','Feuer',1,1000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Schnepfenmücke','Natur',1,2000)"
sql_close
Öffnen Sie die Datenbank, WÄHLEN Sie alle Tabellen aus, Schließen Sie die Datenbank.
SQL
SELECT * FROM DMCARDS;
Node.js
const sqlite=require("sqlite3");
var db=new sqlite.Database("../sqlitest.db",err=>{
db.serialize(()=>{
console.log("ID,NAME,COLOR,COST,POWER");
db.each("SELECT * FROM DMCARDS",(err,row)=>{
console.log(`${row["ID"]},${row["NAME"]},${row["COLOR"]},${row["COST"]},${row["POWER"]}`);
});
db.close();
});
});
C#
using System;
using Microsoft.Data.Sqlite;
class Program{
static void Main(){
using(var db=new SqliteConnection("Data Source=../sqlitest.db")){
db.Open();
var sql=db.CreateCommand();
sql.CommandText="SELECT * FROM DMCARDS";
using(var row=sql.ExecuteReader()){
Console.WriteLine("ID,NAME,COLOR,COST,POWER");
while(row.Read()){
Console.WriteLine($"{row["ID"]},{row["NAME"]},{row["COLOR"]},{row["COST"]},{row["POWER"]}");
}
}
}
}
}
Python
import sqlite3
with sqlite3.connect("../sqlitest.db") as db:
db.row_factory=sqlite3.Row
sql=db.cursor()
print("ID,NAME,COLOR,COST,POWER")
for row in sql.execute("SELECT * FROM DMCARDS"):
print(f'{row["ID"]},{row["NAME"]},{row["COLOR"]},{row["COST"]},{row["POWER"]}')
HSP
#runtime "hsp3cl"
#include "sqlele.hsp"
sql_open "../sqlitest.db"
mes "ID,NAME,COLOR,COST,POWER"
sdim rows
sql_q "SELECT * FROM DMCARDS",rows
repeat stat
mes sql_v("ID",rows)+","+sql_v("NAME",rows)+","+sql_v("COLOR",rows)+","+sql_i("COST",rows)+","+sql_i("POWER",rows)
sql_next rows
loop
sql_close
Öffnen Sie die Datenbank, Ändern Sie die Tabelle (UPDATE), Schließen Sie die Datenbank.
SQL
UPDATE DMCARDS SET COLOR='Weiß' WHERE COLOR='Licht';
UPDATE DMCARDS SET COLOR='Blau' WHERE COLOR='Wasser';
UPDATE DMCARDS SET COLOR='schwarz' WHERE COLOR='Dunkelheit';
UPDATE DMCARDS SET COLOR='rot' WHERE COLOR='Feuer';
UPDATE DMCARDS SET COLOR='Grün' WHERE COLOR='Natur';
Node.js
const sqlite=require("sqlite3");
var db=new sqlite.Database("../sqlitest.db",err=>{
db.serialize(()=>{
db.run("UPDATE DMCARDS SET COLOR='Weiß' WHERE COLOR='Licht'");
db.run("UPDATE DMCARDS SET COLOR='Blau' WHERE COLOR='Wasser'");
db.run("UPDATE DMCARDS SET COLOR='schwarz' WHERE COLOR='Dunkelheit'");
db.run("UPDATE DMCARDS SET COLOR='rot' WHERE COLOR='Feuer'");
db.run("UPDATE DMCARDS SET COLOR='Grün' WHERE COLOR='Natur'");
db.close();
});
});
C#
using System;
using Microsoft.Data.Sqlite;
class Program{
static void Main(){
using(var db=new SqliteConnection("Data Source=../sqlitest.db")){
db.Open();
var sql=db.CreateCommand();
sql.CommandText="UPDATE DMCARDS SET COLOR='Weiß' WHERE COLOR='Licht'";
sql.ExecuteNonQuery();
sql.CommandText="UPDATE DMCARDS SET COLOR='Blau' WHERE COLOR='Wasser'";
sql.ExecuteNonQuery();
sql.CommandText="UPDATE DMCARDS SET COLOR='schwarz' WHERE COLOR='Dunkelheit'";
sql.ExecuteNonQuery();
sql.CommandText="UPDATE DMCARDS SET COLOR='rot' WHERE COLOR='rot'";
sql.ExecuteNonQuery();
sql.CommandText="UPDATE DMCARDS SET COLOR='Grün' WHERE COLOR='Natur'";
sql.ExecuteNonQuery();
}
}
}
Python
import sqlite3
with sqlite3.connect("../sqlitest.db") as db:
db.row_factory=sqlite3.Row
sql=db.cursor()
sql.execute("UPDATE DMCARDS SET COLOR='Weiß' WHERE COLOR='Licht'")
sql.execute("UPDATE DMCARDS SET COLOR='Blau' WHERE COLOR='Wasser'")
sql.execute("UPDATE DMCARDS SET COLOR='schwarz' WHERE COLOR='Dunkelheit'")
sql.execute("UPDATE DMCARDS SET COLOR='rot' WHERE COLOR='Feuer'")
sql.execute("UPDATE DMCARDS SET COLOR='Grün' WHERE COLOR='Natur'")
HSP
#runtime "hsp3cl"
#include "sqlele.hsp"
sql_open "../sqlitest.db"
sql_q "UPDATE DMCARDS SET COLOR='Weiß' WHERE COLOR='Licht'"
sql_q "UPDATE DMCARDS SET COLOR='Blau' WHERE COLOR='Wasser'"
sql_q "UPDATE DMCARDS SET COLOR='schwarz' WHERE COLOR='Dunkelheit'"
sql_q "UPDATE DMCARDS SET COLOR='rot' WHERE COLOR='Feuer'"
sql_q "UPDATE DMCARDS SET COLOR='Grün' WHERE COLOR='Natur'"
sql_close
Öffnen Sie die Datenbank, Wenn die Tabelle vorhanden ist, lassen Sie die Tabelle fallen und Schließen Sie die Datenbank.
SQL
DROP TABLE IF EXISTS DMCARDS;
Node.js
const sqlite=require("sqlite3");
var db=new sqlite.Database("../sqlitest.db",err=>{
db.serialize(()=>{
db.run("DROP TABLE IF EXISTS DMCARDS");
db.close();
});
});
C#
using System;
using Microsoft.Data.Sqlite;
class Program{
static void Main(){
using(var db=new SqliteConnection("Data Source=../sqlitest.db")){
db.Open();
var sql=db.CreateCommand();
sql.CommandText="DROP TABLE IF EXISTS DMCARDS";
sql.ExecuteNonQuery();
}
}
}
Python
import sqlite3
with sqlite3.connect("../sqlitest.db") as db:
db.row_factory=sqlite3.Row
sql=db.cursor()
sql.execute("DROP TABLE IF EXISTS DMCARDS")
HSP
#runtime "hsp3cl"
#include "sqlele.hsp"
sql_open "../sqlitest.db"
sql_q "DROP TABLE IF EXISTS DMCARDS"
sql_close
Die Datenbankoperationen bis zu diesem Punkt werden als Funktion zusammengefasst. (Ausgenommen SQL-Anweisungen. Kann ich Funktionen in SQLite verwenden?)
SQL
--Datenbank löschen
DROP TABLE IF EXISTS DMCARDS;
--Datenbank(Tabelle)Initialisieren
CREATE TABLE IF NOT EXISTS DMCARDS (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT,COLOR TEXT,
COST INTEGER,
POWER INTEGER
);
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('La Ura Giga','Licht',1,2000);
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Aquawache','Wasser',1,2000);
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Knochenschleim','Dunkelheit',1,1000);
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Blaze Claw','Feuer',1,1000);
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Schnepfenmücke','Natur',1,2000);
--Datenbank anzeigen
SELECT * FROM DMCARDS;
SELECT '--------------------------------------';
--Datenbank ändern
UPDATE DMCARDS SET COLOR='Weiß' WHERE COLOR='Licht';
UPDATE DMCARDS SET COLOR='Blau' WHERE COLOR='Wasser';
UPDATE DMCARDS SET COLOR='schwarz' WHERE COLOR='Dunkelheit';
UPDATE DMCARDS SET COLOR='rot' WHERE COLOR='Feuer';
UPDATE DMCARDS SET COLOR='Grün' WHERE COLOR='Natur';
--Datenbank anzeigen
SELECT * FROM DMCARDS;
Node.js
const sqlite=require("sqlite3");
//Datenbank(Tabelle)Initialisieren
function makeDB():Promise<void>{
return new Promise(resolve=>{
var db=new sqlite.Database("../sqlitest.db",err=>{
db.serialize(()=>{
db.run(`CREATE TABLE IF NOT EXISTS DMCARDS (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT,COLOR TEXT,
COST INTEGER,
POWER INTEGER
)`);
db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('La Ura Giga','Licht',1,2000)");
db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Aquawache','Wasser',1,2000)");
db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Knochenschleim','Dunkelheit',1,1000)");
db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Blaze Claw','Feuer',1,1000)");
db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Schnepfenmücke','Natur',1,2000)");
db.close(resolve);
});
});
});
}
//Datenbank auf den neusten Stand bringen
function updateDB():Promise<void>{
return new Promise(resolve=>{
var db=new sqlite.Database("../sqlitest.db",err=>{
db.serialize(()=>{
db.run("UPDATE DMCARDS SET COLOR='Weiß' WHERE COLOR='Licht'");
db.run("UPDATE DMCARDS SET COLOR='Blau' WHERE COLOR='Wasser'");
db.run("UPDATE DMCARDS SET COLOR='schwarz' WHERE COLOR='Dunkelheit'");
db.run("UPDATE DMCARDS SET COLOR='rot' WHERE COLOR='Feuer'");
db.run("UPDATE DMCARDS SET COLOR='Grün' WHERE COLOR='Natur'");
db.close(resolve);
});
});
});
}
//Datenbank löschen
function dropDB():Promise<void>{
return new Promise(resolve=>{
var db=new sqlite.Database("../sqlitest.db",err=>{
db.serialize(()=>{
db.run("DROP TABLE IF EXISTS DMCARDS");
db.close(resolve);
});
});
});
}
//Datenbank ändern
function viewDB():Promise<void>{
return new Promise(resolve=>{
var db=new sqlite.Database("../sqlitest.db",err=>{
db.serialize(()=>{
console.log("ID,NAME,COLOR,COST,POWER");
db.each("SELECT * FROM DMCARDS",(err,row)=>{
console.log(`${row["ID"]},${row["NAME"]},${row["COLOR"]},${row["COST"]},${row["POWER"]}`);
});
db.close(resolve);
});
});
});
}
(async function(){
await dropDB();
await makeDB();
await viewDB();
await updateDB();
await viewDB();
})();
C#
using System;
using Microsoft.Data.Sqlite;
class Program{
//Datenbank(Tabelle)Initialisieren
static void makeDB(){
using(var db=new SqliteConnection("Data Source=../sqlitest.db")){
db.Open();
var sql=db.CreateCommand();
sql.CommandText=@"CREATE TABLE IF NOT EXISTS DMCARDS (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT,
COLOR TEXT,
COST INTEGER,
POWER INTEGER
)";
sql.ExecuteNonQuery();
sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('La Ura Giga','Licht',1,2000)";
sql.ExecuteNonQuery();
sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Aquawache','Wasser',1,2000)";
sql.ExecuteNonQuery();
sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Knochenschleim','Dunkelheit',1,1000)";
sql.ExecuteNonQuery();
sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Blaze Claw','Feuer',1,1000)";
sql.ExecuteNonQuery();
sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Schnepfenmücke','Natur',1,2000)";
sql.ExecuteNonQuery();
}
}
//Datenbank ändern
static void updateDB(){
using(var db=new SqliteConnection("Data Source=../sqlitest.db")){
db.Open();
var sql=db.CreateCommand();
sql.CommandText="UPDATE DMCARDS SET COLOR='Weiß' WHERE COLOR='Licht'";
sql.ExecuteNonQuery();
sql.CommandText="UPDATE DMCARDS SET COLOR='Blau' WHERE COLOR='Wasser'";
sql.ExecuteNonQuery();
sql.CommandText="UPDATE DMCARDS SET COLOR='schwarz' WHERE COLOR='Dunkelheit'";
sql.ExecuteNonQuery();
sql.CommandText="UPDATE DMCARDS SET COLOR='rot' WHERE COLOR='rot'";
sql.ExecuteNonQuery();
sql.CommandText="UPDATE DMCARDS SET COLOR='Grün' WHERE COLOR='Natur'";
sql.ExecuteNonQuery();
}
}
//Datenbank löschen
static void dropDB(){
using(var db=new SqliteConnection("Data Source=../sqlitest.db")){
db.Open();
var sql=db.CreateCommand();
sql.CommandText="DROP TABLE IF EXISTS DMCARDS";
sql.ExecuteNonQuery();
}
}
//Datenbank anzeigen
static void viewDB(){
using(var db=new SqliteConnection("Data Source=../sqlitest.db")){
db.Open();
var sql=db.CreateCommand();
sql.CommandText="SELECT * FROM DMCARDS";
using(var row=sql.ExecuteReader()){
Console.WriteLine("ID,NAME,COLOR,COST,POWER");
while(row.Read()){
Console.WriteLine($"{row["ID"]},{row["NAME"]},{row["COLOR"]},{row["COST"]},{row["POWER"]}");
}
}
}
}
static void Main(){
dropDB();
makeDB();
viewDB();
updateDB();
viewDB();
}
}
Python
import sqlite3
#Datenbank(Tabelle)Initialisieren
def makeDB():
with sqlite3.connect("../sqlitest.db") as db:
db.row_factory=sqlite3.Row
sql=db.cursor()
sql.execute("""CREATE TABLE IF NOT EXISTS DMCARDS (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT,COLOR TEXT,
COST INTEGER,
POWER INTEGER
)""")
sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('La Ura Giga','Licht',1,2000)")
sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Aquawache','Wasser',1,2000)")
sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Knochenschleim','Dunkelheit',1,1000)")
sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Blaze Claw','Feuer',1,1000)")
sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Schnepfenmücke','Natur',1,2000)")
#Datenbank ändern
def updateDB():
with sqlite3.connect("../sqlitest.db") as db:
db.row_factory=sqlite3.Row
sql=db.cursor()
sql.execute("UPDATE DMCARDS SET COLOR='Weiß' WHERE COLOR='Licht'")
sql.execute("UPDATE DMCARDS SET COLOR='Blau' WHERE COLOR='Wasser'")
sql.execute("UPDATE DMCARDS SET COLOR='schwarz' WHERE COLOR='Dunkelheit'")
sql.execute("UPDATE DMCARDS SET COLOR='rot' WHERE COLOR='Feuer'")
sql.execute("UPDATE DMCARDS SET COLOR='Grün' WHERE COLOR='Natur'")
#Datenbank löschen
def dropDB():
with sqlite3.connect("../sqlitest.db") as db:
db.row_factory=sqlite3.Row
sql=db.cursor()
sql.execute("DROP TABLE IF EXISTS DMCARDS")
#Datenbank anzeigen
def viewDB():
with sqlite3.connect("../sqlitest.db") as db:
db.row_factory=sqlite3.Row
sql=db.cursor()
print("ID,NAME,COLOR,COST,POWER")
for row in sql.execute("SELECT * FROM DMCARDS"):
print(f'{row["ID"]},{row["NAME"]},{row["COLOR"]},{row["COST"]},{row["POWER"]}')
if __name__=="__main__":
dropDB()
makeDB()
viewDB()
updateDB()
viewDB()
HSP
#runtime "hsp3cl"
#include "sqlele.hsp"
#module Program
;Datenbank(Tabelle)Initialisieren
#deffunc makeDB
sql_open "../sqlitest.db"
makeTable={"CREATE TABLE IF NOT EXISTS DMCARDS (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT,COLOR TEXT,
COST INTEGER,
POWER INTEGER
)"}
sql_q makeTable
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('La Ura Giga','Licht',1,2000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Aquawache','Wasser',1,2000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Knochenschleim','Dunkelheit',1,1000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Blaze Claw','Feuer',1,1000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Schnepfenmücke','Natur',1,2000)"
sql_close
return
;Datenbank ändern
#deffunc updateDB
sql_open "../sqlitest.db"
sql_q "UPDATE DMCARDS SET COLOR='Weiß' WHERE COLOR='Licht'"
sql_q "UPDATE DMCARDS SET COLOR='Blau' WHERE COLOR='Wasser'"
sql_q "UPDATE DMCARDS SET COLOR='schwarz' WHERE COLOR='Dunkelheit'"
sql_q "UPDATE DMCARDS SET COLOR='rot' WHERE COLOR='Feuer'"
sql_q "UPDATE DMCARDS SET COLOR='Grün' WHERE COLOR='Natur'"
sql_close
return
;Datenbank löschen
#deffunc dropDB
sql_open "../sqlitest.db"
sql_q "DROP TABLE IF EXISTS DMCARDS"
sql_close
return
;Datenbank anzeigen
#deffunc viewDB
sql_open "../sqlitest.db"
mes "ID,NAME,COLOR,COST,POWER"
sdim rows
sql_q "SELECT * FROM DMCARDS",rows
repeat stat
mes sql_v("ID",rows)+","+sql_v("NAME",rows)+","+sql_v("COLOR",rows)+","+sql_i("COST",rows)+","+sql_i("POWER",rows)
sql_next rows
loop
sql_close
return
#deffunc main
dropDB
makeDB
viewDB
updateDB
viewDB
return
#global
main
Dies ist das Ergebnis des Versuchs von SQLite.
Ich habe das Gefühl, dass INSERT und UPDATE in einer Schleife besser aussehen, aber da die Hauptsache darin besteht, den Betrieb zu überprüfen, bin ich diesmal nur ehrlich. Es ist nicht sinnvoll, die Datenbank für jede Funktion in der endgültigen Zusammenfassung zu öffnen und zu schließen.
Eindrücke über die Sprache ähneln der Nutzung der Bibliothek. Vielleicht. Insbesondere die SELECT-Anweisung hat einen Rückgabewert, sodass Unterschiede in den Bibliotheksspezifikationen häufig erkennbar sind.
SQL Ich bin es nicht gewohnt, ganz anders zu schreiben als gewöhnliche Verfahrenssprachen ... Es gibt eine if-Anweisung, eine for-Anweisung und eine Funktion, die eine gewöhnliche Sprache ist, aber für SQL ist es schwierig, eine andere Denkweise zu erfordern.
Die SELECT-Anweisung in SQL ist eine print-Anweisung und fühlt sich wie eine foreach-Anweisung an, daher bin ich mir nicht sicher. Möglicherweise besteht das Bild darin, dass die Karte durch Anwenden eines Filters verarbeitet wird.
Node.js Asynchron ist der größte Feind. Muss außerhalb von db.serialize () behandelt werden. Beachten Sie auch, dass db.close nicht synchronisiert zu sein scheint, selbst wenn Sie in db.serialize () eintauchen.
Vielleicht ist db.each () nützlich, das SELECT-Anweisungen gewidmet zu sein scheint. Ich sah, dass es unpraktisch war, weil ich nicht irgendwo brechen konnte. (Zu diesem Zeitpunkt scheint es besser zu sein, db.all () zu verwenden.)
C# Sowieso überflüssig. Es ist schwierig, die Eingabe und Ausführung von SQL-Anweisungen immer zu trennen. Eine andere Möglichkeit, SQL Werte zu geben, heißt Parameter. Im Gegenteil, es schien überflüssig zu sein, also habe ich es diesmal nicht mehr benutzt.
Python Ich fand es ziemlich prägnant und einfach zu schreiben. Zuerst war ich verwirrt über die Verarbeitung des Rückgabewerts der SELECT-Anweisung ... (Wenn Sie dies normal tun, wird der Taple zurückgegeben Ich musste aus irgendeinem Grund nicht db.commit () verwenden.
HSP Wahrscheinlich das einfachste. Wahrscheinlich besteht der Nachteil darin, dass Sie nicht mehrere Datenbanken gleichzeitig öffnen können, da dies die einzige nicht objektorientierte Sprache ist.
Die SELECT-Anweisung fühlt sich an, als würde der Iterator mit dem empfangenen Wert alleine gedreht. (VBA, VBS Dir () kann nahe sein)
Wenn Sie danach "#cmpopt init 1" verwenden, handelt es sich um Moos. Seien Sie also vorsichtig.
Recommended Posts