Outils pour utilisateurs

Outils du site


c_sqlite3

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
c_sqlite3 [2009/12/24 16:41] thierryc_sqlite3 [2010/09/28 17:47] (Version actuelle) thierry
Ligne 107: Ligne 107:
  
 | :!: Pour quelques exemples qui suivent, on est dans un shell | | :!: Pour quelques exemples qui suivent, on est dans un shell |
 +
 +=== base ===
  
 Avec la date: Avec la date:
Ligne 131: Ligne 133:
 Et voila la conversion faite. Et voila la conversion faite.
  
 +=== comparaisons ===
  
 +En supposant des colonnes initialisés avec **''DATETIME('now','localtime')''** , c'est facile:
 +  $ sqlite3 test.db "DELETE FROM MyTable WHERE ( Last_Access_Date < DATETIME('now','localtime','-2 hours') ) OR ( Create_Date < DATETIME('now','localtime','-10 days') );"
 +
 +Lorque qu'une colonne specifie une durée, par exemple la colonne **''TTL''** exprime en heures, on peut faire aussi:
 +  $ sqlite3 test.db "DELETE FROM MyTable WHERE ( Last_Access_Date < DATETIME('now','localtime','-'||TTL||' hours') );
 +Le **''||''** permet de concatener une chaine...
  
 ==== trigger ==== ==== trigger ====
Ligne 227: Ligne 236:
 Il suffit d'inverser le "WHERE"... Il suffit d'inverser le "WHERE"...
   SELECT Table_A.CB FROM Table_A LEFT JOIN Table_B ON Table_A.CB=Table_B.CB WHERE Table_B.CB IS NULL ;   SELECT Table_A.CB FROM Table_A LEFT JOIN Table_B ON Table_A.CB=Table_B.CB WHERE Table_B.CB IS NULL ;
 +
 +=== plusieurs databases ===
 +Lorsqu'on travaille avec plusieurs databases (grâce à la commande **''ATTACH DATABASE''** ), et que les tables ont les mêmes noms...
 +
 +Ainsi, soit 2 databases:
 +  * main
 +  * source
 +
 +Leurs tables sont identiques, et particulièrement une table commune nommé **''MyTable''** ...\\
 +
 +On peut créer le même genre de jointure que ci-dessus... mais faut faire attention au nommage...
 +
 +== Sans alias ==
 +  SELECT main.MyTable.CB, source.MyTable.CB FROM main.MyTable LEFT JOIN source.MyTable ON main.MyTable.CB=source.MyTable.CB WHERE source.MyTable.CB IS NOT NULL ;
 +
 +== Avec alias ==
 +On peut créer le même genre de jointure que ci-dessus, mais avec plein d'aliases !
 +
 +Exemple:
 +  SELECT dst.CB, src.CB FROM main.MyTable dst LEFT JOIN source.MyTable src ON dst.CB=src.CB WHERE src.CB IS NOT NULL ;
 +C'est un peu plus court grâce aux alias créés dans le **''FROM ...''**
  
 ===== Perl ===== ===== Perl =====
Ligne 259: Ligne 289:
  
  
-  +==== Safe copy ==== 
 + 
 +Lien: http://stuvel.eu/archive/55/safely-copy-a-sqlite-database 
c_sqlite3.1261672875.txt.gz · Dernière modification : 2009/12/24 16:41 de thierry