|
Recette
#7: |
F�vrier 2011 |
Jusqu'� maintenant nous avons vu uniquement comment interroger
une table. |
CREATE
TABLE test_geom ( SELECT
AddGeometryColumn('test_geom', 'the_geom', |
Rien de bien nouveau: il s'agit de la m�me table trait�e dans l'exemple pr�c�dent.
INSERT
INTO test_geom INSERT
INTO test_geom INSERT
INTO test_geom INSERT
INTO test_geom INSERT INTO
test_geom |
La syntaxe INSERT INTO (...) VALUES (...) permet d'ins�rer des valeurs dans une table:
la premi�re liste contient les noms des colonnes
et la seconde liste contient les valeurs � ins�rer: les correspondances entre colonnes et valeurs � ins�rer sont �tablies par leur position.
vous pouvez aussi simplement
omettre la liste des colonnes (regardez le deuxi�me
exemple):
mais ce n'est pas recommand�, car cette syntaxe
s'appuie implicitement sur l'ordre par d�faut des colonnes et est
susceptible d'�tre une source d'erreur.
un autre point important; cette table poss�de une PRIMARY KEY AUTOINCREMENT:
en r�gle g�n�rale, on propose la valeur NULL , afin de sp�cifier � SQLite d'attribuer automatiquement une valeur unique.
mais dans le troisi�me exemple avec INSERT , on a mis une valeur explicite.
SELECT * |
id |
name |
measured_value |
the_geom |
1 |
first point |
1.234560 |
BLOB sz=60 GEOMETRY |
2 |
second point |
2.345670 |
BLOB sz=60 GEOMETRY |
10 |
tenth point |
10.123457 |
BLOB sz=60 GEOMETRY |
11 |
eleventh point |
11.123457 |
BLOB sz=60 GEOMETRY |
12 |
twelfth point |
12.123457 |
NULL |
Juste un petit coup d'oeil avant d'aller plus loin ...
INSERT INTO
test_geom |
cette requ�te INSERT
va �chouer, aboutissant � une erreur: constraint failed.
Pourquoi? une PRIMARY KEY
(cl� primaire) est obligatoirement unique.
or id = 2
existe d�j� dans cette table.
INSERT OR IGNORE INTO
test_geom |
En sp�cifiant la clause OR IGNORE la requ�te va maintenant �chouer en silence (pour les m�mes raisons).
INSERT OR REPLACE INTO
test_geom |
Il existe une variante i.e. sp�cifier la clause OR REPLACE va permettre de mettre � jour la colonne (un peu comme UPDATE).
REPLACE
INTO test_geom REPLACE INTO
test_geom |
Une autre alternative est possible, i.e. en utilisant REPLACE
INTO:
mais il s'agit simplement d'un alias pour
INSERT OR REPLACE.
SELECT * |
id |
name |
measured_value |
the_geom |
1 |
first point |
1.234560 |
BLOB sz=60 GEOMETRY |
2 |
POINT #2 |
2.200000 |
BLOB sz=60 GEOMETRY |
3 |
POINT #3 |
3.300000 |
BLOB sz=60 GEOMETRY |
10 |
tenth point |
10.123457 |
BLOB sz=60 GEOMETRY |
11 |
POINT #11 |
11.110000 |
BLOB sz=60 GEOMETRY |
12 |
twelfth point |
12.123457 |
NULL |
Un autre petit coup d'oeil ...
UPDATE
test_geom SET UPDATE test_geom
SET |
Mettre � jour des valeurs n'est pas plus complexe ...
DELETE FROM
test_geom |
Il en va de m�me pour la suppression de lignes.
i.e. la clause
DELETE va affecter
toutes les lignes ayant un id pair.
SELECT * |
id |
name |
measured_value |
the_geom |
1 |
first point |
1.234560 |
BLOB sz=60 GEOMETRY |
3 |
point-3 |
0.003000 |
BLOB sz=60 GEOMETRY |
11 |
POINT #11 |
1000011.110000 |
BLOB sz=60 GEOMETRY |
Un dernier coup d'oeil ...
important Attention: appeler les clauses UPDATE
or DELETE sans
sp�cifier de condition apr�s WHERE
est tout � fait autoris� en SQL. |
|
Author: Alessandro Furieri a.furieri@lqt.it |
This work is licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. |
|
|
|
|
Permission is granted to copy, distribute and/or modify this
document under the terms of the |