Ajout d'astuces sur l'utilisation de duckDB

This commit is contained in:
ben
2025-10-18 10:59:01 +02:00
parent 1768e36644
commit 917f67857b

View File

@@ -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';"
```