SQLite ist eine leichtgewichtige Datenbank und wird in vielen eingebetteten Produkten verwendet. In eingebetteten Geräten sind möglicherweise nur wenige Hundert K erforderlich. Es kann gängige Betriebssysteme wie Windows/Linux/Unix unterstützen und mit vielen Programmiersprachen wie Tcl, PHP, Java usw. sowie ODBC-Schnittstellen kombiniert werden. Es wird auch mit MySQL und PostgreSQL verglichen In Bezug auf Datenbankverwaltungssysteme ist die Verarbeitungsgeschwindigkeit dieser weltberühmten Open-Source-Software schneller als bei allen anderen.
Obwohl SQLite sehr klein ist, stehen die von ihm unterstützten SQL-Anweisungen anderen Open-Source-Datenbanken in nichts nach. Zu den unterstützten SQL-Anweisungen gehört:
ATTACH DATABASE
TRANSAKTION BEGINNEN
Kommentar
COMMIT-TRANSAKTION
KOPIE
INDEX ERSTELLEN
TABELLE ERSTELLEN
TRIGGER ERSTELLEN
ANSICHT ERSTELLEN
LÖSCHEN
DATENBANK ENTFERNEN
DROP-INDEX
DROP-TISCH
DROP-TRIGGER
TROPFENANSICHT
TRANSAKTION BEENDEN
ERKLÄREN
Ausdruck
EINFÜGEN
ON CONFLICT-Klausel
PRAGMA
ERSETZEN
ROLLBACK-TRANSAKTION
WÄHLEN
UPDATE
Gleichzeitig werden auch Transaktionsverarbeitungsfunktionen usw. unterstützt. Manche Leute sagen auch, dass es wie Microsoft Access ist. Manchmal fühlt es sich ein bisschen ähnlich an, aber tatsächlich sind sie sehr unterschiedlich. Beispielsweise unterstützt SQLite plattformübergreifend, ist einfach zu bedienen und kann Datenbanken in vielen Sprachen direkt erstellen, im Gegensatz zu Access, das keine Unterstützung von Office erfordert. Wenn Sie eine sehr kleine Anwendung haben oder eine eingebettete Entwicklung durchführen möchten und nicht über ein geeignetes Datenbanksystem verfügen, können Sie jetzt über den Einsatz von SQLite nachdenken. Derzeit ist die neueste Version 3.2.2 und die offizielle Website lautet http://www.sqlite.org . Dort können der Quellcode und die Dokumentation abgerufen werden. Da die Datenbankstruktur einfach ist und nicht viel Systemquellcode vorhanden ist, eignet sie sich gleichzeitig auch für Fachleute, die die Entwicklung von Datenbanksystemen studieren möchten.
Beginnen wir nun mit einer kurzen Einführung. Ich möchte hauptsächlich einige Fragen klären, zum einen die Installation und Verwendung und zum anderen die Entwicklung in Verbindung mit PHP.
1. Installation
1. Die Windows-Plattform
lädt Dateien unter Windows herunter, bei denen es sich eigentlich um ein Befehlszeilenprogramm handelt (Download-Adresse: sqlite>
# SQLite-Eingabeaufforderung. Wenn Sie die Befehlshilfe anzeigen möchten, geben Sie .help ein. In SQLite beginnen alle Systembefehle mit .:
sqlite> .help
.databases Listet Namen und Dateien der angehängten Datenbanken auf
.dump ?TABLE? ... Speichert die Datenbank in einem SQL-Textformat
.echo ON|OFF Befehlsecho ein- oder ausschalten
.exit Beendet dieses Programm
.explain ON|OFF Schaltet den für EXPLAIN geeigneten Ausgabemodus ein oder aus.
.header(s) ON|OFF Schaltet die Anzeige von Kopfzeilen ein oder aus
.help Diese Nachricht anzeigen
.import FILE TABLE Daten aus FILE in TABLE importieren
.indices TABLE Zeigt die Namen aller Indizes in TABLE an
.mode MODE ?TABLE? Legt den Ausgabemodus fest, wobei MODE einer der folgenden ist:
csv Durch Kommas getrennte Werte
Spalte Linksbündige Spalten (siehe .width)
html HTML-<Tabelle>-Code
Fügen Sie SQL-Einfügeanweisungen für TABLE ein
Zeile Ein Wert pro Zeile
Listen Sie Werte auf, die durch die Zeichenfolge .separator getrennt sind
tabs Durch Tabulatoren getrennte Werte
tcl TCL-Listenelemente
.nullvalue STRING Gibt STRING anstelle von NULL-Werten aus
.output FILENAME Ausgabe an FILENAME senden
.output stdout Ausgabe an den Bildschirm senden
.prompt MAIN CONTINUE Ersetzt die Standard-Eingabeaufforderungen
.quit Beendet dieses Programm
.read FILENAME SQL in FILENAME ausführen
.schema ?TABLE? Zeigt die CREATE-Anweisungen an
.separator STRING Trennzeichen ändern, das vom Ausgabemodus und .import verwendet wird
.show Zeigt die aktuellen Werte für verschiedene Einstellungen an
.tables ?PATTERN? Listet Namen von Tabellen auf, die einem LIKE-Muster entsprechen
.timeout MS Versuchen Sie, gesperrte Tabellen für MS Millisekunden zu öffnen
.width NUM NUM ... Spaltenbreiten für den „Spalten“-Modus festlegen
sqlite>
www.knowsky.com
# Wir erstellen ein Datenbankkatalog
sqlite> Tabellenkatalog erstellen(
...> id integer Primarykey,
...> PID-Ganzzahl,
...> name varchar(10) UNIQUE
...> );
sqlite>
# Wenn die Tabelle vorhanden ist, wird Folgendes angezeigt:
SQL-Fehler: Tabellenkatalog existiert bereits
# Wir erstellen Indexinformationen
Erstellen Sie den Index „catalog_idx“ für den Katalog (id asc);
# Wir überprüfen die Tischinformationen, um zu sehen, wie viele Tische es gibt
sqlite>.table
aa-Katalog
# Sehen Sie sich die Struktur der Tabelle an:
sqlite> .schema-Katalog
TABELLE-Katalog erstellen(
id ganzzahliger Primärschlüssel,
PID-Ganzzahl,
Name varchar(10) EINZIGARTIG
);
CREATE INDEX „catalog_idx“ für „catalog(id asc)“;
#Fügen Sie einen Datensatz in die Datentabelle ein
sqlite> in Katalog (ppid,name) Werte einfügen ('001','heiyeluren');
#Keine Eingabeaufforderungen bei Erfolg. Wenn der Ausdruck falsch ist, wird eine Fehlermeldung angezeigt:
SQL-Fehler: in der Nähe von „set“: Syntaxfehler
# Rufen Sie ab, wie viele Datensätze vorhanden sind
sqlite> count(*) aus Katalog auswählen;
1
# Suchdatensätze abrufen
sqlite> * aus Katalog auswählen;
1|1|heiyeluren
Es ist jedenfalls kein Problem, wenn Sie Standard-SQL für den Betrieb verwenden. Wenn Sie sich nicht sicher sind, können Sie die Hilfeinformationen auf der offiziellen Website überprüfen. Darüber hinaus ist zu beachten, dass SQLite das Ändern der Tabellenstruktur nicht unterstützt. Wenn Sie die Tabellenstruktur ändern möchten, können Sie die Tabelle nur löschen und neu erstellen. Daher müssen Sie beim Erstellen der Tabelle die Skalierbarkeit berücksichtigen. Es wird geschätzt, dass diese Funktion in Zukunft gestärkt wird.
2. Linux/Unix-Plattformfehler
: Ich habe es noch nicht installiert, haha, aber es ähnelt wahrscheinlich Windows. Ich werde diesen Teil ein anderes Mal nachholen.
2. PHP-Entwicklung von SQLite
unterstützt nicht mehr standardmäßig SQLite. Dies zeigt, wie einflussreich es ist. Wenn Sie PHP für SQLite entwickeln möchten, wird empfohlen, PHP 5.0.0 zu verwenden Ich verwende derzeit die PHP-Version 5.0.4, die SQLite-Erweiterungen direkt unterstützt. Wenn Sie sich nicht sicher sind, können Sie die PHP-bezogenen Dokumente überprüfen.
Hier spreche ich hauptsächlich über die Entwicklung von SQLite. Derzeit unterstützen alle gängigen DB-Klassen in PHP SQLite-Treiber, einschließlich der PEAR::DB-Klasse und der ADOdb-Klasse, sodass die Verwendung von DB für die Entwicklung ebenfalls eine gute Wahl ist.
Der Einfachheit halber werden
die
folgenden Vorgänge alle unter Windows ausgeführt
. Es gibt viele Verarbeitungsfunktionen für SQLite in PHP. Detaillierte Informationen finden Sie im PHP-Handbuch.Wir verwenden die Funktion „sqlite_open()“, um eine SQLite-Datenbank erfolgreich zu öffnen, und geben „false“ zurück, wenn sie fehlschlägt. Um eine SQL-Abfrage auszuführen, verwenden wir die Funktion „sqlite_query“.
Im Folgenden gehe ich davon aus, dass Sie eine SQLite-Datenbankdatei abc.db im aktuellen PHP-Programmverzeichnis haben. Wir betreiben diese Datei:
<?php
//SQLite-Datenbank öffnen
$db = @sqlite_open("abc.db");
//Ausnahmebehandlung
if (!$db) die("Connection Sqlite failed.n");
//Eine Datenbank namens foo hinzufügen
@sqlite_query($db, "CREATE TABLE foo (bar varchar(10))");
//Einen Datensatz einfügen
@sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
//Alle Datensätze abrufen
$result = @sqlite_query($db, 'select bar from foo');
//Drucken Sie die erhaltenen Ergebnisse
print_r(sqlite_fetch_array($result));
?>
Die Ausgabe, die wir sehen, ist:
Array
(
[0] => fnord
[bar] => fnord
)
beweist, dass unser Code erfolgreich ausgeführt wurde. Wenn keine Eingabe erfolgt, überprüfen Sie bitte das Programm oder ob Ihre Datenbankdatei vorhanden ist.
Dann können Sie mit dieser grundlegenden Operation darüber nachdenken, komplexere Operationen und SQL zu verwenden und sich damit bei der Verwaltung von Informationen helfen zu lassen. Ich denke, das wird kein Problem sein.
2. Verwenden Sie PHP zum Erstellen und Betreiben der Datenbank
. Wenn Sie keine Tools wie sqlite.exe haben, können Sie auch eine SQLite-Datenbank über PHP erstellen und verwalten.
Tatsächlich ist der Inhalt der über das Programm sqlite.exe erstellten Datenbank leer. Tatsächlich existiert die Datenbankdatei erst, nachdem die Tabelle erstellt und Daten hinzugefügt wurden. Wir können also manuell eine Datei hinzufügen, beispielsweise einen leeren Test. db-Datei? Und bearbeiten Sie sie. Dies ist durchaus möglich. Im Folgenden verwenden wir das PHP-Programm, um eine Datenbank zu erstellen und einfache Funktionen zum Erstellen von Datentabellen, zum Einfügen von Daten und zum Abrufen von Daten auszuführen.
Schauen wir uns zunächst den Code an: (Der Code ist länger, aber leichter zu verstehen)
<?php
/**
* Datei: sqlite.php
* Funktion: Verarbeitung der SQLite-Datenbank
* Autor: heiyeluren
* Zeit: 5.8.2005
*/
define("LN", __LINE__);//Zeilennummer
define("FL", __FILE__);//Aktuelle Datei
define("DEBUG", 0);//Debug-Schalter
$db_name = "heiyeluren.db";
//Erstelle eine Datenbankdatei, der Dateiinhalt ist leer
if (!file_exists($db_name)) {
if (!($fp = fopen($db_name, "w+"))) {
exit(error_code(-1, LN));
}
fclose($fp);
}
//Datenbankdatei öffnen
if (!($db = sqlite_open($db_name))) {
exit(error_code(-2, LN));
}
//Datentabellenstruktur generieren
if (!sqlite_query($db, "DROP TABLE test")) {
exit(error_code(-3, LN));
}
if (!sqlite_query($db, "CREATE TABLE test (id integer Primary Key,pid integer,name varchar(10) UNIQUE)")) {
exit(error_code(-3, LN));
}
//Fügen Sie ein Datenelement ein
if (!sqlite_query($db, " INSERT INTO test (name) VALUES ('heiyeluren') ")) {
exit(error_code(-4, LN));
}
//Daten abrufen
if (!($result = sqlite_query($db, "SELECT * FROM test"))) {
exit(error_code(-5, LN));
}
//Die abgerufenen Daten abrufen und anzeigen
while ($array = sqlite_fetch_array($result)) {
echo "ID: ". $array[id] ."<br>Name: " $array[name] ;
}
/* Fehlermeldungscodefunktion */
Funktion error_code($code, $line_num, $debug=DEBUG)
{
if ($code<-6 || $code>-1) {
return false;
}
switch($code) {
case -1: $errmsg = „Fehler beim Erstellen der Datenbankdatei.“;
brechen;
case -2: $errmsg = „Öffnen der SQLite-Datenbankdatei fehlgeschlagen.“;
brechen;
case -3: $errmsg = „Tabelle erstellen fehlgeschlagen, Tabelle existiert bereits.“;
brechen;
case -4: $errmsg = „Daten einfügen fehlgeschlagen.“;
brechen;
case -5: $errmsg = „Datenbankdaten abfragen fehlgeschlagen.“;
brechen;
case -6: $errmsg = „Datenabruf fehlgeschlagen.“;
brechen;
Fall -7: $errmsg = "";
brechen;
Standard: $errmsg = „Unbekannter Fehler.“;
}
$m = "<b>[Fehler]</b><br>Datei: ". Basisname(FL) ." <br>Zeile: "LN ."<br>Mesg: ". ;
if (!$debug) {
($m = $errmsg);
}
return $m;
}
?>
Bei korrekter Bedienung gibt das Programm schließlich Folgendes aus:
ID: 1
Name: heiyeluren
Unser obiges Programm umfasst relativ vollständige Funktionen, einschließlich Debugging, Ausnahmebehandlung, Datenbankzugriff usw. Es wird als einfache Anwendung betrachtet. Sie können es bei Interesse auch erweitern.
* Ende:
Unsere Grundoperationen sind hier. Ich werde den Inhalt vervollständigen, wenn ich in Zukunft Zeit habe. Wenn Sie interessiert sind, können Sie es recherchieren. Vielleicht benötigt Ihre persönliche Homepage eine so kleine Datenbank, um Ihnen zu helfen.
* Referenzdokumente:
http://www.donews.net/limodou/archive/2004/03/21/7997.aspx
http://www.linuxsir.org/bbs/showthread.php?p=1213668#post1213668
* Offizielle Website der SQLite-Ressource: http://www.sqlite.org
SQL-Syntax: http://www.sqlite.org/lang.html
Entwicklungsdokumentation: http://www.sqlite.org/docs.html
FAQ: http://www.sqlite.org/faq.html
Download-Adresse: http://www.sqlite.org/download.html
Autor: heiyeluren
Datum: 5.8.2005