3 Créer une base de données et la modifier avec Sqlite
Jusqu’à présent, on n’avait pas modifié la base ; on ne faisait que lui poser des questions.
3.1 Créer et supprimer des tables
Si la base de données n’existe pas, la commande sqlite3.connect(’Musique.sqlite’) la crée.
Pour y avoir en même temps la connexion via bdd, écrire :
bdd=sqlite3.connect('Musique.sqlite')
bdd.close()
Pour créer une table, il faut lui donner son nom oeuvres et définir chacun de ses attributs avec son type.
bdd=sqlite3.connect('Musique.sqlite')
cur = bdd.cursor()
cur.execute("""CREATE TABLE oeuvres(
comp TEXT PRIMARY KEY,
titre TEXT,
duree INTEGER,
interpr TEXT
);""")
Hélas, rien ne se passe car il faut demander l’exécution des lignes. Pour le moment, elles sont stockées dans cur. Pour
appliquer, un ensemble d’instruction reste à ajouter la ligne bdd.commit().
Dans le code précédent, la clé primaire est comp. Elle est déclarée à la création de la base. Si des clés renvoient à
une autre relation relation via l’attribut attribut après le type, on tape alors en SQL REFERENCES relation
(attribut). Aussi, si une clé utilise plusieurs attributs, la déclaration de la clé se fait après les déclaration des attributs.
Par exemple, dans le schéma relationnel lycée du cours, nous avons :
CREATE TABLE e l e v e (
num_p INTEGER REFERENCES p e rsonn e ( num_p ) ,
num _ etu d i ant INTEGER ,
l y c e e _ o r i g i n e TEXT,
num_classe INTEGER REFERENCES c l a s s e ( no ) ,
PRIMARY KEY ( num_p )
)
CREATE TABLE e n s e i g n e (
num_classe INTEGER ,
num_prof INTEGER ,
m a t i e r e TEXT,
PRIMARY KEY ( num_classe , num_prof )
)
Q - 3 :Créer une base de donnée Musique.sqlite (ou Musique.db) contenant les relations oeuvres
et compositeurs de schéma relationnels suivant :
•oeuvres(comp (chaîne), titre (chaîne), duree (chaîne), interpr (chaîne))
•compositeurs(comp(chaîne), a_naiss (entier), a_mort(entier)) ou comp fait référence à l’attribut comp de la relation
oeuvres
LYCÉE CARNOT (DIJON) 2/4 INFO EN MPSI & PCSI - TP2 - BDD