[PYTHON] Erste Schritte mit SQLite in einer Programmiersprache

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)

Ausführungsumgebung

Bibliothek verwendet

Node.js node-sqlite3 Unten installiert.

> npm i sqlite3

C# Microsoft.Data.Sqlite

> dotnet add package Microsoft.Data.Sqlite

Es hat eine abgeleitete Beziehung zu System.Data.SQLite, und die API-Funktionen stimmen wahrscheinlich überein.

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.

Datenbankinitialisierung

Ö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

Datenbank anzeigen

Ö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

Ändern Sie die Theta-Basis

Ö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

Datenbank löschen

Ö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

Zusammenfassung des Datenbankvorgangs

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

Impressionen oder Ergänzungen

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

Erste Schritte mit SQLite in einer Programmiersprache
Programmiersprache, die junge Menschen in Zukunft brauchen werden
Die gefragteste Programmiersprache im Jahr 2020
Zeichnen Sie Grafiken in der Programmiersprache Julia
Versuchen Sie es mit einer probabilistischen Programmiersprache (Pyro).
Probieren Sie eine funktionale Programmierpipe in Python aus
Programmieren mit Python
SQLite in Python
Bereiten Sie eine Programmiersprachenumgebung für die Datenanalyse vor
Erstellen Sie eine Datei, die in der Skriptsprache ausgeführt werden kann
Starten Sie Django in einer virtuellen Umgebung mit Pipenv
Werkzeuge, die in Ihre Hand passen (Programmiersprache)
Richten Sie einen UDP-Server in der Sprache C ein
Ich habe versucht, Pythonect, eine Programmiersprache für den Datenfluss, zu verwenden.
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
Japan kann in Bezug auf die Programmiersprache Galapagos sein
Programmiersprache, die die Menschen vor NHK schützt
diktieren in diktieren Macht ein Diktat ein Diktat
Ich habe eine Woche nach Beginn des Programmierens an wettbewerbsorientierten Programmen teilgenommen
Erstellen Sie einen Webserver in der Sprache Go (net / http) (1)
Python-Programmierung mit Excel
Starten Sie ein Django-Projekt
OperationalError in SQLAlchemy + SQLite3
Hinweise zum Einbetten der Skriptsprache in Bash-Skripte
Hinweis 2 zum Einbetten der Skriptsprache in ein Bash-Skript
So implementieren Sie vorläufig einen Fortschrittsbalken in einer Skriptsprache
Ein Ingenieur für freie Künste hat versucht, 100 Sprachprozesse in Python 02 zu klopfen
Ein Ingenieur für freie Künste hat versucht, 100 Sprachprozesse in Python 01 zu klopfen
Ein Ingenieur für freie Künste hat versucht, 100 Sprachprozesse in Python 00 zu klopfen
Erläuterung der CSV und Implementierungsbeispiel in jeder Programmiersprache
Einbettung der Maschinensprache in die Sprache C.
Machen Sie einen Screenshot in Python
Heap-Sortierung in C-Sprache
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Versuchen Sie, mit einer Shell zu programmieren!
[Gimp] Starten Sie die Skripterstellung mit Python
Erstellen Sie ein Lesezeichen in Python
Hallo Welt in GO-Sprache
[2019 neueste Version] Programmiersprachenvergleich
Zeichne ein Herz in Python
Versuchen Sie, eine Sprache auszuwählen
Starten Sie in 5 Minuten GIMP Python-Fu
Made gomi, ein Papierkorb-Tool für rm in Go-Sprache
Programmieren mit Inline-Scripting von Python / JavaScript / VBScript in Automation Anywhere A 2019
Überlegen Sie ernsthaft, welche Sprache in der Programmierausbildung und in der Programmierausbildung verwendet werden soll.