SQLite est une base de données légère. Sa cible de conception est intégrée et elle a été utilisée dans de nombreux produits embarqués. Elle occupe très peu de ressources dans les appareils embarqués, elle ne peut nécessiter que quelques centaines de Ko. La mémoire est suffisante. Il peut prendre en charge les systèmes d'exploitation courants tels que Windows/Linux/Unix et peut être combiné avec de nombreux langages de programmation, tels que Tcl, PHP, Java, etc., ainsi qu'avec les interfaces ODBC. Il est également comparé à Mysql et PostgreSQL, deux. logiciel open source de renommée mondiale En termes de systèmes de gestion de bases de données, sa vitesse de traitement est plus rapide que tous.
Bien que SQLite soit très petit, les instructions SQL qu'il prend en charge ne sont pas inférieures aux autres bases de données open source. Le SQL qu'il prend en charge comprend :
ATTACH DATABASE.
COMMENCER LA TRANSACTION
commentaire
ENGAGER LA TRANSACTION
COPIE
CRÉER UN INDICE
CRÉER UN TABLEAU
CRÉER UN DÉCLENCHEUR
CRÉER UNE VUE
SUPPRIMER
DÉTACHER LA BASE DE DONNÉES
INDICE DE BAISSE
TABLEAU DE DÉPÔT
DÉCLENCHEUR
VUE GOUTTE
FIN DE LA TRANSACTION
EXPLIQUER
expression
INSÉRER
SUR la clause CONFLIT
PRAGMA
REMPLACER
TRANSACTION D'ANNULATION
SÉLECTIONNER
MISE À JOUR
En même temps, il prend également en charge les fonctions de traitement des transactions, etc. Certaines personnes disent également que c'est comme Microsoft Access. Parfois, cela semble un peu similaire, mais en fait, ils sont très différents. Par exemple, SQLite prend en charge plusieurs plates-formes, est simple à utiliser et peut créer directement des bases de données dans de nombreuses langues, contrairement à Access, qui ne nécessite pas le support d'Office. Si vous avez une très petite application ou si vous souhaitez effectuer un développement intégré et ne disposez pas d'un système de base de données approprié, vous pouvez envisager d'utiliser SQLite dès maintenant. Actuellement, sa dernière version est la 3.2.2 et son site officiel est : http://www.sqlite.org , où le code source et la documentation peuvent être obtenus. Dans le même temps, étant donné que la structure de la base de données est simple et qu'il n'y a pas beaucoup de code source du système, elle convient également aux professionnels qui souhaitent étudier le développement de systèmes de bases de données.
Commençons maintenant par une brève introduction. Je souhaite principalement clarifier quelques problèmes, l'un est de savoir comment l'installer et l'utiliser, et l'autre est de savoir comment le développer en conjonction avec PHP.
1. Installation
1. La plateforme Windows
télécharge les fichiers sous Windows, qui est en fait un programme en ligne de commande (adresse de téléchargement : sqlite>
# Invite SQLite. Si vous souhaitez afficher l'aide sur les commandes, entrez .help Dans SQLite, toutes les commandes système commencent par .:
sqlite> .aide
.databases Liste les noms et les fichiers des bases de données attachées
.dump ?TABLE? ... Vider la base de données au format texte SQL
.echo ON|OFF Activer ou désactiver l'écho de la commande
.exit Quitter ce programme
.explain ON|OFF Active ou désactive le mode de sortie adapté à EXPLAIN.
.header(s) ON|OFF Activer ou désactiver l'affichage des en-têtes
.help Afficher ce message
.import FILE TABLE Importer des données de FILE vers TABLE
.indices TABLE Afficher les noms de tous les indices sur TABLE
.mode MODE ?TABLE? Définit le mode de sortie où MODE est l'un des suivants :
csv Valeurs séparées par des virgules
column Colonnes alignées à gauche (voir .width)
html Code HTML <table>
insérer des instructions d'insertion SQL pour TABLE
line Une valeur par ligne
list Valeurs délimitées par une chaîne .separator
tabs Valeurs séparées par des tabulations
tcl Éléments de la liste TCL
.nullvalue STRING Imprimer STRING à la place des valeurs NULL
.output FILENAME Envoyer la sortie à FILENAME
.output stdout Envoyer la sortie à l'écran
.prompt MAIN CONTINUE Remplacer les invites standard
.quit Quitter ce programme
.read FILENAME Exécuter SQL dans FILENAME
.schema ?TABLE? Afficher les instructions CREATE
.separator STRING Change le séparateur utilisé par le mode de sortie et .import
.show Afficher les valeurs actuelles pour divers paramètres
.tables ?PATTERN? Liste les noms des tables correspondant à un modèle LIKE
.timeout MS Essayez d'ouvrir des tables verrouillées pendant MS millisecondes
.width NUM NUM ... Définir la largeur des colonnes pour le mode "colonne"
sqlite>
www.knowsky.com
# Nous créons une base de données catlog
sqlite> créer un catalogue de tables (
...> id clé primaire entière,
...> pid entier,
...> nom varchar(10) UNIQUE
...> );
sqlite>
# Si la table existe, elle demandera :
Erreur SQL : le catalogue de tables existe déjà
# Nous créons des informations d'index
créer l'index catalog_idx sur le catalogue (id asc) ;
# Nous vérifions les informations des tables pour voir combien de tables il y a
sqlite>.table
un catalogue
# Visualiser la structure du tableau :
sqlite> catalogue .schema
CRÉER un catalogue TABLE (
id clé primaire entière,
pid entier,
nom varchar(10) UNIQUE
);
CREATE INDEX catalog_idx sur catalog(id asc);
#Insérer un enregistrement dans la table de données
sqlite> insérer dans le catalogue (ppid,name) les valeurs ('001','heiyeluren');
#Aucune invite en cas de succès. Si l'expression est fausse, un message d'erreur s'affichera :
Erreur SQL : près de « set » : erreur de syntaxe
# Récupérer le nombre d'enregistrements
sqlite> sélectionnez count(*) dans le catalogue ;
1
# Récupérer les enregistrements de recherche
sqlite> sélectionnez * dans le catalogue ;
1|1|heiyeluren
Quoi qu'il en soit, il n'y a aucun problème si vous utilisez SQL standard pour fonctionner. Si vous n'êtes pas sûr, vous pouvez consulter les informations d'aide sur le site officiel. De plus, il convient de noter que SQLite ne prend pas en charge la modification de la structure de la table. Si vous souhaitez modifier la structure de la table, vous pouvez uniquement supprimer la table et la recréer, vous devez donc tenir compte de l'évolutivité lors de la création de la table. On estime que cette fonction sera renforcée à l'avenir.
2. Erreur de plateforme Linux/Unix
: je ne l'ai pas encore installé, haha, mais c'est probablement similaire à Windows, je rattraperai cette partie un autre jour.
2. Développement PHP de SQLite.
PHP 5 ne prend plus en charge Mysql par défaut, mais prend en charge SQLite par défaut. Donc, si vous souhaitez développer PHP pour SQLite, il est recommandé d'utiliser PHP 5.0.0 ou. ci-dessus. J'utilise actuellement PHP version 5.0.4, qui prend directement en charge les extensions SQLite. Je n'expliquerai pas comment installer les extensions PHP en détail ici. Si vous n'êtes pas sûr, vous pouvez consulter les documents relatifs à PHP.
Ici, je parle principalement du développement de SQLite. Actuellement, toutes les classes DB traditionnelles de PHP prennent en charge les pilotes SQLite, y compris la classe PEAR::DB et la classe ADOdb, donc utiliser DB pour le développement est également un bon choix.
souci de simplicité,
les
opérations suivantes sont toutes effectuées sur le système Windows
qu'il exploite. Il existe de nombreuses fonctions de traitement pour SQLite en PHP. Vous pouvez consulter le manuel PHP pour des informations détaillées.Nous utilisons la fonction sqlite_open() pour ouvrir une base de données sqlite. Elle renvoie une ressource d'opération avec succès et renvoie false en cas d'échec. Ensuite, toutes les opérations suivantes sont effectuées sur cette ressource. Pour exécuter une requête SQL, utilisez la fonction sqlite_query.
Ci-dessous, je suppose que vous avez un fichier de base de données sqlite abc.db dans le répertoire actuel du programme PHP. Nous exploitons ce fichier :
<?php
//Ouvre la base de données SQLite
$db = @sqlite_open("abc.db");
//Gestion des exceptions
if (!$db) die("Échec de la connexion SQLite.n");
//Ajouter une base de données appelée foo
@sqlite_query($db, "CREATE TABLE foo (bar varchar(10))");
//Insérer un enregistrement
@sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
//Récupérer tous les enregistrements
$result = @sqlite_query($db, 'sélectionner la barre de foo');
//Imprime les résultats obtenus
print_r(sqlite_fetch_array($result));
>
Le résultat que nous voyons est :
Array
(
[0] => fnord
[bar] => fnord
)
prouve que notre code est exécuté avec succès. S'il n'y a aucune entrée, veuillez vérifier le programme ou si votre fichier de base de données existe.
Ensuite, avec cette opération de base, vous pouvez envisager d'utiliser des opérations plus complexes et SQL pour le faire fonctionner et le laisser vous aider à gérer les informations. Vous pouvez créer un livre d'or ou un système CMS, je pense qu'il n'y aura aucun problème.
2. Utilisez PHP pour créer et exploiter la base de données
. Si vous ne disposez pas d'outils tels que sqlite.exe, vous pouvez également créer une base de données sqlite via PHP et la gérer.
En fait, le contenu de la base de données créée via le programme sqlite.exe est vide. En fait, le fichier de base de données n'existe qu'après la création de la table et l'ajout des données. Nous pouvons donc ajouter manuellement un fichier, tel qu'un test vide. db ? Et opérer dessus. C'est tout à fait possible. Ci-dessous, nous utiliserons le programme PHP pour créer une base de données et exécuter des fonctions simples de création de tables de données, d'insertion de données et de récupération de données.
Regardons d'abord le code : (le code est plus long, mais plus facile à comprendre)
<?php
/**
* Fichier : sqlite.php
* Fonction : Traitement de la base de données SQLite
* Auteur : heiyeluren
* Heure : 2005-8-5
*/
définir("LN", __LINE__);//Numéro de ligne
définir("FL", __FILE__);//Fichier actuel
définir("DEBUG", 0);//Commutateur de débogage
$db_name = "heiyeluren.db";
//Créer un fichier de base de données, le contenu du fichier est vide
if (!file_exists($db_name)) {
if (!($fp = fopen($db_name, "w+"))) {
exit(code_erreur(-1, LN));
}
fclose($fp);
}
//Ouvrir le fichier de base de données
si (!($db = sqlite_open($db_name))) {
exit(code_erreur(-2, LN));
}
//Générer la structure de la table de données
if (!sqlite_query($db, "DROP TABLE test")) {
exit(code_erreur(-3, LN));
}
if (!sqlite_query($db, "CREATE TABLE test (id clé primaire entière,pid entier,nom varchar(10) UNIQUE)")) {
exit(code_erreur(-3, LN));
}
//Insérer une donnée
if (!sqlite_query($db, " INSERT INTO test (name) VALUES ('heiyeluren') ")) {
exit(code_erreur(-4, LN));
}
//Récupérer les données
if (!($result = sqlite_query($db, "SELECT * FROM test"))) {
exit(code_erreur(-5, LN));
}
//Récupère les données récupérées et les affiche
while ($array = sqlite_fetch_array($result)) {
echo "ID : ". $array[id] ."<br>Nom : " $array[nom] ;
}
/* Fonction de code de message d'erreur */
fonction error_code($code, $line_num, $debug=DEBUG)
{
si ($code<-6 || $code>-1) {
renvoie faux ;
}
commutateur($code) {
case -1 : $errmsg = "Erreur de création du fichier de base de données.";
casser;
case -2 : $errmsg = "Échec de l'ouverture du fichier de base de données SQLite.";
casser;
case -3 : $errmsg = "Échec de la création de la table, la table existe déjà.";
casser;
cas -4 : $errmsg = "L'insertion des données a échoué.";
casser;
case -5 : $errmsg = "Échec de la requête des données de la base de données.";
casser;
cas -6 : $errmsg = "Échec de la récupération des données.";
casser;
cas -7 : $errmsg = "" ;
casser;
par défaut : $errmsg = "Erreur inconnue.";
}
$m = "<b>[Erreur ]</b><br>Fichier : ". basename(FL) ." <br>Ligne : "LN ."<br>Mesg : "$errmsg ."" ;
si ($debug) {
($m = $errmsg);
}
retourner millions de dollars ;
}
?>
Si vous travaillez correctement, le programme affichera finalement :
ID : 1
Nom : heiyeluren
Notre programme ci-dessus comprend des fonctions relativement complètes, notamment le débogage, la gestion des exceptions, l'accès à la base de données, etc. Il est considéré comme une application simple. Vous pouvez également l'agrandir si vous êtes intéressé.
* Fin :
nos opérations de base sont ici. Je compléterai le contenu quand j'aurai le temps dans le futur. Si vous êtes intéressé, vous pouvez le rechercher. Peut-être que votre page d'accueil personnelle a besoin d'une si petite base de données pour vous aider.
* Documents de référence :
http://www.donews.net/limodou/archive/2004/03/21/7997.aspx
http://www.linuxsir.org/bbs/showthread.php?p=1213668#post1213668
* Site officiel de la ressource SQLite : http://www.sqlite.org
Syntaxe SQL : http://www.sqlite.org/lang.html
Documentation de développement : http://www.sqlite.org/docs.html
FAQ : http://www.sqlite.org/faq.html
Adresse de téléchargement : http://www.sqlite.org/download.html
Auteur : heiyeluren
Date : 2005-8-5