Dans l'écosystème Unix, il n'existe
pas de "base de données" unique intégrée de manière native comme
un logiciel SQL classique.
Cependant, le système de
fichiers Unix lui-même, combiné aux commandes Bash standard,
permet de manipuler des fichiers texte (souvent au format CSV ou
TSV) comme s'il s'agissait d'une base de données relationnelle.
Voici comment effectuer des
opérations de base de données (CRUD) en utilisant uniquement des
commandes standards :
1. Stockage et Structure (Tables)
Sous Unix, une "table" est
généralement un simple fichier texte où chaque ligne est un
enregistrement et chaque colonne est séparée par un délimiteur
(virgule, tabulation ou:).
Créer une
table :touch
users.csv
Ajouter un
en-tête :echo
"id,nom,email" > users.csv
2.
Opérations de Données (CRUD)
Insertion
(Create) :Utilisezechooucatpour ajouter des
données à la fin du fichier.
echo
"1,Alice,alice@example.com" >> users.csv
Lecture
(Read) :
Tout afficher :cat
users.csv
Rechercher un
enregistrement (SELECT) :grep
"Alice" users.csv
Extraire des colonnes
spécifiques (PROJECT) :cut
-d',' -f1,2 users.csv
Mise à jour
(Update) :Utilisezsedpour remplacer du
texte dans le fichier.
sed
-i 's/Alice/Alicia/g' users.csv
Suppression
(Delete) :
Supprimer une ligne
spécifique :grep
-v "Alice" users.csv > temp.csv && mv
temp.csv users.csv
Vider la table :>
users.csv
3. Traitement Avancé
Pour des manipulations plus
complexes, deux outils sont essentiels :
awk:Véritable langage
de programmation conçu pour traiter des fichiers structurés
par colonnes (sorte de moteur SQL en ligne de commande).
sort&uniq:Pour trier les
données et supprimer les doublons.
join:Permet de
fusionner deux fichiers sur la base d'une colonne commune
(équivalent d'un SQL JOIN).
4.
Interaction avec de "Vraies" Bases de Données
Si vous utilisez un moteur de base de données
externe (MySQL, PostgreSQL,Oracle),
Bash sert d'interface pour automatiser les requêtes:
MySQL :mysql
-u user -p -e "SELECT * FROM table" db_name
PostgreSQL :psql -c "SELECT *
FROM table" db_name
Sauvegarde automatique :Les scripts Bash
sont couramment utilisés pour automatiser lesBackups MySQLviamysqldump.