CREATE TABLE architect (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
firstname TEXT,
birth TEXT,
death TEXT,
birthdpt TEXT REFERENCES dpt(code),
deathplace TEXT,
barts BOOLEAN NOT NULL DEFAULT 0,
bartsyear INTEGER,
training TEXT,
rating INTEGER,
fatherWork INTEGER REFERENCES fatherWork(id)
);
INSERT INTO hasSkills(archid, skill, fromdate, todate) VALUES
(1,"tout",1849,1864),
(7,"tout",1845,1848),
(7,"église",1848,1850),
(7,"séminaire",1848,1850),
(5,"cathédrale",1848,1850),
(5,"tout",1850,1875),
(8,"tout",1843,1848),
(8,"séminaire",1848,1854);
https://www.sqlite.org/lang_altertable.html
ALTER TABLE architect RENAME curator;
https://www.sqlite.org/lang_droptable.html
DROP TABLE architect;
https://www.sqlite.org/lang_delete.html
DELETE architect WHERE name='Durant';
Pour les exercices suivants, ouvrir la base architectes.db avec le client DB Browser for SQLite.
- La clause SELECT indique la liste des attributs constituant le résultat.
- La clause FROM indique la table dans laquelle on effectue la requête.
SELECT * FROM architect;
SELECT name, firstname, birth FROM architect;
- Alias
AS
SELECT name AS nom, firstname AS prénom FROM architect;
SELECT * FROM architect WHERE birthdpt=75;
- Opérateurs de comparaison :
<
,<=
,>
,>=
,=
,!=
ou<>
SELECT * FROM architect WHERE birth>1805;
SELECT * FROM architect WHERE birth>'1805';
- Opérateurs intégrés :
BETWEEN
,IN
,LIKE
,IS
,IS NOT
SELECT * FROM architect WHERE barts IS NOT 0;
SELECT * FROM architect WHERE firstname LIKE ('%Paul%');
- Opérateurs logiques :
NOT
,AND
,OR
SELECT * FROM architect WHERE birth>1805 AND barts IS NOT 0;
- Opérateur de concaténation :
||
SELECT name || ', ' || firstname FROM architect;
(ATTENTION! Retrouvons-nous tous les résultats ?)
La clause DISTINCT
permet de supprimer les doublons dans le résultat d'une requête.
SELECT skill FROM hasSkills;
SELECT DISTINCT skill FROM hasSkills;
La clause ORDER BY [ASC ou DESC]
permet de trier les résultats d’une requête.
SELECT * FROM architect;
SELECT * FROM architect ORDER BY birth;
SELECT * FROM architect ORDER BY birth DESC;
La clause LIMIT
indique le nombre maximal de lignes dans le résultat.
SELECT * FROM architect ORDER BY birth DESC LIMIT 5;