From 917f67857b96497390a95c83ee91b6d7f5575911 Mon Sep 17 00:00:00 2001 From: ben Date: Sat, 18 Oct 2025 10:59:01 +0200 Subject: [PATCH] Ajout d'astuces sur l'utilisation de duckDB --- wiki/shell/commands/DuckDB.mdwn | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 wiki/shell/commands/DuckDB.mdwn diff --git a/wiki/shell/commands/DuckDB.mdwn b/wiki/shell/commands/DuckDB.mdwn new file mode 100644 index 0000000..97f1584 --- /dev/null +++ b/wiki/shell/commands/DuckDB.mdwn @@ -0,0 +1,53 @@ +# DuckDB dans un script shell + +## Créer une base de donnée: + +``` +duckdb database.sql -c "CREATE TABLE IF NOT EXISTS table_name (name VARCHAR PRIMARY KEY, value VARCHAR, param VARCHAR)" +``` + +## Afficher la table: + +``` +duckdb database.sql -list -c "SELECT name FROM table_name" +``` + +## Afficher la table avec une condition: + +``` +duckdb database.sql -list -c "SELECT name FROM table_name WHERE name LIKE '%john%" +``` + +## Insérer des valeurs: + +``` +duckdb database.sql -c "INSERT INTO table_name (name, value) values ('john', '1234')" +``` + +## Itérer les valeurs et mettre à jour: +``` +while read -r LINE; do + # some code + duckdb database.sql -c "UPDATE table_name SET value = '${VALUE}', param = '${PARAM}' WHERE name = '${LINE}'" +done < <(duckdb database.sql -list -c "SELECT name FROM table_name" | tail -n +2) +``` + +## Faire des requêtes SQL sur un fichier json: + +Lecture des données: + +``` +duckdb -c 'SELECT * FROM data.json;' +``` + +Ajout de données: + +``` +duckdb -c "CREATE TABLE data AS SELECT * FROM 'data.json'; INSERT INTO data (name, value, param) values ('product3','dark','color'); COPY (SELECT * FROM data) TO 'data.json';" +``` + +Mises à jour des données: + +``` +duckdb -c "CREATE TABLE data AS SELECT * FROM 'data.json'; UPDATE data SET name = 'productZ' WHERE value = 'red'; COPY (SELECT * FROM data) TO 'data.json';" +```