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)
Node.js node-sqlite3 Installé ci-dessous.
> npm i sqlite3
> dotnet add package Microsoft.Data.Sqlite
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.
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
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
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
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
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
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