Évaluation des utilitaires SQLite pour Android. Programme gratuit SQLiteStudio pour éditer des bases de données SQLite. Principales caractéristiques et fonctions

SQLite Expert Personal est un utilitaire pratique pour créer et gérer plusieurs bases de données SQLite3 avec une interface simple et la possibilité de modifier des tables, ainsi que d'exécuter des requêtes et des scripts. Le programme est utile à la fois lors de la création de nouvelles bases de données et lors de la création et de la modification de requêtes SQL complexes. La fenêtre principale affiche toutes les bases de données connectées et vous pouvez également exécuter vos propres scripts à l'aide de Query Builder. Vous pouvez facilement modifier tous les champs, clés étrangères, index, contraintes et déclencheurs.

Lorsque vous lancez le programme pour la première fois, il sélectionnera un alias de base de données par défaut, vous pourrez ensuite le modifier à votre guise ou ouvrir une base de données existante dans le menu Fichier. Après cela, vous pouvez afficher et modifier tous les tableaux en les sélectionnant dans le panneau de l'arborescence sur la gauche. De plus, SQLite Expert offre à l'utilisateur la possibilité d'indexer toutes les tables ou d'importer/exporter des données dans d'autres formats.

Les principales différences par rapport à la version sont que cette version est totalement gratuite pour toute utilisation, mais a des fonctionnalités légèrement limitées (la version Pro a une plus grande capacité à travailler avec les fonctions SQLite).

Principales caractéristiques et fonctions

  • le programme est entièrement gratuit pour un usage privé et commercial ;
  • interface simple et conviviale ;
  • éditeur de requêtes visuel SQL Query Builder ;
  • la possibilité de transférer des données vers différents formats ;
  • des outils pratiques pour éditer les données ;
  • Prise en charge d'Unicode ;
  • prise en charge des modules complémentaires SQLite.

SQLite est une petite bibliothèque multiplateforme qui comprend un moteur de transactions isolées à part entière qui prend en charge un ensemble de fonctions et de capacités de base pour travailler avec des bases de données SQL intégrées. Ils sont utilisés partout, depuis la tenue de registres dans les petites entreprises et pour assurer le fonctionnement de simples sites Web, jusqu'au maintien du fonctionnement des grands complexes industriels et des gadgets mobiles. Vous pouvez télécharger gratuitement SQLite ainsi que son code source, par exemple depuis notre site Web.

La principale caractéristique du programme est qu'il n'est pas nécessaire d'installer le serveur, les services, de les configurer et de les lancer pour travailler avec la base de données. Il n'est pas non plus nécessaire de créer une nouvelle base de données - tout cela est intégré à SQLite sous forme de bibliothèques dynamiques (fichiers dll).

Un autre avantage de SQLite est la transactionnalité - le traitement séquentiel des informations par parties : jusqu'à ce que le travail avec une partie soit terminé avec succès, les autres actions ne sont pas effectuées. Cette fonctionnalité de SQLite vous permettra d'éviter les problèmes en cas de problème ou d'interruption (redémarrage accidentel de l'ordinateur ou déconnexion du réseau).

Contrairement à la plupart des produits similaires, SQLite fonctionne directement avec les fichiers stockés sur votre disque dur. La base de données terminée avec les tables et index associés est stockée dans un seul fichier.

Avant la prochaine version, SQLite subit des tests automatisés de plusieurs millions de dollars, qu'il peut facilement gérer avec un résultat de 100 % pour toutes les plateformes mobiles et de bureau.

Pour les utilisateurs connaissant le langage de programmation C, il est suggéré de télécharger le code source SQLite et de compiler un programme à partir de celui-ci avec les fonctionnalités requises, en supprimant toutes les fonctions inutiles, de sorte que la taille de l'utilitaire peut être de 500 voire 300. Ko.

Travaillez-vous avec des bases de données SQL ? Alors cette application vous sera certainement utile - avec son aide, vous pourrez visualiser, modifier et enregistrer des bases de données dans n'importe quelle application.

Particularités

SQLite Editor ne nécessite pas de droits de superutilisateur par défaut. Mais sans eux, cela vous permettra d'éditer et de sauvegarder les bases de données modifiées uniquement des applications installées sur la MicroSD.

Avec les droits root, vous pourrez à votre tour ajuster les bases de données de toutes les applications, y compris celles situées sur la mémoire interne.

Le programme interagit bien avec les fonctionnalités du gestionnaire de fichiers RootExplorer. Avec son aide, vous pouvez facilement ouvrir des bases de données dans l'application et les visualiser dans le catalogue.

De plus, le répertoire de fichiers vous permet d'ajouter des fichiers SQL à vos favoris, ce qui les rend plus faciles à retrouver. Il existe également un historique (il se trouve également dans l'application elle-même), où se trouvent les informations sur les chemins récents.

Décor

Le programme ne porte qu'une charge fonctionnelle. Par conséquent, vous pouvez oublier la beauté de l’interface. Le menu principal est présenté dans des couleurs bleu foncé et noir strictes.

Une police simple et des icônes pseudo-3D sont quelques-unes des autres fonctionnalités de l'interface.

De plus, il n'y a pas de localisation russe. Cependant, cela n’empêche pas les utilisateurs avertis de naviguer dans les outils de l’utilitaire.

Ce programme pratique deviendra un assistant fiable pour les geeks et les utilisateurs avancés qui souhaitent apporter des modifications aux applications directement sur leur appareil mobile.

J'ai finalement décidé d'écrire un article sur SQLite, dans lequel je souhaite résumer mon expérience de 3 ans dans l'utilisation de cette base de données sous Windows. Je vois que le sujet est populaire, mais il y a peu d'informations.

Une petite note introductive.

Cet article n'est pas destiné aux programmeurs débutants.
Ce n'est pas un tutoriel SQL.
Elle ne préconise pas l'utilisation de SQLite.
Elle ne préconise pas de ne pas utiliser SQLite.
L'article est rédigé sous la forme de questions d'un hypothétique débutant sur SQLite et de réponses (car il y a beaucoup d'informations et il est au moins un peu plus facile de les structurer de cette façon).

Qu’est-ce que SQLite ?
SQLite est une base de données multiplateforme intégrée qui prend en charge un ensemble assez complet de commandes SQL et est disponible en code source (en C).

Les codes sources de SQLite sont dans le domaine public, ce qui signifie qu'il n'y a aucune restriction d'utilisation.

Site Web (avec une excellente documentation en anglais) : http://sqlite.org

Version actuelle : 3.7.13

Vous pouvez compiler SQLite vous-même, mais je le télécharge déjà compilé sous forme de DLL Windows.

Pour votre propre assemblage, vous téléchargez généralement ce qu'on appelle. "fusion"
ceux. Sources SQLite sous la forme d'un fichier unique en C+sqlite3.h.

Pour réduire la taille du code SQLite en éliminant les éléments inutiles, toutes sortes de DEFINE sont utilisées.

Quelle est la popularité de SQLite ?
En bref : elle est partout. Au moins sur n'importe quel smartphone.
Quelle est sa fiabilité ?
Très. Lorsqu'une version sort, elle passe par une série de tests automatisés sérieux (~ 2 millions de tests sont effectués), la couverture du code par les tests est de 100% (depuis août 2009).
Quels autres outils les développeurs proposent-ils ?
Un utilitaire de console pour travailler avec des bases de données est disponible (sqlite3.exe, « un shell de ligne de commande pour accéder et modifier les bases de données SQLite »).
C'est tout?
Oui, tout des principaux développeurs. Cependant, d'autres personnes écrivent à toutes sortes de managers, etc.
Personnellement, je n'ai jamais trouvé l'idéal et n'utilise pas la console.
Que signifie « ensemble suffisamment complet de SQL » ?
Comme vous le savez, SQL a évolué dans différentes directions au cours de son développement. Les grands fabricants ont commencé à proposer toutes sortes d’extensions. Et bien que toutes sortes de normes soient acceptées (SQL 92), dans la vraie vie, toutes les grandes bases de données ne prennent pas entièrement en charge les normes + elles ont quelque chose qui leur est propre. Ainsi, SQLite essaie de vivre selon le principe d'un « ensemble minimal mais complet ». Il ne prend pas en charge les éléments compliqués, mais c'est à peu près la même chose que SQL 92.
Et il introduit certaines de ses propres fonctionnalités, qui sont très pratiques, mais pas standard.
Qu'est-ce qui pourrait spécifiquement prêter à confusion dans la prise en charge de SQL ?
Vous ne pouvez pas supprimer ou modifier une colonne dans un tableau (ALTER TABLE DROP COLUMN..., ALTER TABLE ALTER COLUMN...).
Il existe des déclencheurs, mais pas aussi puissants que ceux des grands SGBDR.
Il existe un support de clé étrangère, mais par défaut il est DÉSACTIVÉ.
Il n'y a pas de support intégré pour UNICODE (mais ce n'est généralement pas difficile à réaliser).
Aucune procédure stockée.
Qu'est-ce qui est bon ou inhabituel ?
a) Chaque enregistrement contient une colonne rowid virtuelle, qui est égale à un nombre de 64 bits (unique pour la table).
Vous pouvez déclarer votre colonne INTEGER PRIMARY KEY et cette colonne deviendra alors rowid (avec son propre nom, le nom rowid fonctionne toujours).
Lors de l'insertion d'un enregistrement, vous pouvez spécifier un rowid, ou vous ne pouvez pas le spécifier (et le système en insérera alors un unique).
Détails : www.sqlite.org/autoinc.html
b) vous pouvez facilement organiser la base de données en mémoire (c'est très pratique et je vous en parlerai un peu plus tard) ;
c) facile à transporter : par défaut, la base de données est constituée d'un seul fichier (au format multiplateforme) ;
d) le type de colonne ne détermine pas le type de valeur stockée dans ce champ d'enregistrement, c'est-à-dire que n'importe quelle valeur peut être saisie dans n'importe quelle colonne ;
e) de nombreuses fonctions intégrées (qui peuvent être utilisées en SQL) : www.sqlite.org/lang_corefunc.html ;
Je ne comprends pas - quel est le problème avec le type ? Pourquoi avez-vous alors besoin d’un type de colonne ?
Le type de colonne détermine la manière dont les valeurs sont comparées (elles doivent être converties en un seul type lors d'une comparaison, par exemple, à l'intérieur d'un index).
Mais cela ne vous oblige pas à saisir des valeurs de ce type particulier dans la colonne. Quelque chose comme une frappe faible.

Disons que nous avons déclaré une colonne comme « UN ENTIER ».
SQLite vous permet de saisir des valeurs de tout type dans cette colonne (999, "abc", "123", 678.525).
Si la valeur insérée n’est pas un entier, alors SQlite tente de la convertir en un entier.
Ceux. la chaîne « 123 » deviendra l'entier 123 et les valeurs restantes seront écrites « telles quelles ».

Alors, est-il possible de ne pas spécifier du tout le type de colonne ?
Cela se fait très souvent : CRÉER UNE TABLE foo (a,b,c,d).
Et l’architecture ? Il n'y a pas de serveur ?
Il n'y a pas de serveur, l'application elle-même est un serveur. L'accès à la base de données se fait via des « connexions » à la base de données (quelque chose comme un descripteur de fichier du système d'exploitation), que nous ouvrons via un appel à la fonction DLL correspondante. A l'ouverture, le nom du fichier de base de données est indiqué. S'il n'y a rien de tel, il est automatiquement créé.
Il est acceptable d'ouvrir plusieurs connexions à la même base de données (via un nom de fichier) dans la même application ou dans des applications différentes.
Le système utilise des mécanismes de blocage d'accès aux fichiers au niveau du système d'exploitation pour que tout fonctionne
(ces mécanismes ne fonctionnent généralement pas bien sur les lecteurs réseau, il n'est donc pas recommandé d'utiliser SQlite avec un fichier sur un réseau).
Initialement, SQLite fonctionnait sur le principe « plusieurs lisent, un écrit ».
Autrement dit, une seule connexion écrit dans la base de données à un moment donné. Si d'autres connexions tentent également d'écrire, elles obtiendront l'erreur SQLITE_BUSY.
Vous pouvez toutefois saisir un délai d'attente pour l'opération. Ensuite la connexion, face à une base de données occupée, attendra N secondes avant d'échouer avec l'erreur SQLITE_BUSY.
Alors, que devrions-nous faire?
Soit une connexion et toutes les requêtes qui la transitent, soit procéder à partir d'un éventuel délai d'attente et prévoir la répétition de l'exécution SQL.
Il existe une autre possibilité : il n'y a pas si longtemps, un nouveau type de journal SQLite est apparu : Write Ahead Log, WAL.
Si vous activez ce mode de journalisation particulier pour la base de données, alors plusieurs connexions pourront modifier simultanément la base de données.
Mais dans ce mode, la base de données occupe déjà plusieurs fichiers.
Eh bien, maintenant, il est clair pourquoi SQLite est terrible, parce qu'il n'a pas de CACHE GLOBAL ?
En effet, tous les SGBDR modernes sont impensables sans un cache partagé global, capable de stocker toutes sortes de fonctionnalités telles que des requêtes paramétrées compilées. Ceci est fait par un serveur qui n'est pas ici. Cependant, au sein d'une même application, SQlite peut partager le cache entre plusieurs connexions (lire ici : www.sqlite.org/sharedcache.html) et économiser de la mémoire.
Pourquoi tout le monde se plaint-il de la lenteur de SQLite ?
Deux raisons. Le premier concerne les paramètres par défaut. Ils travaillent pour la fiabilité, pas pour les performances.
Le second est un manque de compréhension du mécanisme d’enregistrement des transactions. Par défaut, après toute commande, SQLite validera la transaction (c'est-à-dire qu'il attendra que la base de données soit dans un état cohérent avant de couper l'alimentation). Selon le mode paranoïa, SQLite y consacrera de 50 à 300 ms (en attendant la fin de l'écriture des données sur le disque).
Que dois-je faire? J'ai besoin d'insérer 100 mille enregistrements et rapidement !
Supprimez les index, activez le mode de synchronisation OFF (ou NORMAL), insérez par portions de N mille (N - sélectionnez, prenez 5000 pour commencer). Avant d'insérer une portion, faites BEGIN TRANSACTION, après - COMMIT.
Mais j'ai trouvé une erreur ! Comment signaler ?
Certainement pas.

Le fait est que la popularité de SQLite fait peur : elle est partout. Je ne plaisante pas.
Et les développeurs ont été confrontés à un flot de messages d’erreur qui étaient soit causés par un malentendu, soit étaient des demandes de fonctionnalités cachées. Ils ont en fait clôturé l'acceptation directe des rapports contenant des erreurs.
Vous devriez donc vous inscrire à la liste de diffusion, y publier votre problème et espérer le meilleur.

Personnellement, j'ai eu une situation que j'ai interprétée comme un défaut de SQLIte. J'ai décrit cela dans le bulletin d'information. Le comportement de SQLite a été corrigé dans la prochaine version.

Un utilitaire pratique pour jouer avec SQLite.

À suivre.

Balises : Ajouter des balises