hackade.org/ wiki/ shell/ commands/ 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';"