[PYTHON] Démarrez avec SQLite dans un langage de programmation

Je n'ai presque aucune expérience avec SQL, J'ai appris à gérer SQLite dans Node.js, C # </ span>, Python3 et HSP3. (Pour le moment, cela ne fonctionne qu'avec des instructions SQL)

Node.js est écrit en TypeScript d'une manière ou d'une autre, supprimez donc la notation de type pour chaque méthode automatique. (Peut-être juste une promesse sommaire)

Environnement d'exécution

Bibliothèque utilisée

Node.js node-sqlite3 Installé ci-dessous.

> npm i sqlite3

C# Microsoft.Data.Sqlite

> dotnet add package Microsoft.Data.Sqlite

Il a une relation dérivée avec System.Data.SQLite, et ses fonctions API sont susceptibles de correspondre.

Python sqlite3 Puisqu'il s'agit d'une bibliothèque standard, aucune installation supplémentaire n'est requise.

HSP sqlele Puisqu'il s'agit d'une bibliothèque standard, aucune installation supplémentaire n'est requise.

Initialisation de la base de données

Ouvrez la base de données, Si vous n'avez pas de table, créez une table (CREATE), Ajouter un élément (INSERT), Fermez la base de données.

Réglez la numérotation automatique (INCREMENT AUTO) dans la colonne "ID".

SQL

commander


> 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','lumière',1,2000)
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Garde Aqua','eau',1,2000)
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Bone slime','ténèbres',1,1000)
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Griffe de feu','Feu',1,1000)
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Moustique Snipe','La nature',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','lumière',1,2000)");
		db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Garde Aqua','eau',1,2000)");
		db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Bone slime','ténèbres',1,1000)");
		db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Griffe de feu','Feu',1,1000)");
		db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Moustique Snipe','La nature',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','lumière',1,2000)";
			sql.ExecuteNonQuery();
			sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Garde Aqua','eau',1,2000)";
			sql.ExecuteNonQuery();
			sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Bone slime','ténèbres',1,1000)";
			sql.ExecuteNonQuery();
			sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Griffe de feu','Feu',1,1000)";
			sql.ExecuteNonQuery();
			sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Moustique Snipe','La nature',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','lumière',1,2000)")
	sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Garde Aqua','eau',1,2000)")
	sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Bone slime','ténèbres',1,1000)")
	sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Griffe de feu','Feu',1,1000)")
	sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Moustique Snipe','La nature',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','lumière',1,2000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Garde Aqua','eau',1,2000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Bone slime','ténèbres',1,1000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Griffe de feu','Feu',1,1000)"
sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Moustique Snipe','La nature',1,2000)"

sql_close

Afficher la base de données

Ouvrez la base de données, SÉLECTIONNEZ toutes les tables, Fermez la base de données.

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

Changer la base thêta

Ouvrez la base de données, Changer la table (UPDATE), Fermez la base de données.

SQL

UPDATE DMCARDS SET COLOR='blanc' WHERE COLOR='lumière';
UPDATE DMCARDS SET COLOR='Bleu' WHERE COLOR='eau';
UPDATE DMCARDS SET COLOR='noir' WHERE COLOR='ténèbres';
UPDATE DMCARDS SET COLOR='rouge' WHERE COLOR='Feu';
UPDATE DMCARDS SET COLOR='vert' WHERE COLOR='La nature';

Node.js

const sqlite=require("sqlite3");

var db=new sqlite.Database("../sqlitest.db",err=>{
	db.serialize(()=>{
		db.run("UPDATE DMCARDS SET COLOR='blanc' WHERE COLOR='lumière'");
		db.run("UPDATE DMCARDS SET COLOR='Bleu' WHERE COLOR='eau'");
		db.run("UPDATE DMCARDS SET COLOR='noir' WHERE COLOR='ténèbres'");
		db.run("UPDATE DMCARDS SET COLOR='rouge' WHERE COLOR='Feu'");
		db.run("UPDATE DMCARDS SET COLOR='vert' WHERE COLOR='La nature'");

		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='blanc' WHERE COLOR='lumière'";
			sql.ExecuteNonQuery();
			sql.CommandText="UPDATE DMCARDS SET COLOR='Bleu' WHERE COLOR='eau'";
			sql.ExecuteNonQuery();
			sql.CommandText="UPDATE DMCARDS SET COLOR='noir' WHERE COLOR='ténèbres'";
			sql.ExecuteNonQuery();
			sql.CommandText="UPDATE DMCARDS SET COLOR='rouge' WHERE COLOR='rouge'";
			sql.ExecuteNonQuery();
			sql.CommandText="UPDATE DMCARDS SET COLOR='vert' WHERE COLOR='La nature'";
			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='blanc' WHERE COLOR='lumière'")
	sql.execute("UPDATE DMCARDS SET COLOR='Bleu' WHERE COLOR='eau'")
	sql.execute("UPDATE DMCARDS SET COLOR='noir' WHERE COLOR='ténèbres'")
	sql.execute("UPDATE DMCARDS SET COLOR='rouge' WHERE COLOR='Feu'")
	sql.execute("UPDATE DMCARDS SET COLOR='vert' WHERE COLOR='La nature'")

HSP

#runtime "hsp3cl"
#include "sqlele.hsp"

sql_open "../sqlitest.db"

sql_q "UPDATE DMCARDS SET COLOR='blanc' WHERE COLOR='lumière'"
sql_q "UPDATE DMCARDS SET COLOR='Bleu' WHERE COLOR='eau'"
sql_q "UPDATE DMCARDS SET COLOR='noir' WHERE COLOR='ténèbres'"
sql_q "UPDATE DMCARDS SET COLOR='rouge' WHERE COLOR='Feu'"
sql_q "UPDATE DMCARDS SET COLOR='vert' WHERE COLOR='La nature'"

sql_close

Supprimer la base de données

Ouvrez la base de données, Si la table existe, DROP la table et Fermez la base de données.

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

Résumé des opérations de la base de données

Les opérations de base de données jusqu'à ce point sont résumées en tant que fonction. (À l'exclusion des instructions SQL. Puis-je utiliser des fonctions dans SQLite?)

SQL

--Supprimer la base de données
DROP TABLE IF EXISTS DMCARDS;

--Base de données(table)Initialiser
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','lumière',1,2000);
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Garde Aqua','eau',1,2000);
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Bone slime','ténèbres',1,1000);
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Griffe de feu','Feu',1,1000);
INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Moustique Snipe','La nature',1,2000);

--Afficher la base de données
SELECT * FROM DMCARDS;
SELECT '--------------------------------------';

--Changer de base de données
UPDATE DMCARDS SET COLOR='blanc' WHERE COLOR='lumière';
UPDATE DMCARDS SET COLOR='Bleu' WHERE COLOR='eau';
UPDATE DMCARDS SET COLOR='noir' WHERE COLOR='ténèbres';
UPDATE DMCARDS SET COLOR='rouge' WHERE COLOR='Feu';
UPDATE DMCARDS SET COLOR='vert' WHERE COLOR='La nature';

--Afficher la base de données
SELECT * FROM DMCARDS;

Node.js

const sqlite=require("sqlite3");

//Base de données(table)Initialiser
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','lumière',1,2000)");
				db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Garde Aqua','eau',1,2000)");
				db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Bone slime','ténèbres',1,1000)");
				db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Griffe de feu','Feu',1,1000)");
				db.run("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Moustique Snipe','La nature',1,2000)");

				db.close(resolve);
			});
		});
	});
}

//Mettre à jour la base de données
function updateDB():Promise<void>{
	return new Promise(resolve=>{
		var db=new sqlite.Database("../sqlitest.db",err=>{
			db.serialize(()=>{
				db.run("UPDATE DMCARDS SET COLOR='blanc' WHERE COLOR='lumière'");
				db.run("UPDATE DMCARDS SET COLOR='Bleu' WHERE COLOR='eau'");
				db.run("UPDATE DMCARDS SET COLOR='noir' WHERE COLOR='ténèbres'");
				db.run("UPDATE DMCARDS SET COLOR='rouge' WHERE COLOR='Feu'");
				db.run("UPDATE DMCARDS SET COLOR='vert' WHERE COLOR='La nature'");

				db.close(resolve);
			});
		});
	});
}

//Supprimer la base de données
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);
			});
		});
	});
}

//Changer de base de données
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{
	//Base de données(table)Initialiser
	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','lumière',1,2000)";
			sql.ExecuteNonQuery();
			sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Garde Aqua','eau',1,2000)";
			sql.ExecuteNonQuery();
			sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Bone slime','ténèbres',1,1000)";
			sql.ExecuteNonQuery();
			sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Griffe de feu','Feu',1,1000)";
			sql.ExecuteNonQuery();
			sql.CommandText="INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Moustique Snipe','La nature',1,2000)";
			sql.ExecuteNonQuery();
		}
	}

	//Changer de base de données
	static void updateDB(){
		using(var db=new SqliteConnection("Data Source=../sqlitest.db")){
			db.Open();
			var sql=db.CreateCommand();

			sql.CommandText="UPDATE DMCARDS SET COLOR='blanc' WHERE COLOR='lumière'";
			sql.ExecuteNonQuery();
			sql.CommandText="UPDATE DMCARDS SET COLOR='Bleu' WHERE COLOR='eau'";
			sql.ExecuteNonQuery();
			sql.CommandText="UPDATE DMCARDS SET COLOR='noir' WHERE COLOR='ténèbres'";
			sql.ExecuteNonQuery();
			sql.CommandText="UPDATE DMCARDS SET COLOR='rouge' WHERE COLOR='rouge'";
			sql.ExecuteNonQuery();
			sql.CommandText="UPDATE DMCARDS SET COLOR='vert' WHERE COLOR='La nature'";
			sql.ExecuteNonQuery();
		}
	}

	//Supprimer la base de données
	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();
		}
	}

	//Afficher la base de données
	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

#Base de données(table)Initialiser
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','lumière',1,2000)")
		sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Garde Aqua','eau',1,2000)")
		sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Bone slime','ténèbres',1,1000)")
		sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Griffe de feu','Feu',1,1000)")
		sql.execute("INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Moustique Snipe','La nature',1,2000)")

#Changer de base de données
def updateDB():
	with sqlite3.connect("../sqlitest.db") as db:
		db.row_factory=sqlite3.Row
		sql=db.cursor()

		sql.execute("UPDATE DMCARDS SET COLOR='blanc' WHERE COLOR='lumière'")
		sql.execute("UPDATE DMCARDS SET COLOR='Bleu' WHERE COLOR='eau'")
		sql.execute("UPDATE DMCARDS SET COLOR='noir' WHERE COLOR='ténèbres'")
		sql.execute("UPDATE DMCARDS SET COLOR='rouge' WHERE COLOR='Feu'")
		sql.execute("UPDATE DMCARDS SET COLOR='vert' WHERE COLOR='La nature'")

#Supprimer la base de données
def dropDB():
	with sqlite3.connect("../sqlitest.db") as db:
		db.row_factory=sqlite3.Row
		sql=db.cursor()

		sql.execute("DROP TABLE IF EXISTS DMCARDS")

#Afficher la base de données
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
	;Base de données(table)Initialiser
	#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','lumière',1,2000)"
		sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Garde Aqua','eau',1,2000)"
		sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Bone slime','ténèbres',1,1000)"
		sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Griffe de feu','Feu',1,1000)"
		sql_q "INSERT INTO DMCARDS (NAME,COLOR,COST,POWER) VALUES ('Moustique Snipe','La nature',1,2000)"

		sql_close
	return

	;Changer de base de données
	#deffunc updateDB
		sql_open "../sqlitest.db"

		sql_q "UPDATE DMCARDS SET COLOR='blanc' WHERE COLOR='lumière'"
		sql_q "UPDATE DMCARDS SET COLOR='Bleu' WHERE COLOR='eau'"
		sql_q "UPDATE DMCARDS SET COLOR='noir' WHERE COLOR='ténèbres'"
		sql_q "UPDATE DMCARDS SET COLOR='rouge' WHERE COLOR='Feu'"
		sql_q "UPDATE DMCARDS SET COLOR='vert' WHERE COLOR='La nature'"

		sql_close
	return

	;Supprimer la base de données
	#deffunc dropDB
		sql_open "../sqlitest.db"

		sql_q "DROP TABLE IF EXISTS DMCARDS"

		sql_close
	return

	;Afficher la base de données
	#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

Impressions ou suppléments

C'est le résultat d'essayer SQLite.

Je pense que INSERT et UPDATE ont une meilleure apparence lorsqu'ils sont versés en boucle, mais comme l'essentiel est de vérifier le fonctionnement, cette fois je suis juste honnête. Cela n'a aucun sens d'ouvrir et de fermer la base de données pour chaque fonction dans le résumé final.

Les impressions sur la langue sont similaires à l'utilisation de la bibliothèque. Peut-être. En particulier, l'instruction SELECT a une valeur de retour, de sorte que les différences dans les spécifications de la bibliothèque sont souvent perceptibles.

SQL Je n'ai pas l'habitude d'écrire d'une manière complètement différente des langages procéduraux ordinaires ... Il y a une instruction if, une instruction for et une fonction, qui est un langage ordinaire, mais il est difficile pour SQL d'exiger une manière de penser différente.

L'instruction SELECT dans SQL est une instruction print, et cela ressemble à une instruction foreach, donc je ne suis pas sûr. L'image est peut-être que la carte est traitée en appliquant un filtre.

Node.js L'asynchrone est le plus grand ennemi. Doit être géré en dehors de db.serialize (). Notez également que db.close ne semble pas être synchronisé même si vous plongez dans db.serialize ().

Peut-être que db.each (), qui semble être dédié aux instructions SELECT, est utile. J'ai vu que c'était gênant car je ne pouvais pas me casser quelque part. (À ce moment-là, il semble préférable d'utiliser db.all ())

C# Quoi qu'il en soit redondant. Il est difficile de toujours séparer l'entrée et l'exécution des instructions SQL. Une autre façon de donner des valeurs à SQL est appelée paramètres, Au contraire, il semblait redondant, j'ai donc arrêté de l'utiliser cette fois.

Python J'ai trouvé que c'était assez concis et facile à écrire. Au début, j'étais confus quant au traitement de la valeur de retour de l'instruction SELECT ... (Si vous le faites normalement, le taple sera retourné Je n'ai pas eu à utiliser db.commit () pour une raison quelconque.

HSP Probablement le plus simple. L'inconvénient est probablement que vous ne pouvez pas ouvrir plusieurs bases de données en même temps car c'est le seul langage non orienté objet.

L'instruction SELECT donne l'impression de transformer l'itérateur seul avec la valeur reçue. (VBA, VBS Dir () peut être proche)

Après cela, si vous utilisez "#cmpopt init 1", ce sera de la mousse, alors soyez prudent.

Recommended Posts

Démarrez avec SQLite dans un langage de programmation
Langage de programmation dont les jeunes auront besoin à l'avenir
Le langage de programmation le plus recherché en 2020
Dessiner des graphiques dans le langage de programmation Julia
Essayez d'utiliser un langage de programmation probabiliste (Pyro)
Essayez un tube de programmation fonctionnel en Python
Programmation avec Python
Sqlite en Python
Préparer un environnement de langage de programmation pour l'analyse des données
Créer un fichier qui peut être exécuté dans le langage de script
Démarrez Django dans un environnement virtuel à l'aide de Pipenv
Des outils qui tiennent dans votre main (langage de programmation)
Configurer un serveur UDP en langage C
J'ai essayé d'utiliser Pythonect, un langage de programmation de flux de données.
Essayez de créer un module Python en langage C
Le Japon peut être des galapagos en termes de langage de programmation
Langage de programmation qui protège les gens de NHK
dict in dict Transforme un dict en dict
J'ai participé à une programmation compétitive une semaine après avoir commencé la programmation
Créer un serveur Web en langage Go (net / http) (1)
Programmation Python avec Excel
Démarrer un projet Django
OperationalError dans SQLAlchemy + SQLite3
Remarques sur l'intégration du langage de script dans les scripts bash
Remarque 2 pour intégrer le langage de script dans un script bash
Comment implémenter provisoirement une barre de progression dans un langage de script
Un ingénieur en arts libéraux a essayé de frapper 100 processus linguistiques en Python 02
Un ingénieur en arts libéraux a essayé de frapper 100 processus linguistiques en Python 01
Un ingénieur en arts libéraux a essayé de frapper 100 processus linguistiques en Python 00
Explication du CSV et exemple d'implémentation dans chaque langage de programmation
Intégration du langage machine en langage C
Prendre une capture d'écran en Python
Tri de tas fait en langage C
Créer une fonction en Python
Créer un dictionnaire en Python
Essayez de programmer avec un shell!
[Gimp] Lancez la création de scripts avec Python
Créer un bookmarklet en Python
Hello World en langue GO
[Dernière version 2019] Comparaison des langages de programmation
Dessinez un cœur en Python
Essayez de sélectionner une langue
Commencez dans 5 minutes GIMP Python-Fu
Made Gomi, un outil de corbeille pour RM en langue Go
Programmation avec scripts en ligne de Python / JavaScript / VBScript dans Automation Anywhere A 2019
Réfléchissez sérieusement au langage à utiliser dans l'enseignement de la programmation et l'enseignement de la programmation.