diff --git a/sqlite/QUICK-REF-SQLITE.md b/sqlite/QUICK-REF-SQLITE.md
new file mode 100644
index 0000000000000000000000000000000000000000..6b7dbb96b78e60784d4649f361793a72ba338308
--- /dev/null
+++ b/sqlite/QUICK-REF-SQLITE.md
@@ -0,0 +1,289 @@
+# SQLITE 3.41
+
+## Prérequis
+
+- Dernière version sqlite 3.41
+
+## Resources
+
+- https://www.sqlite.org/
+- https://www.sqlitetutorial.net
+- https://www.tutorialspoint.com/sqlite
+
+
+## Démarrer sqlite
+
+```bash
+~$ sqlite3
+SQLite version 3.41.2 2023-03-17 14:22:45
+Enter ".help" for usage hints.
+Connected to a transient in-memory database.
+Use ".open FILENAME" to reopen on a persistent database.
+sqlite> 
+```
+
+Puis, configurer **à chaque fois** les instructions suivantes pour avoir des contraintes strictes et pour forcer l'emploi des clés étrangères.
+
+```bash
+sqlite> PRAGMA foreign_keys = ON;
+```
+
+Enfin, pour un peu de cosmétique afin de mieux lire le résultat des requêtes.
+
+```bash
+sqlite> .mode column
+sqlite> .headers on
+```
+
+### Ouvrir ou créer une base de données
+
+```bash
+sqlite3 test.db
+```
+
+```bash
+sqlite3
+sqlite> .open test.db
+```
+
+### Exécuter un script sql
+
+```bash
+sqlite> .read monscript.sql
+```
+
+### Autres commandes
+
+```bash
+sqlite> .tables # liste les tables
+sqlite> .fullschema # liste les schémas détaillés des tables
+sqlite> .schema Conference # liste le schéma d'une table spécifique
+sqlite> ATTACH conf.db as conference # Utiliser une base de données 
+sqlite> DETACH conference # Fermer une base de données 
+```
+
+
+# Création d'une base de données
+
+## Système de type
+
+Le système de type de sqlite est très flexible. Il n'est pas nécessaire de préciser un type et celui qui est donné est conseillé, mais non obligatoire (https://www.sqlite.org/flextypegood.html). Il est dès lors possible de créer une table ainsi : `CREATE TABLE Car(immatriculation, color, owner);`.
+
+Voici un extrait de la documentation officielle (https://www.sqlite.org/stricttables.html):
+
+"_So an attempt to insert the string '123' results in an integer 123 being inserted. But if the content cannot be losslessly converted into an integer, for example if the input is 'xyz', then the original string is inserted instead_".
+
+Ce choix est sujet à débats et à mon avis il offre plus d'inconvénients que d'avantages. 
+
+Heureusement, depuis la version 3.37, sqlite offre le mode STRICT pour renforcer le système de type pour chaque table individuellement : `CREATE TABLE t (i INTEGER, t TEXT) STRICT;` (https://www.sqlite.org/stricttables.html).
+
+Dans ce cas, le typage doit être spécifié, si une conversion implicite n'est pas possible, une erreur est levée. Le type `ANY` peut toutefois être employé pour indiquer qu'une colonne peut comporter différents types.
+
+
+## Création d'une table (préférez les tables strictes)
+
+```sql
+CREATE TABLE Test (
+    i INTEGER NOT NULL PRIMARY KEY,
+    t TEXT NOT NULL,
+    r REAL,
+    a ANY
+) STRICT;
+```
+
+## Création d'une table avec clé auto incrémentée
+
+```sql
+CREATE TABLE Test (
+    i INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
+    t TEXT,
+) STRICT;
+```
+
+## Création d'une table avec clé composée de plusieurs attributs
+
+```sql
+CREATE TABLE Test (
+    i INTEGER NOT NULL,
+    j INTEGER NOT NULL,
+    t TEXT,
+    PRIMARY KEY (i,j)
+) STRICT;
+```
+
+## Création d'une table avec contraintes
+
+```sql
+CREATE TABLE Test (
+    i INTEGER NOT NULL PRIMARY KEY,
+    j INTEGER NOT NULL,
+    k INTEGER NOT NULL,
+    CHECK (j > 0 && j < 100),
+    UNIQUE (j,k),
+    FOREIGN KEY (k) REFERENCES Table(k)
+) STRICT;
+```
+
+## Suppression d'une table avec ses enregistrements
+
+```sql
+DROP TABLE Test;
+```
+
+## Trigger
+
+- https://www.sqlite.org/lang_createtrigger.html
+- https://www.sqlitetutorial.net/sqlite-trigger/
+
+### Syntaxe générale
+
+```sql
+CREATE TRIGGER [IF NOT EXISTS] trigger_name 
+   [BEFORE|AFTER|INSTEAD OF] [INSERT|UPDATE|DELETE] 
+   ON table_name
+   [WHEN condition]
+BEGIN
+ statements;
+END;
+```
+
+Suppression
+
+```sql
+DROP TRIGGER trigger_name;
+```
+
+### Exemple 1 
+
+L'insertion est possible si la valeur de l'attribut `j` du nouvel enregistrement n'existe pas dans la table `Table`.
+
+```sql
+CREATE TRIGGER trigger_name BEFORE INSERT ON Test
+BEGIN
+SELECT
+  CASE WHEN NEW.j IN (SELECT j FROM Table) THEN RAISE(ABORT, 'valid')
+  END;
+END; 
+```
+
+`RAISE` est une fonction.
+
+ce trigger réalise exactement la même chose
+
+```sql
+CREATE TRIGGER trigger_name BEFORE INSERT ON Test WHEN NEW.i == 10
+BEGIN
+SELECT
+    Raise(ABORT, 'valid');
+END; 
+```
+
+### Exemple 2 
+
+CREATE TRIGGER trigger_name BEFORE UPDATE ON Test 
+BEGIN
+    INSERT INTO Log VALUES (NEW.i, OLD.i);
+END; 
+
+
+# View
+
+Une vue est un moyen d'enregistrer une requête dans une base de données. Elle peut être ensuite accessible aux utilisatateurs de la base.
+
+Elle permette de cacher la complexité d'une requête ou de réduire la visibilité de certains champs.
+
+
+## Syntaxe
+
+Crétation
+
+```sql
+CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
+AS 
+select-statement;
+```
+
+Suppression
+
+```sql
+DROP VIEW view_name;
+```
+
+## Exemple
+
+```sql
+CREATE VIEW IF NOT EXISTS conf_price
+AS SELECT id_conference, price FROM Conference;
+...
+SELECT * FROM conf_price;
+```
+
+ou
+
+```sql
+CREATE VIEW IF NOT EXISTS conf_price(id, price, topic)
+AS SELECT id_conference, price, title FROM Conference;
+...
+SELECT id, topic FROM conf_price;
+```
+
+# Index
+
+Un index est une structure de données additionnelle qui permet d'améliorer les performances des requêtes. La structure utilisée est un B-Arbre. Il offre des performances sur les égalités (=) et les plages de valeurs (`<`, `<=`, `>`, `>=`).
+
+## Syntaxe générale
+
+```sql
+CREATE [UNIQUE] INDEX index_name 
+ON table_name(column_list);
+```
+
+- un index unique (optionnel) n'autorise qu'une valeur pour un attribut ou groupe d'attributs
+- des indexes personnalisés peuvent être créer (voir documentation officielle, "Expression-based Index")
+
+
+## Exemple 1
+
+
+- Recherche efficace d'un email
+- Qu'un email ne peut exister dans la table `Person`.
+
+```sql
+CREATE UNIQUE INDEX index_email
+ON Person(email);
+```
+
+## Exemple 2
+
+- recherche optimisée sur la ville
+
+```sql
+CREATE INDEX index_conf
+ON Hotel(city);
+```
+
+## Exemple 3
+
+
+- recherche optimisée sur des plages de dates
+- recherche optimisée sur la date de début uniquement
+- recherche optimisée sur la date de début ET (suivi de) la date de fin
+- non optimisé sur la date de fin uniquement
+
+```sql
+CREATE INDEX index_conf
+ON Conference(start_date, end_date);
+```
+
+## Divers
+
+- listez les indexes d'une table : `PRAGMA index_list('table_name');`
+- supprimer un index: `DROP INDEX [IF EXISTS] index_name;`
+
+# Explain
+
+Comprendre l'optimisateur de requêtes à l'aide de :
+
+```sql
+EXPLAIN QUERY PLAN <select expression>
+```
diff --git a/sqlite/conf/conf.db b/sqlite/conf/conf.db
new file mode 100644
index 0000000000000000000000000000000000000000..af1698e64bab64bafc3e52c9847db35fd47fea8b
Binary files /dev/null and b/sqlite/conf/conf.db differ
diff --git a/sqlite/conf/create-and-populate.sql b/sqlite/conf/create-and-populate.sql
new file mode 100644
index 0000000000000000000000000000000000000000..87ce33c70ae0bee3cfee3ad8e8f4c9aba9a2c557
--- /dev/null
+++ b/sqlite/conf/create-and-populate.sql
@@ -0,0 +1,403 @@
+.mode column
+.headers on
+PRAGMA foreign_keys = ON;
+PRAGMA strict = ON;
+
+CREATE TABLE Topic (
+  title TEXT NOT NULL PRIMARY KEY
+) STRICT;
+
+INSERT INTO Topic (title) VALUES
+('blockchain'),
+('cloud'),
+('databases'),
+('lambda calculus'),
+('microservices');
+
+CREATE TABLE Conference (
+  id_conference INTEGER NOT NULL PRIMARY KEY,
+  name TEXT NOT NULL,
+  start_date TEXT NOT NULL,
+  end_date TEXT NOT NULL,
+  price REAL NOT NULL,
+  title TEXT NOT NULL,
+  FOREIGN KEY (title) REFERENCES Topic(title)
+) STRICT;
+
+INSERT INTO Conference (id_conference, name, start_date, end_date, price, title) VALUES
+(1, 'Scala Days 2016', '2016-06-01', '2016-06-03', 800, 'microservices'),
+(2, 'Scala Days 2017', '2017-05-14', '2017-05-16', 850, 'databases'),
+(3, 'Devoxx', '2017-08-04', '2017-08-04', 550, 'blockchain'),
+(4, 'Lambda Days', '2019-02-03', '2019-02-04', 150, 'lambda calculus'),
+(5, 'CurryOn', '2019-03-03', '2019-03-07', 400, 'databases');
+
+CREATE TABLE Visitor (
+  login TEXT NOT NULL PRIMARY KEY,
+  firstname TEXT NOT NULL,
+  lastname TEXT NOT NULL
+) STRICT;
+
+INSERT INTO Visitor (login, firstname, lastname) VALUES
+('agillibrandc', 'Alfonso', 'Gillibrand'),
+('apendockq', 'Adela', 'Pendock'),
+('asustin1d', 'Alair', 'Sustin'),
+('bgliddery', 'Banky', 'Glidder'),
+('bscroxton1', 'Bessy', 'Scroxton'),
+('bstempg', 'Burg', 'Stemp'),
+('cbalassaj', 'Corey', 'Balassa'),
+('ciliffeb', 'Chancey', 'Iliffe'),
+('clavignew', 'Calvin', 'La Vigne'),
+('dfoden12', 'Dieter', 'Foden'),
+('ebirtle17', 'Elisa', 'Birtle'),
+('ekeasey15', 'Esme', 'Keasey'),
+('elidgeye', 'Esteban', 'Lidgey'),
+('eshierr', 'Emlynne', 'Shier'),
+('esoggx', 'Ewen', 'Sogg'),
+('etowllo', 'Emmanuel', 'Towll'),
+('ggrigolond', 'Geraldine', 'Grigolon'),
+('gloadwickt', 'Granville', 'Loadwick'),
+('gmattiazzi18', 'Georgetta', 'Mattiazzi'),
+('gmcspirronv', 'Gerrilee', 'McSpirron'),
+('hasaaf11', 'Harper', 'Asaaf'),
+('hcoldrickm', 'Harriet', 'Coldrick'),
+('hlarway1b', 'Hilario', 'Larway'),
+('hweymouth9', 'Heath', 'Weymouth'),
+('hwyonl', 'Hagen', 'Wyon'),
+('jtowheyi', 'Julianna', 'Towhey'),
+('kburnip10', 'Kacy', 'Burnip'),
+('kcove16', 'Karissa', 'Cove'),
+('kironsu', 'Kira', 'Irons'),
+('kwinterbourne1a', 'Kenn', 'Winterbourne'),
+('lambrosini0', 'Lilly', 'Ambrosini'),
+('lclewa', 'Loren', 'Clew'),
+('mbraggintonf', 'Mag', 'Bragginton'),
+('memeneyk', 'Maddie', 'Emeney'),
+('mgodbold19', 'Mario', 'Godbold'),
+('mmattia6', 'Modestia', 'Mattia'),
+('mtackettn', 'Mallorie', 'Tackett'),
+('ocoutts13', 'Oona', 'Coutts'),
+('pbennallck4', 'Percy', 'Bennallck'),
+('pmunsey3', 'Phillie', 'Munsey'),
+('ptrinder5', 'Petrina', 'Trinder'),
+('rjizhakip', 'Roth', 'Jizhaki'),
+('rmanueli8', 'Richmond', 'Manueli'),
+('scullip1c', 'Sande', 'Cullip'),
+('sdundridge2', 'Sawyere', 'Dundridge'),
+('skonkeh', 'Starla', 'Konke'),
+('ssiveyers', 'Susanne', 'Siveyer'),
+('stregunna14', 'Sven', 'Tregunna'),
+('tdwerryhouse7', 'Tanner', 'Dwerryhouse'),
+('wmontfortz', 'Windy', 'Montfort');
+
+CREATE TABLE Fidelity (
+  login TEXT NOT NULL PRIMARY KEY,
+  loyalty_points INTEGER NOT NULL,
+  FOREIGN KEY(login) REFERENCES Visitor(login)
+) STRICT;
+
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('agillibrandc', 10);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('hlarway1b', 0);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('ocoutts13', 200);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('hcoldrickm', 50);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('ggrigolond', 20);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('cbalassaj', 20);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('eshierr', 50);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('gmattiazzi18', 30);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('tdwerryhouse7', 10);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('mgodbold19', 10);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('memeneyk', 40);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('lclewa', 50);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('asustin1d', 20);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('hasaaf11', 20);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('ekeasey15', 10);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('bstempg', 40);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('scullip1c', 10);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('skonkeh', 0);
+INSERT INTO Fidelity (login, loyalty_points) VALUES ('ptrinder5', 200);
+
+
+CREATE TABLE Hotel (
+  id_hotel INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
+  name TEXT NOT NULL,
+  address TEXT NOT NULL,
+  city TEXT NOT NULL
+) STRICT;
+
+INSERT INTO Hotel (id_hotel, `name`, address, city) VALUES
+('1', 'Luxurious Hotel City', 'Joachimstaler Str. 4', 'Berlin'),
+('2', 'Hotel SuperStar', 'Flughafenstrasse 88', 'Berlin'),
+('3', 'Centrum Hotel', 'ul. Polarna 141', 'Krakow'),
+('4', 'Hotel Ibis', '15  Rue Joseph Vernet', 'Lausanne'),
+('5', 'Rolex Hotel', '92  boulevard Amiral Courbet', 'Lausanne'),
+('6', 'Hotel Cornavin', 'Boulevard de Cornavin 22', 'Genève');
+
+CREATE TABLE Speaker (
+  login TEXT NOT NULL PRIMARY KEY,
+  firstname TEXT NOT NULL,
+  lastname TEXT NOT NULL
+) STRICT;
+
+INSERT INTO Speaker (login, firstname, lastname) VALUES
+('amalyon0', 'Aluin', 'Malyon'),
+('bagius3', 'Blair', 'Agius'),
+('bmeenan2', 'Barty', 'Meenan'),
+('carrell6', 'Cam', 'Arrell'),
+('cbaszniak8', 'Candie', 'Baszniak'),
+('djurgensone', 'Duncan', 'Jurgenson'),
+('fbaakeb', 'Flora', 'Baake'),
+('gmcspirronv', 'Gerrilee', 'McSpirron'),
+('gyeoc', 'Georgena', 'Yeo'),
+('kgatlin1', 'Katharine', 'Gatlin'),
+('kredan4', 'Kelley', 'Redan'),
+('lambrosini0', 'Lilly', 'Ambrosini'),
+('mfokerd', 'Merilee', 'Foker'),
+('mhartfield7', 'Marcile', 'Hartfield'),
+('pcroysdale9', 'Preston', 'Croysdale'),
+('prulera', 'Patrizius', 'Ruler'),
+('stregunna14', 'Sven', 'Tregunna'),
+('zjordan5', 'Zorana', 'Jordan');
+
+CREATE TABLE Participation (
+  login TEXT NOT NULL,
+  id_conference INTEGER NOT NULL,
+  signatureDate TEXT NOT NULL,
+  fees REAL NOT NULL, 
+  PRIMARY KEY (login, id_conference),
+  FOREIGN KEY (login) REFERENCES Speaker(login),
+  FOREIGN KEY (id_conference) REFERENCES Conference(id_conference)
+) STRICT;
+
+INSERT INTO Participation (login, id_conference, signatureDate, fees) VALUES
+('amalyon0', 1, '2017-05-23', 0),
+('amalyon0', 2, '2017-02-04', 500),
+('bagius3', 1, '2016-04-11', 2500),
+('bagius3', 2, '2017-03-01', 0),
+('bagius3', 5, '2018-12-01', 500),
+('bmeenan2', 1, '2016-03-06', 1000),
+('bmeenan2', 4, '2016-04-14', 3000),
+('bmeenan2', 5, '2016-03-26', 3000),
+('carrell6', 1, '2016-03-18', 3000),
+('carrell6', 2, '2017-04-27', 0),
+('carrell6', 3, '2016-03-31', 500),
+('cbaszniak8', 2, '2017-03-31', 2500),
+('cbaszniak8', 4, '2017-05-01', 1000),
+('cbaszniak8', 5, '2017-05-20', 500),
+('djurgensone', 3, '2017-07-21', 1000),
+('djurgensone', 4, '2016-04-10', 2500),
+('djurgensone', 5, '2019-01-10', 2000),
+('fbaakeb', 1, '2017-02-18', 1500),
+('fbaakeb', 2, '2017-03-07', 2000),
+('fbaakeb', 4, '2018-11-07', 500),
+('fbaakeb', 5, '2019-01-22', 1000),
+('gmcspirronv', 1, '2016-04-07', 1000),
+('gmcspirronv', 2, '2017-07-15', 2500),
+('gmcspirronv', 3, '2017-02-16', 3000),
+('gmcspirronv', 5, '2018-12-20', 1000),
+('gyeoc', 1, '2018-11-13', 2000),
+('gyeoc', 2, '2017-04-23', 0),
+('gyeoc', 4, '2016-04-14', 3000),
+('gyeoc', 5, '2018-12-20', 1500),
+('kgatlin1', 1, '2016-03-04', 2500),
+('kgatlin1', 3, '2017-07-24', 3000),
+('kgatlin1', 4, '2019-01-19', 2000),
+('kgatlin1', 5, '2017-07-15', 500),
+('kredan4', 2, '2017-05-19', 2000),
+('lambrosini0', 3, '2017-05-09', 2000),
+('mfokerd', 1, '2018-12-08', 1500),
+('mfokerd', 3, '2017-04-24', 0),
+('mfokerd', 5, '2019-02-17', 0),
+('mhartfield7', 2, '2017-04-17', 3000),
+('pcroysdale9', 2, '2017-04-13', 0),
+('pcroysdale9', 3, '2019-02-10', 1000),
+('pcroysdale9', 4, '2018-11-06', 2000),
+('stregunna14', 2, '2017-04-29', 2000),
+('stregunna14', 3, '2017-05-10', 0),
+('stregunna14', 4, '2018-12-13', 500),
+('stregunna14', 5, '2017-03-01', 2000),
+('zjordan5', 2, '2017-04-15', 0),
+('zjordan5', 3, '2017-05-06', 0);
+
+CREATE TABLE Registration (
+  login TEXT NOT NULL,
+  id_conference INTEGER NOT NULL,
+  PRIMARY KEY (login, id_conference),
+  FOREIGN KEY (login) REFERENCES Visitor(login),
+  FOREIGN KEY (id_conference) REFERENCES Conference(id_conference)
+) STRICT;
+
+INSERT INTO Registration (login, id_conference) VALUES
+('agillibrandc', 1),
+('apendockq', 1),
+('asustin1d', 1),
+('bscroxton1', 1),
+('bstempg', 1),
+('ekeasey15', 1),
+('eshierr', 1),
+('ggrigolond', 1),
+('gloadwickt', 1),
+('gmcspirronv', 1),
+('hcoldrickm', 1),
+('hlarway1b', 1),
+('jtowheyi', 1),
+('kburnip10', 1),
+('kironsu', 1),
+('kwinterbourne1a', 1),
+('lambrosini0', 1),
+('lclewa', 1),
+('mbraggintonf', 1),
+('memeneyk', 1),
+('mgodbold19', 1),
+('mmattia6', 1),
+('pbennallck4', 1),
+('ptrinder5', 1),
+('rmanueli8', 1),
+('scullip1c', 1),
+('sdundridge2', 1),
+('skonkeh', 1),
+('stregunna14', 1),
+('tdwerryhouse7', 1),
+('bscroxton1', 2),
+('ciliffeb', 2),
+('elidgeye', 2),
+('etowllo', 2),
+('ggrigolond', 2),
+('gmcspirronv', 2),
+('hweymouth9', 2),
+('hwyonl', 2),
+('jtowheyi', 2),
+('kburnip10', 2),
+('kcove16', 2),
+('kironsu', 2),
+('lambrosini0', 2),
+('memeneyk', 2),
+('mgodbold19', 2),
+('mmattia6', 2),
+('mtackettn', 2),
+('ocoutts13', 2),
+('pbennallck4', 2),
+('pmunsey3', 2),
+('ptrinder5', 2),
+('rjizhakip', 2),
+('rmanueli8', 2),
+('ssiveyers', 2),
+('tdwerryhouse7', 2),
+('agillibrandc', 3),
+('bgliddery', 3),
+('bscroxton1', 3),
+('bstempg', 3),
+('cbalassaj', 3),
+('ciliffeb', 3),
+('dfoden12', 3),
+('ebirtle17', 3),
+('ekeasey15', 3),
+('eshierr', 3),
+('etowllo', 3),
+('ggrigolond', 3),
+('hcoldrickm', 3),
+('hlarway1b', 3),
+('hweymouth9', 3),
+('hwyonl', 3),
+('kburnip10', 3),
+('kwinterbourne1a', 3),
+('lclewa', 3),
+('memeneyk', 3),
+('mgodbold19', 3),
+('skonkeh', 3),
+('ssiveyers', 3),
+('stregunna14', 3),
+('agillibrandc', 4),
+('apendockq', 4),
+('asustin1d', 4),
+('bscroxton1', 4),
+('bstempg', 4),
+('cbalassaj', 4),
+('clavignew', 4),
+('dfoden12', 4),
+('ebirtle17', 4),
+('eshierr', 4),
+('gmattiazzi18', 4),
+('hasaaf11', 4),
+('hlarway1b', 4),
+('hweymouth9', 4),
+('kburnip10', 4),
+('mtackettn', 4),
+('ocoutts13', 4),
+('pmunsey3', 4),
+('rmanueli8', 4),
+('scullip1c', 4),
+('sdundridge2', 4),
+('ssiveyers', 4),
+('asustin1d', 5),
+('bscroxton1', 5),
+('bstempg', 5),
+('clavignew', 5),
+('dfoden12', 5),
+('ekeasey15', 5),
+('elidgeye', 5),
+('eshierr', 5),
+('ggrigolond', 5),
+('gmattiazzi18', 5),
+('gmcspirronv', 5),
+('hlarway1b', 5),
+('jtowheyi', 5),
+('kcove16', 5),
+('kironsu', 5),
+('lambrosini0', 5),
+('mgodbold19', 5),
+('ocoutts13', 5),
+('pmunsey3', 5),
+('rjizhakip', 5),
+('stregunna14', 5),
+('tdwerryhouse7', 5);
+
+CREATE TABLE Stay (
+  id_stay INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
+  login TEXT NOT NULL,
+  id_hotel INTEGER NOT NULL,
+  start_date TEXT NOT NULL,
+  end_date TEXT NOT NULL,
+  UNIQUE (login, start_date),
+  FOREIGN KEY (login) REFERENCES Speaker(login),
+  FOREIGN KEY (id_hotel) REFERENCES Hotel(id_hotel)
+) STRICT;
+
+INSERT INTO Stay (login, id_hotel, start_date, end_date) VALUES
+('cbaszniak8', '3', '2019-02-03', '2019-02-05'),
+('lambrosini0', '6', '2017-08-04', '2017-08-05'),
+('carrell6', '6', '2017-08-04', '2017-08-05'),
+('bmeenan2', '3', '2019-02-03', '2019-02-05'),
+('djurgensone', '5', '2019-03-03', '2019-03-05'),
+('gmcspirronv', '6', '2017-08-04', '2017-08-06'),
+('gyeoc', '1', '2016-06-01', '2016-06-03'),
+('kgatlin1', '3', '2019-02-03', '2019-02-05'),
+('fbaakeb', '4', '2019-03-03', '2019-03-05'),
+('bagius3', '2', '2017-05-14', '2017-05-15'),
+('pcroysdale9', '2', '2017-05-14', '2017-05-16'),
+('djurgensone', '3', '2019-02-03', '2019-02-05'),
+('gmcspirronv', '1', '2016-06-01', '2016-06-03'),
+('gyeoc', '5', '2019-03-03', '2019-03-04'),
+('bmeenan2', '1', '2016-06-01', '2016-06-03'),
+('pcroysdale9', '3', '2019-02-03', '2019-02-04'),
+('kgatlin1', '1', '2016-06-01', '2016-06-02'),
+('cbaszniak8', '2', '2017-05-14', '2017-05-16'),
+('bagius3', '4', '2019-03-03', '2019-03-04'),
+('stregunna14', '6', '2017-08-04', '2017-08-05'),
+('fbaakeb', '3', '2019-02-03', '2019-02-05'),
+('djurgensone', '6', '2017-08-04', '2017-08-05'),
+('mfokerd', '6', '2017-08-04', '2017-08-05'),
+('fbaakeb', '1', '2017-05-14', '2017-05-16'),
+('zjordan5', '2', '2017-05-14', '2017-05-16'),
+('carrell6', '1', '2016-06-01', '2016-06-02'),
+('pcroysdale9', '6', '2017-08-04', '2017-08-06'),
+('carrell6', '2', '2017-05-14', '2017-05-16'),
+('mhartfield7', '2', '2017-05-14', '2017-05-16'),
+('kgatlin1', '5', '2019-03-03', '2019-03-05'),
+('amalyon0', '1', '2016-06-01', '2016-06-02'),
+('gmcspirronv', '2', '2017-05-14', '2017-05-15'),
+('mfokerd', '2', '2016-06-01', '2016-06-03'),
+('gyeoc', '3', '2019-02-03', '2019-02-05'),
+('bmeenan2', '5', '2019-03-03', '2019-03-05'),
+('zjordan5', '6', '2017-08-04', '2017-08-05'),
+('stregunna14', '1', '2017-05-14', '2017-05-16'),
+('kredan4', '2', '2017-05-14', '2017-05-16'),
+('mfokerd', '4', '2019-03-03', '2019-03-04');
diff --git a/sqlite/conf/run.sql b/sqlite/conf/run.sql
new file mode 100644
index 0000000000000000000000000000000000000000..09a531229bdef798b1147439b16ef42cad2dbf99
--- /dev/null
+++ b/sqlite/conf/run.sql
@@ -0,0 +1,6 @@
+.open conf.db
+PRAGMA foreign_keys = ON;
+PRAGMA STRICT = ON;
+.mode column
+.headers on
+
diff --git a/sqlite/sbd_sqlite.pdf b/sqlite/sbd_sqlite.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..edf18bb41144ecc03265dcf5a7941c5b7fb12393
Binary files /dev/null and b/sqlite/sbd_sqlite.pdf differ