truc2geek

2012/05/01

SQLite, part 4 : SQLite Expert, Personal Edition

Filed under: SQLite — Étiquettes : , , , , — truc2geek @ 22:00

SQLite Expert

SQLite Expert est défini, sur le site officiel, comme un « puissant outil d’administration des bases de données SQLite ».
Il est disponible en une version « Personal », gratuite sans limitation de durée, et « Professional » avec une license à 59$ qui permet de bénéficier à vie et gratuitement des mises à jour.
Quelques tutoriels sont proposés sur le site.
C’est la version 3.0.9.2044 Personal qui a été utilisée pour cet article.
Le site, le logiciel et l’aide sont en anglais.

lancer le logiciel

Pour commencer, on peut faire « Tools » puis « Options » pour voir quels réglages sont possibles.

Pour ouvrir une BD, cliquer sur l’icône avec le signe « + »
On sélectionne notre BD BaseTest2, on valide.

dans la partie de gauche, est affichée la BD.
dans la partie de droite, on a 5 onglets : « Database », « SQL », « Data », « Design » et « DDL »

Dans l’onglet « Database », section « Databases », on a le nombre de tables, vues, index et triggers de la BD.
Dans la section « Properties for database [main] », sont listés les paramètres de la BD.

Dans l’onglet « DDL », sont affichées les instructions SQL par lesquelles on a créé les tables et la vue.

on sélectionne la table « T_Contrat »

onglet « Data »
on retrouve nos 4 enregistrements.
les six boutons de déplacement permettent de faire défilier les pages et naviguer dans les enregistrements
le bouton « + » permet d’ajouter un enregistrement
le bouton « – » permet de supprimer un enregistrement
le bouton avec la flèche haut permet de modifier un enregistrement
« Post edit »
« Cancel edit »
« Refresh data »
« Save Bookmark »
« GoTo Bookmark »

la première colonne contient non pas le premier champ de la table, mais affiche « RecNo », un numéro d’enregistrement incrémenté.
juste sous le nom des champs, se trouve une zone grisée dans laquelle on lit « Click here to define a filter »

onglet « Design »
permet de voir les champs, index, clés étrangères, contraintes et déclencheurs
par exemple dans « Foreign Keys », on retrouve bien la clé étrangère « id_societe », qui reprend une valeur du champ « id_societe » de la table « T_Societe »

créer la table « factures » (par IHM)

créer la table et les champs

« Table », « New Table »
on entre le nom, « T_Facture » et on ne coche pas la case « Temporary table »
cliquer sur « Add » en bas, pour ajouter un champ
La boîte de dialogue « New field » s’affiche :

On entre les valeurs suivantes :
Name : id_facture
Type : INTEGER
Not null : ne pas cocher
OK

créer les autres champs de la table :
champ « id_contrat » :

  • Name : id_contrat
  • Type : INTEGER
  • Not null : cocher

champ « date_edite » :

  •     Name : date_edite
  •     Type : DATETIME
  •     Not null : cocher

champ « total_ht » :

  •     Name : total_ht
  •     Type : CURRENCY
  •     Default : 0
  •     Not null : cocher

champ « total_ttc » :

  •     Name : total_ttc
  •     Type : CURRENCY
  •     Default : 0
  •     Not null : cocher

champ « etat_reg » :

  •     Name : etat_reg
  •     Type : VARCHAR
  •     Size : 15
  •     Default : ‘en_att_reg’
  •     Not null : cocher

enfin, on clique sur « Apply » pour valider la création de la table.

définir l’index de clé primaire pour cette table :

on regarde comment il apparaît pour la table T_Contrat :

on sélectionne la table « T_Facture », onglet « Design », onglet « Indexes », on clique sur « Add »
dans la section « Available fields », on sélectionne « id_facture », « Add » : il est transféré dans la section de droite, « Index fields »
on coche « Primary », le champ « Index Name » prend alors pour valeur « sqlite_autoindex_T_Facture_1 » et est verrouillé
on coche « Autoincrement »
on valide par « OK » puis « Apply »

définir la clé étrangère du champ « id_contrat » pour cette table :

là encore, on regarde comment c’est fait dans la table « T_Contrat », pour le champ « id_societe » :

on sélectionne la table « T_Facture », onglet « Foreign Keys », « Add »
dans la fenêtre « Modify Foreign Key », pour le champ « Parent Table » on sélectionne « T_Contrat », puis pour les champs « Child Key » et « Parent Key », on sélectionne le champ « id_contrat »
on valide par « OK » puis « Apply »

test de l’intégrité référentielle

Pour vérifier que l’intégrité référentielle est correctement définie pour la table T_Facture :
ici on essaie de créer une facture rattachée à un contrat inexistant (dont l’identifiant serait 9) :

on sélectionne l’onglet « SQL », on entre la requête suivante :
INSERT INTO T_Facture
(id_contrat, date_edite, total_ht, total_ttc)
VALUES (9, ‘2012-03-15’, ‘500.00’, ‘598.00’);
« Execute SQL »
résultat :

on ajoute deux enregistrements par SQL

on entre l’instruction SQL suivante pour créer une facture rattachée à un contrat existant :
INSERT INTO T_Facture
(id_contrat, date_edite, total_ht, total_ttc)
VALUES (3, ‘2012-03-15’, ‘500.00’, ‘598.00’);
« Execute SQL »

idem avec :
INSERT INTO T_Facture
(id_contrat, date_edite, total_ht, total_ttc)
VALUES (3, ‘2012-03-26’, ‘300.00’, ‘358.80’);

résultat, voir l’onglet « Data » :

on ajoute deux enregistrements par l’IHM

onglet « Data », on clique sur l’icône « + » et on entre les valeurs suivantes :

on appuie deux fois sur « entrée » (une fois pour aller sur le champ « en_att_reg » dans lequel on ne met rien, une fois pour valider) :

on recommence avec les valeurs suivantes :

résultat :

créer la vue « V_Facture » (par instruction SQL)

Cette version « personal » de SQLite Expert ne permet pas de créer graphiquement des vues, on va donc écrire et exécuter l’instruction SQL
de création de la vue V_Facture.

CREATE VIEW V_Facture AS
SELECT T_Societe.id_societe, T_Societe.nom, T_Societe.info, T_Contrat.id_contrat, T_Contrat.id_societe, T_Contrat.date_sign,
T_Facture.id_facture, T_Facture.id_contrat, T_Facture.date_edite, T_Facture.total_ht, T_Facture.total_ttc, T_Facture.etat_reg
FROM T_Societe NATURAL JOIN T_Contrat NATURAL JOIN T_Facture;

résultat :

les données sont correctes : la vue fait bien correspondre chaque facture au bon contrat (champs « id_contrat » et « id_constrat:1 ») et chaque contrat à la bonne société (champs « id_societe » et « id_societe:1 »)

Publicités

Laisser un commentaire »

Aucun commentaire pour l’instant.

RSS feed for comments on this post. TrackBack URI

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Créez un site Web ou un blog gratuitement sur WordPress.com.

%d blogueurs aiment cette page :