Bases de données

a marqué ce sujet comme résolu.

Salut, tout dépend du SGBD que tu souhaites utiliser: Mysql, MariaDb, oracle, postgreSQL … ? Pour chacun d’entre eux, tu as un outils d’administration des bases

Tu peux aussi le faire en SQL directement avec l’utilisation des commandes CREATE DATABASE nom_base, CREATE TABLE ma_table

Bonjour,

Merci de votre réponse. Comment je fais pour installer ces outils d’administration ? Si je le fais directement en SQL, il ne faudrait pas que je précise le chemin du fichier .db ?

Merci d’avance,

flopy78

Il te faut avant tout installer le moteur de base de données donc choisir parmi les SGBD que j’ai cité (ou un autre). Sur le site du SGBD, tu trouveras sans doute des détails sur la procédure d’installation.

Bonjour,

Une des questions qu’il faut se poser est, dans quel contexte veux-tu utiliser une base de donnée exactement ?

Si c’est pour un site web, un blog, un site e-commerce, ou n’importe quel autre projet présent sur Internet, il te faut un hébergement incluant une base de donnée. Ca va déterminer laquelle tu seras obligé d’utiliser, par exemple MySQL ou MariaDB.

A partir de là tu trouveras facilement des instructions pour l’installer et t’y connecter, sur ton hébergement, ainsi que sur ton ordinateur personnel pour pouvoir développer localement.

Si c’est pour créer un logiciel qui tournera sur ton ordinateur et pas sur Internet, c’est vers les bibliothèques de bases de données locales qu’il faut regarder. La plus connue et la plus utilisée est sans doute SQLite, pour laquelle il existe des modules pour à peu près tous les langages de programmation: Java, C/C++, Python, C#, PHP, …

L’inconvénient est que, à ma connaissance, SQLite est assez permissif, dans le sens où il laisse passer des choses qu’il ne vaudrait en théorie mieux pas, et n’est peut-être pas le meilleur choix pour un bon apprentissage. Mieux vaudrait sans doute un vrai moteur de base de données un peu plus exigeant. Note que MySQL/MariaDB est aussi relativement permissif par rapport à beaucoup d’autres (je pense entres-autres à PGSQL) Il existe sans doute d’autres bibliothèques similaires à SQLite pour une utilisation locale, mais je ne les connais pas.

Si ton objectif est juste de gérer des données bien précises, sur ton ordinateur à la maison, par exemple des comptes, des clients et des ventes, un inventaire, etc. et que tu veux les gérer directement sur ton ordinateur et pas sur Internet, tu n’as peut-être même pas besoin de créer un logiciel toi-même. Un logiciel intégrant une base de donnée et un système permettant de créer des petites interfaces de gestion peut te suffire.

Ca peut éventuellement te permettre de plonger dans le langage SQL en douceur, avec des requêtes à écrire pour des objectifs très concrets sur les données qui te concernent personnellement et directement. Pas question de faire des choses hyper avancées et avec des performances de fou par contre, mais pour un début ça peut bien être utile, non seulement pour SQL, mais aussi pour ce qui tourne autour des bases de données en général: apprendre à construire des modèles de données à base de tables, ce que sont les jointures et quand/comment on les utilise, etc. Ce sont des concepts de base que tu dois aussi apprendre à maîtriser si ce n’est pas déjà le cas.

Le plus connu est évidemment Microsoft Access, mais il y a aussi un équivalent dans open/libre office, FileMaker et bien d’autres.

Bonne chance !

+0 -0

Bonjour,

J’ai quelques petites notions de SQL (SELECT, WHERE…) J’ai aussi légèrement abordé les notions de tables, de clés primaires et de clés étrangères (cela dit, je ne suis toujours pas très à l’aise, alors si vous avez des sites à me proposer pour mieux comprendre…).

Je souhaiterais dans un premier temps rester sur mon petit bureau… Je chercherais un équivalent d’un "interpréteur SQL", dans lequel on puisse renseigner des bases de données et créer des fichiers .db. (Mon problème n’est pas d’apprendre le SQL mais de savoir où écrire mon code !).

Je vais regarder du côté de FileMaker pour voir ce que c’est.

Merci beaucoup,

Effectivement, si tu (flopy78) as quelques notions de SQL et que tu cherches juste un interpréteur SQL pour faire des tests en local, alors comme suggéré (sgble) tu peux partir sur du SQLite …dans un premier temps. Tu n’auras alors qu’à lancer le client en ligne de commandes

$ cd mon_dossier_de_travail
$ # c'est plus facile de bosser de la...
$ sqlite3 mon_fichier.db
sqlite> SQLite version 3.39.4 2022-09-07 20:51:41
Enter ".help" for usage hints.
sqlite> .quit
$ # tu as juste besoin de savoir .quit et .exit pour
$ # terminer ta session et sortir de sqlite
+1 -0

Bonjour,

Merci beaucoup pour votre aide.

Je suppose qu’il faut installer sqlite (avec pip ?).

Vous semblez déjà avoir un fichier .db tout prêt…

Je me demandais comment je pourrais le créer.

Si j’ai bien compris, après avoir rentré "sqlite3 mon_fichier.db", je n’ai plus qu’à rentrer mes commandes SQL dans le terminal ?

Merci encore,

Je suppose qu’il faut installer sqlite (avec pip ?).

Il y avait, dans mon message, le lien vers la page de téléchargement, que je remets seul ici : https://www.sqlite.org/download.html
C’est surtout utile pour avoir le binaire officiel pour Windows et certaines autres plateformes. Sous GNU/Linux et MacOS X c’est déjà installé ; sinon pour les premiers il vaut mieux utiliser le gestionnaire de paquets de la distribution.

Vous semblez déjà avoir un fichier .db tout prêt…

L’exemple s’applique aux deux cas :

  • si c’est une base existante, on l’ouvre avec la commande et on peut commencer à lancer des requêtes sur les données et structures existantes.
  • si c’est une nouvelle base (fichier inexistant), en l’ouvrant avec la commande on lui dit que c’est là que seront enregistrées les ordres CREATE TABLE par lesquelles on va alors commencer.
+0 -0

"Create Table" ne crée pas une base de données, mais une table.

C’est un peu déroutant… Tu crées une base de données ( cf : création BDD), et ensuite, dans cette base de données, tu peux créer plein de tables. Physiquement, sur ton disque dur, tu auras (normalement) un seul fichier, mais ce fichier va contenir toutes tes tables (une table clients, une table commandes, une table produits, pour partir sur les exemples classiques).

Tu poses beaucoup de question sur ce fichier .db, mais en SQL, tout l’intérêt, c’est que justement on s’affranchit de ça.

Je pense que Postgresql avec PGAdmin correspond mieux à ton profil. Tu as une interface sympa, et tu n’as plus du tout à te soucier de ces histoires de fichier .db. Et c’est très simple à installer.

Par contre, si tu veux sauver ta base et la recopier sur un autre PC, comme tu ne sais pas vraiment où elle est stockée avec PGAdmin, SqlLite est plus sympa de ce point de vue.

Bien vu DonKnacki Le tuto préconise la « version portable » (zip à extraire dans un dossier) alors que j’aurais penché plutôt sur la version installable avec DLL …mais peut-être que le chemin de l’exécutable n’est pas inscrit dans le PATH ? …ou alors la difficulté était de savoir qu’il fallait lancer cmd.exe d’abord ?
Quelles difficultés as-tu exactement @flopy78 ? Est-ce que tu t’en sors mieux avec la documentation pointée ? Sinon il faut que tu précise ce que tu as fait exactement et ce qui coince.

+0 -0

Bonjour,

Merci pour vos précieux conseils, je vais essayer ainsi.

Par ailleurs, je me demandais s’il y avait moyen de stocker (dans une variable, par exemple) le résultat d’un SELECT afin de pouvoir traiter les informations en SQL (et donc, par ailleurs, s’il existe des instructions "IF","FOR" ou "WHILE" en SQL).

Joyeux noël,

Pour la partie sur les variables et les boucles etc, il y a des extensions propres à chaque système de gestion ; mais cela sort du cadre de la question initiale qui était de pouvoir faire des requêtes (pour s’entrainer ?) dans un client (en terminal ou une fenêtre graphique). Quasiment tous les langages ont une bibliothèque pour interagir avec l’un des principaux gestionnaires de bases, mais ce devra être pareillement dans un second temps. Et quand viendra le moment, ce sera une autre discussion…

Bonnes fêtes à toi également.

+0 -0

J’ai vu qu’il y a également moyen d’utiliser SQLite via Python (j’adore ce langage ! :ange: ). Je vais creuser de ce côté là…

flopy78

Il y a d’ailleurs un tutoriel à ce sujet sur le site : https://zestedesavoir.com/tutoriels/1294/des-bases-de-donnees-en-python-avec-sqlite3/

J’ai le sentiment que tu 'butines’ dans différentes directions, sans approfondir suffisamment.

SQL permet de faire des requêtes (SELECT ou INSERT ou UPDATE ou autre) qui peuvent être ultra simples, mais aussi des requêtes ultra sophistiquées. Par exemple, une requête qui va lire des données dans 5 ou 6 ou 10 tables différentes, faire je ne sais quels calculs à partir de ça, et insérer les résultats de tout ça dans une autre table. Essaie de te former sur ça, sérieusement.

En terme de performance, tout est interne à la base de données, c’est plus performant qu’un process qui lirait plein de données, enverrait ces données à un client (Python ou autre), et ce client renverrait des instructions à la BDD.

Quand tu maitrises à peu près bien SQL proprement dit (jointures, jointures externes, group by , etc etc), la suite logique, c’est PL/SQL.

Pareil, on reste sur une technologie qui est interne à la BDD. Tu peux gérer des boucles, des variables, faire plein de choses assez proches que tu peux faire en Python, mais en restant sur une philosophie SQL.

Et ensuite, les fonctions que tu auras créées en PLSQL (fonctions ou plutôt procédures ou packages), tu pourras effectivement les appeler via Python.

Mais pour avancer dans cette direction, j’ai l’impression que SQLLITE, avec ses commandes en mode console, c’est assez rébarbatif.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte