﻿{"id":1537,"date":"2015-05-23T07:06:19","date_gmt":"2015-05-23T06:06:19","guid":{"rendered":"http:\/\/www.sigterritoires.fr\/?p=1537"},"modified":"2015-05-23T07:06:19","modified_gmt":"2015-05-23T06:06:19","slug":"requetes-et-vues-dune-base-spatialite-dans-qgis-2-8","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/requetes-et-vues-dune-base-spatialite-dans-qgis-2-8\/","title":{"rendered":"Requ\u00eates et vues d&rsquo;une base SpatiaLite dans QGis 2.8"},"content":{"rendered":"<p>Une des diff\u00e9rences les plus marqu\u00e9es entre la gestion des donn\u00e9es avec des fichiers shape et une base de donn\u00e9es est la possibilit\u00e9 de cr\u00e9er des \u00ab\u00a0vues\u00a0\u00bb diff\u00e9rentes sur les m\u00eames donn\u00e9es. Dans cet article, le dernier de la s\u00e9rie consacr\u00e9e \u00e0 l&rsquo;utilisation de SpatiaLite avec QGis nous verrons comment construire des requ\u00eates SQL pour g\u00e9n\u00e9rer des vues SpatiaLite.<br \/>\nDB Manager poss\u00e8de une fen\u00eatre SQL qui permet la construction de requ\u00eates SQL et de les ex\u00e9cuter sur une base de donn\u00e9es. Cet article montre comment utiliser la fen\u00eatre SQL pour interroger une table et cr\u00e9er une vue spatiale en SpatiaLite.<!--more--><\/p>\n<h2>Cr\u00e9ation d&rsquo;une requ\u00eate SQL<\/h2>\n<p>Les diff\u00e9rentes bases de donn\u00e9es prennent en charge tou ou une partie des commandes SQL. SQLite prend en charge une grande partie de la norme ANSI SQL92, mais pas toutes. Pour une liste compl\u00e8te des op\u00e9rations de SQL prises en charge, visitez le site <a href=\"https:\/\/sqlite.org\/lang.html\">https:\/\/sqlite.org\/lang.html<\/a><\/p>\n<p>Pour cr\u00e9er une requ\u00eate SQL, effectuez les op\u00e9rations suivantes :<br \/>\n1. Ouvrez le gestionnaire de base de donn\u00e9es en cliquant sur <em><strong>Gestionnaire de base de donn\u00e9es<\/strong><\/em> sous<em><strong> Base de donn\u00e9es<\/strong><\/em>.<br \/>\n2. Dans l&rsquo;arborescence, recherchez et s\u00e9lectionnez la base de donn\u00e9es sur laquelle vous souhaitez ex\u00e9cuter une requ\u00eate SQL.<br \/>\n3. Cliquez sur <em><strong>Base de donn\u00e9es | Fen\u00eatre SQL<\/strong><\/em>, ou appuyez sur <em><strong>F2<\/strong><\/em> sur votre clavier, pour ouvrir la fen\u00eatre SQL.<br \/>\n4. Entrez une requ\u00eate SQL dans la zone de texte, en haut. Cliquez sur le bouton <em><strong>ex\u00e9cuter<\/strong> <\/em>ou <em><strong>F5<\/strong><\/em> sur votre clavier pour ex\u00e9cuter la requ\u00eate SQL sur la base de donn\u00e9es. Les r\u00e9sultats de la requ\u00eate seront affich\u00e9s dans la zone de r\u00e9sultats, en bas, et le nombre de lignes trait\u00e9es et le temps d&rsquo;ex\u00e9cution s&rsquo;affichera \u00e0 c\u00f4t\u00e9 du bouton\u00a0<span style=\"color: #000000;\"><b><i>Ex\u00e9cuter<\/i><\/b><\/span>. Un exemple d&rsquo;une requ\u00eate d&rsquo;ex\u00e9cution r\u00e9ussie est illustr\u00e9 dans la capture d&rsquo;\u00e9cran suivante :<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q51.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1541\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/requetes-et-vues-dune-base-spatialite-dans-qgis-2-8\/q51\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q51.png?fit=757%2C561&amp;ssl=1\" data-orig-size=\"757,561\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"q51\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q51.png?fit=630%2C467&amp;ssl=1\" class=\"aligncenter size-large wp-image-1541\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q51-630x467.png?resize=630%2C467\" alt=\"exemple de requ\u00eate sql\" width=\"630\" height=\"467\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q51.png?resize=630%2C467&amp;ssl=1 630w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q51.png?resize=300%2C222&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q51.png?w=757&amp;ssl=1 757w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p>Vous pouvez stocker n&rsquo;importe quelle requ\u00eate en saisissant un nom dans la zone de texte, en haut, et cliquant ensuite sur le bouton <em><strong>Stocker<\/strong><\/em>. Pour charger et ex\u00e9cuter la requ\u00eate stock\u00e9e, s\u00e9lectionnez le nom de la requ\u00eate dans le menu d\u00e9roulant, en haut. Pour supprimer une requ\u00eate stock\u00e9e, s\u00e9lectionnez la requ\u00eate dans le menu d\u00e9roulant et cliquez ensuite sur le bouton <em><strong>Effacer<\/strong> <\/em>(\u00e0 c\u00f4t\u00e9 de <em><strong>Stocker<\/strong><\/em>).<\/p>\n<h2>Cr\u00e9ation d&rsquo;une vue spatiale<\/h2>\n<p>La cr\u00e9ation d&rsquo;une vue spatiale sur une base de donn\u00e9es SpatiaLite, avec la fen\u00eatre SQL dans le gestionnaire de base de donn\u00e9es, est un processus en deux \u00e9tapes.<\/p>\n<ul>\n<li>La premi\u00e8re \u00e9tape consiste \u00e0 cr\u00e9er une vue contenant un champ avec des identificateurs uniques et la colonne <em>geometry<\/em><\/li>\n<li>La deuxi\u00e8me \u00e9tape consiste \u00e0 ins\u00e9rer un nouvel enregistrement dans la table <em>views_geometry_columns<\/em> pour enregistrer la vue en tant que vue spatiale<\/li>\n<\/ul>\n<p>Nous allons cr\u00e9er une vue spatiale sur la table H\u00f4tels pour montrer tous les h\u00f4tels de Brest et de Quimper; pour ce faire, proc\u00e9dez comme suit :<br \/>\n1. Ouvrez le gestionnaire de base de donn\u00e9es.<br \/>\n2. Dans l&rsquo;arborescence, recherchez et s\u00e9lectionnez la base de donn\u00e9es<em><strong> BaseTest.sqlite.<\/strong><\/em><br \/>\n3. Cliquez sur <em><strong>Base de donn\u00e9es | Fen\u00eatre SQL<\/strong><\/em>, ou appuyez sur <em><strong>F2<\/strong> <\/em>sur votre clavier, pour ouvrir la fen\u00eatre SQL.<br \/>\n4. Entrez la requ\u00eate suivante :<br \/>\n<em><strong>CREATE VIEW les_hotels_brest_quimper as<\/strong><\/em><br \/>\n<em><strong> SELECT h.pk as ROWID,h.Nom,h.Code_Postal,h.Commune, h.geom from hotels as h<\/strong><\/em><br \/>\n<em><strong> WHERE h.Commune in (&lsquo;Brest&rsquo;,&rsquo;Quimper&rsquo;);<\/strong><\/em><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q52.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1542\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/requetes-et-vues-dune-base-spatialite-dans-qgis-2-8\/q52\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q52.png?fit=761%2C558&amp;ssl=1\" data-orig-size=\"761,558\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"q52\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q52.png?fit=630%2C462&amp;ssl=1\" class=\"aligncenter size-large wp-image-1542\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q52-630x462.png?resize=630%2C462\" alt=\"requ\u00eate de cr\u00e9ation de la vue sous spatialite\" width=\"630\" height=\"462\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q52.png?resize=630%2C462&amp;ssl=1 630w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q52.png?resize=300%2C220&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q52.png?w=761&amp;ssl=1 761w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p><em><strong>h<\/strong><\/em> ou n&rsquo;importe\u00a0 quelle lettre sert comme pr\u00e9fixe de table pour les noms de champ.<\/p>\n<p>La clause <em><strong>SELECT<\/strong> <\/em>d\u00e9fini les champs qui seront visibles dans la vue et la clause <em><strong>WHERE<\/strong><\/em> d\u00e9fini le crit\u00e8re de s\u00e9lection des enregistrements qui seront visibles dans la vue.<\/p>\n<p>Dans la requ\u00eate <em><strong>CREATE VIEW<\/strong><\/em>, \u00a0deux champs sont obligatoires devant figurer dans l&rsquo;instruction <em><strong>SELECT<\/strong> <\/em>: le champ d&rsquo;identificateur unique qui doit \u00eatre renomm\u00e9 en <em><strong>ROWID<\/strong> <\/em>et le champ\u00a0de la g\u00e9om\u00e9trie. <u>Vous devez renommer l&rsquo;identifiant unique en\u00a0ROWID ou vous ne pourrez pas enregistrer la vue comme vue spatiale.<\/u><\/p>\n<p>5. Cliquez sur le bouton <em><strong>ex\u00e9cuter<\/strong> <\/em>pour cr\u00e9er la vue.<br \/>\nMaintenant que la vue est cr\u00e9\u00e9e, nous avons besoin de l&rsquo;enregistrer comme une vue spatiale, en ins\u00e9rant une nouvelle ligne dans la table <em>views_geometry_columns<\/em>. Cette table lie la g\u00e9om\u00e9trie de la vue \u00e0 la g\u00e9om\u00e9trie de la table dans laquelle s&rsquo;op\u00e8re la s\u00e9lection.<br \/>\n6. Dans la fen\u00eatre SQL, cliquez sur le bouton <em><strong>effacer<\/strong> <\/em>pour effacer la zone de texte de la requ\u00eate SQL.<br \/>\n7. Entrez la requ\u00eate suivante :<br \/>\n<em><strong>INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only)<\/strong><\/em><br \/>\n<em><strong> VALUES(&lsquo;les_hotels_brest_quimper&rsquo;, &lsquo;geom&rsquo;, &lsquo;rowid&rsquo;, &lsquo;hotels&rsquo;, &lsquo;geom&rsquo;, 1);<\/strong><\/em><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q53.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1543\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/requetes-et-vues-dune-base-spatialite-dans-qgis-2-8\/q53\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q53.png?fit=760%2C562&amp;ssl=1\" data-orig-size=\"760,562\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"q53\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q53.png?fit=630%2C466&amp;ssl=1\" class=\"aligncenter size-large wp-image-1543\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q53-630x466.png?resize=630%2C466\" alt=\"insertion de la vue dans la table view_geometry_columns\" width=\"630\" height=\"466\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q53.png?resize=630%2C466&amp;ssl=1 630w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q53.png?resize=300%2C222&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/05\/q53.png?w=760&amp;ssl=1 760w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><br \/>\nDans cette requ\u00eate <em><strong>INSERT<\/strong><\/em>, six champs ont des valeurs ins\u00e9r\u00e9es :<\/p>\n<ul>\n<li><em>view_name<\/em> : celui-ci contient le nom de la vue que l&rsquo;on souhaite inscrire comme vue spatiale.<\/li>\n<li><em>view_geometry<\/em> : il contient le nom du champ g\u00e9om\u00e9trie de la vue.<\/li>\n<li><em>view_rowid<\/em> : il contient le nom du champ rowid. Notez qu&rsquo;il doit \u00eatre rowid. Si le champ de rowid est nomm\u00e9 autrement, vous devrez recr\u00e9er la vue avec un champ nomm\u00e9\u00a0rowid<\/li>\n<li><em>f_table_name<\/em> : le nom de la table dont la vue est une s\u00e9lection.<\/li>\n<li><em>f_geometry_column<\/em> : le nom du champ g\u00e9om\u00e9trie dans la table dont la vue est une s\u00e9lection<\/li>\n<li><em>read_only<\/em> : dans ce champ, entrez 1 pour que la vue spatiale soit\u00a0en lecture seule, ou bien\u00a0entrez 0 pour que la vue spatiale soit\u00a0en lecture\/\u00e9criture. Notez que depuis la version 2.6.0 de QGIS, les vues en lecture\/\u00e9criture ne peuvent pas \u00eatre \u00e9dit\u00e9s dans QGIS Desktop. Toutefois, les vues peuvent \u00eatre modifiables dans certains plugins ou avec des requ\u00eates SQL.<\/li>\n<\/ul>\n<p>8. Cliquez sur le bouton <em><strong>ex\u00e9cuter<\/strong> <\/em>pour cr\u00e9er la vue.<br \/>\nLa vue est maintenant enregistr\u00e9e comme vue spatiale et peut \u00eatre ajout\u00e9e comme couche dans la fen\u00eatre cartographique de QGis, comme n&rsquo;importe quelle autre table spatiale SpatiaLite.<\/p>\n<h2>Supprimer\u00a0une vue spatiale<\/h2>\n<p>Supprimer\u00a0\u00a0une vue spatiale n\u00e9cessite que vous supprimiez la table vue spatiale, mais aussi l&rsquo;entr\u00e9e la concernant dans la table <em><strong>view_geometry_columns<\/strong><\/em>.<br \/>\nPour supprimer la table \u00a0vue spatiale, utilisez la commande <em><strong>SQL DROP VIEW<\/strong><\/em>. Par exemple, pour supprimer la vue de <em>les_hotels_brest_quimper<\/em>, vous aurez besoin d&rsquo;ex\u00e9cuter la commande SQL suivante :<\/p>\n<p><em><strong>DROP VIEW\u00a0les_hotels_brest_quimper<\/strong><\/em><\/p>\n<p>Avec la vue supprim\u00e9e, la derni\u00e8re \u00e9tape consiste \u00e0 supprimer l&rsquo;entr\u00e9e correspondante dans la table <em>view_geometry_columns<\/em> en utilisant la commande <em><strong>SQL DELETE<\/strong><\/em>.<br \/>\nPar exemple, pour supprimer l&rsquo;\u00e9criture concernant les h\u00f4tels de Brest et Quimper, vous devrez ex\u00e9cuter la\u00a0commande SQL suivante :<\/p>\n<p><em><strong>DELETE FROM views_geometry_columns<\/strong><\/em><br \/>\n<em><strong>WHERE\u00a0view_name = &lsquo;les_hotes_brest_quimper&rsquo;\u00a0;<\/strong><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une des diff\u00e9rences les plus marqu\u00e9es entre la gestion des donn\u00e9es avec des fichiers shape et une base de donn\u00e9es est la possibilit\u00e9 de cr\u00e9er des \u00ab\u00a0vues\u00a0\u00bb diff\u00e9rentes sur les m\u00eames donn\u00e9es. Dans cet article, le&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[62,172],"tags":[58,207,199,208],"class_list":["post-1537","post","type-post","status-publish","format-standard","hentry","category-qgis-2","category-tutoriel","tag-qgis","tag-requete-sql","tag-spatialite","tag-vue-spatiale"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-oN","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/1537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1537"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/1537\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=1537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=1537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}