22
0
Fork 0
wiki/HowtoSQLite.md

87 lines
2.0 KiB
Markdown
Raw Permalink Normal View History

2018-05-21 23:16:43 +02:00
---
categories: databases
title: Howto SQLite
---
2016-12-29 11:25:39 +01:00
2018-05-21 23:16:43 +02:00
* Documentation : <http://www.sqlite.org/docs.html>
2016-12-29 11:25:39 +01:00
2018-05-22 08:55:48 +02:00
[SQLite](https://www.sqlite.org/) est un moteur de base de données dont le stockage se fait dans un simple fichier. Cela permet une utilisation simple (en ligne de commande, PHP, C, Ruby, etc.) et légère (il n'y a pas de démon). SQLite est utilisé dans des applications web légères et des logiciels connus comme Firefox.
SQLite utilise le langage de requêtes SQL et implémente la plupart de la spécification SQL-92. De nombreuses fonctionnalités sont donc compatibles avec MySQL et PostgreSQL mais des différences significatives existent. La documentation propose une aide à décision d'[utiliser ou non SQLite](http://www.sqlite.org/whentouse.html).
2016-12-29 11:25:39 +01:00
2018-05-21 23:16:43 +02:00
## Installation
~~~
# apt install sqlite3
$ sqlite3 --version
3.16.2 2017-01-06 16:32:41 a65a62893ca8319e89e48b8a38cf8a59c69a8209
2016-12-29 11:25:39 +01:00
~~~
2018-05-21 23:16:43 +02:00
## Utilisation
* Documentation CLI : <http://www.sqlite.org/cli.html>
Créer un fichier SQLite :
2016-12-29 11:25:39 +01:00
~~~
2018-05-21 23:16:43 +02:00
$ sqlite3 foo.db
SQLite version 3.16.2 2017-01-06 16:32:41
Enter ".help" for usage hints.
2018-05-22 09:58:59 +02:00
sqlite> .tables
2018-05-21 23:16:43 +02:00
sqlite> .exit
$ file foo.db
foo.db: empty
~~~
Créer une table :
~~~
sqlite> create table foo (i int);
sqlite> .tables
foo
sqlite> .schema foo
CREATE TABLE foo (i int);
~~~
Actions sur une table :
~~~
sqlite> INSERT INTO foo VALUES (42);
sqlite> SELECT * FROM foo;
42
sqlite> UPDATE foo SET i=43 WHERE i=42;
sqlite> DELETE FROM foo WHERE i=43;
sqlite> DROP TABLE foo;
~~~
## PHP et SQLite
2018-05-22 15:07:00 +02:00
Assurez vous d'avoir l'extension sqlite3 installée et active.
Sur un système Debian `apt install php-sqlite3` récupérera l'extension si elle n'est pas déjà présente.
2018-05-21 23:16:43 +02:00
2018-05-22 15:07:00 +02:00
* <http://php.net/manual/fr/book.sqlite3.php>
~~~
$db = new SQLite3('foo.db');
$db->exec('CREATE TABLE foo (i int)');
$db->exec('INSERT INTO foo VALUES (42)');
$result = $db->query('select * from foo');
2018-05-21 23:16:43 +02:00
~~~
2018-05-22 15:07:00 +02:00
Il est aussi possible de manipuler une base SQLite avec PDO
2018-05-21 23:16:43 +02:00
~~~
2018-05-22 15:07:00 +02:00
try{
$pdo = new PDO('sqlite:foo.db');
} catch (PDOException $e){
exit('PDO Error');
}
2018-05-21 23:16:43 +02:00
2018-05-22 15:07:00 +02:00
~~~
2016-12-29 11:25:39 +01:00