Se connecter à une base sqlite3
1: import sqlite3 2: db=sqlite3.connect('labintel.sqlite3') 3: c=db.cursor() 4: ... 5: db.commit() 6: db.close()
Créer une table nommée « pers » ayant deux colonnes « p_numero_sel et name » de type Chaine de caractères
c.execute(''' CREATE TABLE pers ( id INT PRIMARY KEY, p_numero_sel STRING, name STRING) ''')
Créer une table nommée « pers_attr » ayant trois colonnes « pers_id, attribute et value » de type Chaine de caractères
c.execute(''' CREATE TABLE pers_attr ( id INT PRIMARY KEY, pers_id STRING, attribute STRING, value STRING) ''')
Peupler la table « pers » à partir du fichier « pers.yaml ».
--- - id: 1 p_numero_sel: '1234567890' name: 'davinci' - id: 2 p_numero_sel: '3456789012' name: 'watson'
1: import yaml 2: 3: source_yaml=open('pers.yaml') 4: personnes=yaml.load(source_yaml.read()) 5: 6: valeurs=[] 7: for item in personnes: 8: valeurs.append( 9: [ 10: item['id'], 11: item['p_numero_sel'], 12: item['name'] 13: ] 14: ) 15: 16: c.executemany('INSERT INTO pers (id,p_numero_sel,name) VALUES (?,?,?)',valeurs) 17: db.commit()
Peupler la table « pers_attr » à partir du fichier « pers_attr.json ».
[{ "id": 1, "pers_id": 1, "attribute": "email", "value": "leonardo@vinci-closluce.com" },{ "id": 2, "pers_id": 1, "attribute": "labo", "value": "umrxyz" }]
1: import json 2: 3: source_json=open('pers_attr.json') 4: personnes=json.load(source_json) 5: valeurs=[] 6: 7: for item in personnes: 8: valeurs.append( 9: [ 10: item['id'], 11: item['pers_id'], 12: item['attribute'], 13: item['value'] 14: ] 15: ) 16: 17: c.executemany('INSERT INTO pers_attr (id,pers_id,attribute,value) VALUES (?,?,?,?)',valeurs) 18: db.commit()
Lister toutes les entrées de la table pers
1: c.execute('SELECT * FROM pers') 2: for line in c: 3: print(line)
Lister toutes les entrées de la table pers_attrs
1: c.execute('SELECT * FROM pers_attr') 2: for line in c: 3: print(line)
Pour chaque entrée de la table « pers » lister toutes les entrées associées de la table « pers_attr »
1: c.execute("""SELECT attr.id,attr.pers_id,attr.attribute,attr.value 2: FROM pers_attr AS attr LEFT JOIN pers ON pers.id=attr.pers_id""") 3: for line in c: 4: print line
ajouter un attribut « statut=chercheur » à la personne ayant l'id 1
1: c.execute("""INSERT INTO pers_attr (pers_id,attribute,value) 2: VALUES (?,?,?)""", (1,'statut','chercheur'))
ajouter une contrainte d'unicité sur l'attribut « statut »
lister toutes les personnes ayant le statut de chercheurs
1: c.execute('SELECT pers.id,name FROM pers,pers_attr WHERE pers.id=pers_id AND value = "chercheur"') 2: for line in c: 3: print line
$Id: mardi_corrige_python_1.txt 631 2012-05-22 16:19:54Z aicardi $