c_sqlite3
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
c_sqlite3 [2009/12/24 15:43] – thierry | c_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 **'' | ||
+ | $ sqlite3 test.db " | ||
+ | |||
+ | Lorque qu'une colonne specifie une durée, par exemple la colonne **'' | ||
+ | $ sqlite3 test.db " | ||
+ | Le **'' | ||
==== trigger ==== | ==== trigger ==== | ||
Ligne 160: | Ligne 169: | ||
- | ==== date ==== | + | ==== plusieurs databases |
+ | |||
+ | === ATTACH === | ||
+ | |||
+ | On a parfois besoin d' | ||
+ | |||
+ | Dans ce cas, il faut utiliser la commande " | ||
+ | |||
+ | Exemple: | ||
+ | $ sqlite3 | ||
+ | sqlite> ATTACH DATABASE ' | ||
+ | sqlite> .database | ||
+ | seq name | ||
+ | --- --------------- | ||
+ | 0 main | ||
+ | 2 source | ||
+ | |||
+ | *On peut en ' | ||
+ | *On peut aussi ouvrir une base principale en même temps. __'' | ||
+ | === Nommage === | ||
+ | Pour utiliser l'une autre des databases, il faut les nommés par leur Alias. | ||
+ | |||
+ | Ainsi: '' | ||
+ | |||
+ | Pour nommé la base principale, utilisé l' | ||
+ | |||
+ | Exemple: | ||
+ | sqlite> CREATE TABLE source.MyTable ( Name TEXT, Age INTEGER ); | ||
+ | |||
+ | Ou encore: | ||
+ | sqlite> SELECT dst.Name, | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | === DBI Perl === | ||
+ | Il y a un hack a faire, pour que ca fonctionne sous perl: (dans le cas de '' | ||
+ | { | ||
+ | local $dbh-> | ||
+ | $dbh-> | ||
+ | } | ||
+ | Sans " | ||
+ | |||
+ | ==== Left Join (Jointure) ==== | ||
+ | |||
+ | === Dans Table_A et Table_B === | ||
+ | Soit une **'' | ||
+ | Soit un champ commun de fonction commune entre elle (par exemple, un numéro de carte bancaire). | ||
+ | |||
+ | On veut la liste des rangées (row) qui sont dans **'' | ||
+ | |||
+ | SELECT Table_A.CB, Table_B.CB FROM Table_A LEFT JOIN Table_B ON Table_A.CB=Table_B.CB ; | ||
+ | |||
+ | ATTENTION: **toutes** les rangées de **'' | ||
+ | Toutefois, lorsqu' | ||
+ | |||
+ | Donc, pour avoir vraiment la " | ||
+ | SELECT Table_A.CB, Table_B.CB FROM Table_A LEFT JOIN Table_B ON Table_A.CB=Table_B.CB WHERE Table_B.CB IS NOT NULL ; | ||
+ | |||
+ | Et voila. | ||
+ | |||
+ | === Dans Table_A et pas dans Table_B === | ||
+ | Maintenant, on veut les rangées qui sont dans la **'' | ||
+ | |||
+ | Il suffit d' | ||
+ | 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' | ||
+ | |||
+ | Ainsi, soit 2 databases: | ||
+ | * main | ||
+ | * source | ||
+ | |||
+ | Leurs tables sont identiques, et particulièrement une table commune nommé **'' | ||
+ | |||
+ | 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, | ||
+ | |||
+ | == Avec alias == | ||
+ | On peut créer le même genre de jointure que ci-dessus, mais avec plein d' | ||
+ | |||
+ | 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 **'' | ||
===== Perl ===== | ===== Perl ===== | ||
Ligne 193: | Ligne 289: | ||
- | | + | ==== Safe copy ==== |
+ | |||
+ | Lien: http:// |
c_sqlite3.txt · Dernière modification : 2010/09/28 17:47 de thierry