PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 24/11/2009 14:55:52

supai
Membre

Trier et injecter dans une base.

Bonjour,

Je suis débutant sur postgresql.

J'ai une colonne NOM, une PRENOM et une VILLE.
Je cherche à trier selon la ville et injecter le résultat dans une table RENNES pour tous les gens qui habitent, une table PARIS pour tous les gens de paris etc....

Quelqu'un peut il me dire comment je peux faire. ?

Merci d'avance.

Hors ligne

#2 24/11/2009 14:58:09

gleu
Administrateur

Re : Trier et injecter dans une base.

Quelque chose comme ça :

SELECT nom, prenom, ville into paris from la_table where ville='paris';

Guillaume.

Hors ligne

#3 24/11/2009 15:01:34

supai
Membre

Re : Trier et injecter dans une base.

D'abord merci pour l'info.

Et peut on créer une table par valeur d'un champs.
Si j'ai un champ toto je crée une table toto, si ce meme camp est tata je crée une table tata etc...

Hors ligne

#4 24/11/2009 16:01:30

gleu
Administrateur

Re : Trier et injecter dans une base.

Je ne vois vraiment pas l'intérêt, mais bon.

Ce n'est plus du SQL, c'est du code. Donc il faut coder une procédure stockée pour le faire.


Guillaume.

Hors ligne

#5 24/11/2009 16:26:30

supai
Membre

Re : Trier et injecter dans une base.

e on fait comment

Hors ligne

#6 24/11/2009 16:41:00

supai
Membre

Re : Trier et injecter dans une base.

je m'explique plus en detail

j'ai une table avec des champs.

première operation je trie en fonction des valeurs d'un champs.
j'insere mon tri dans une table et a partir de ces infos kà je veux crée une ligne dans ma nouvelle table de manière automatique.

suis je plus clair

Hors ligne

#7 24/11/2009 17:01:36

gleu
Administrateur

Re : Trier et injecter dans une base.

Non, pas du tout. Aucune idée de ce que veux dire « j'insere mon tri dans une table ».

Pour info, le seul moyen de faire des actions automatiques au niveau de la base de données est par des triggers et par des rules. Les triggers ne se déclenchent que pour des opérations de modification des données. Les rules peuvent aussi se déclencher suite à un SELECT, mais en aucun cas l'ordre de tri n'est pris en compte.


Guillaume.

Hors ligne

#8 24/11/2009 17:05:08

flo
Membre

Re : Trier et injecter dans une base.

Pas tout à fait clair.
Ce que j'ai compris c'est que tu as une table (appelons-là table1) avec 3 champs nom, prénom, ville.
tu fais une requête avec tri par ville, et tu insère le résultat dans une 2ème table (disons table2).
Ensuite tu parcours cette table pour créer une table par ville et recopier les personnes habitant chaque ville?

Je ne vois pas l'intérêt. Surtout, je ne pense pas que cela te rende service si on te réponds comment faire cela, car je pense que tu t'égares. Apparemment, tu n'as pas encore compris comment fonctionne une base de données relationnelle. Comme tu dis que tu es débutant, cela me semble largement plus probable qu'un besoin très très spécial.
Peux-tu nous en dire plus sur pourquoi tu essaies de faire cela?

Hors ligne

#9 24/11/2009 17:15:04

jmax
Membre

Re : Trier et injecter dans une base.

create table paris as SELECT nom, prenom, ville  from la_table where ville='paris';

Hors ligne

#10 24/11/2009 17:33:04

sillius
Membre

Re : Trier et injecter dans une base.

Je penses comme Flo, je te conseille de chercher tout ce que tu peut trouver sur

     "sgbd forme normale"

apres avoir aprehendé les 4 formes, tu devrais pouvoir solutionner ton probleme de maniere tres simple, en architecturant ta base de maniere logique. Et les requetes et triggers nécessaires a tes besoins t'apparaitront de maniere fluide.

( au debut aussi, j'avais pas les bons reflexes en terme de construction, d'ailleurs, par moment je m'enquiquine encore)

Hors ligne

#11 24/11/2009 19:25:55

supai
Membre

Re : Trier et injecter dans une base.

En fait j'ai commencé un travail sous excel.
Pour optimiser mon action j'ai décidé de passer sur une base de données de type postgresql.

J'ai une table ds lequel j'ai des champs. Qui est ma table principales.
Le but est de filtrer les informations de cette table et de les mettres ds plusieurs petites tables, de faire mes actions de concatenation (entre autre) et de construire une ligne sur des lignes précédentes.

Ensuite je les exporte en csv.

Hors ligne

#12 25/11/2009 11:34:51

sillius
Membre

Re : Trier et injecter dans une base.

Oups

cas1:

       tu n'as pas encore exporté d'excel vers postgresql. Tu doit donc créés tes differentes tables, afin de t'assurer que tu pourras y "injecter" tes données.
       Tables, sur lesquelles tu mettras des triggers, rules et ce dont tu as besoin, pour que l'insertion sur la table "principale" se repercute sur les autres.

cas2

      tu as deja exporté vers postgresql, bha c'est au final la meme chose, tu créés les autres tables, et par des instructions sql, tu extrait pour chaque ville les données.



Dans les deux cas, je ne vois pas l'intérét de doubler le volume total de donnée dans ta base, et dans l'absolu d'etre amené à creer 36000 table ( c'est pas de l'humour), correspondant au 36000 communes françaises. Meme si, apperement le but est de pouvoir faire un export à la demande "d'un fichier ville" il est plus simple de créer la requéte adéquate (voire une requéte préparée) qui te cherchera les infos et exportera vers le repertoire de ton choix.

Hors ligne

#13 25/11/2009 11:52:58

flo
Membre

Re : Trier et injecter dans une base.

Oui, cela me conforte dans l'idée que la meilleure chose que supai aurait à faire pour commencer, c'est apprendre un minimum de choses sur la théorie relationnelle (non cela ne mord pas), et de SQL. Juste pour comprendre comment on travaille avec une base relationnelle.
Quelqu'un a une idée de ce qu'on peut conseiller pour cela? (livre, formation en ligne…) Désolée j'en ai pas (les supports de formation de ma boîte sont propriétaires, et je ne connais pas de bouquin pour débutant).

Dernière modification par flo (25/11/2009 11:54:17)

Hors ligne

#14 25/11/2009 12:03:14

supai
Membre

Re : Trier et injecter dans une base.

MERCI POUR LES DOCS JE VAIS VOIR SUR POSTGRESQL.
J AI COMMENCE A LIRE SQL PAR EXEMLE DE O REILYY

MERCI ENCORE

Hors ligne

#15 25/11/2009 12:28:58

sillius
Membre

Re : Trier et injecter dans une base.

Pour les docs, perso j'ai longtemps et je continue trainé sur "xxxxxxxxxx.com"

je met le lien pour la page sur les sgbd, http://bit.ly/bNVr11

http://bit.ly/bWVDx6 18pages avec beaucoup de modelisation graphique
http://bit.ly/aBgOXU cours complet et donc long

aprés c'est surtout un avis personel qui n'engage que moi, éviter les forums connus qui apparaissent dans google, au sens où se sont plus des lieux de querelles de chapelles.

bonne chance à toi

[EDIT] J'ai supprimé les références à dxxxxxxxxxxxz.com, y'a quelques années on nous a reprochez de leur détourner le traffic du forum PostgreSQL, merci de ne plus en remettre en lien direct mais seulement via des liens à URL raccourci
D'ailleurs si vous regardez sur le forum de ce site, les liens vers la doc, pointe vers la doc française http://bit.ly/b6vABL remise à leur sauce sur leur site, mais en omettant les références des traducteurs français membres de PostgreSQLFr.

Hors ligne

#16 25/11/2009 16:09:55

supai
Membre

Re : Trier et injecter dans une base.

Ok merci je viens d'y aller.

Hors ligne

#17 23/04/2010 11:28:09

Stanley
Membre

Re : Trier et injecter dans une base.

Bonjour,
            j'aimerai importer des fichiers de type kml sur postgresql mais je ne connais pas la démarche. Pouvez-vous me donner une piste?

Hors ligne

#18 23/04/2010 14:12:10

daamien
damien clochard

Re : Trier et injecter dans une base.

Stanley : Merci de ne pas répéter la même question plusieurs fois . Une seule fois suffit, on est pas sourds :-)
De plus si ta question n'a rien à voir avec la discussion en cours il est préférable d'en créer une nouvelle en cliquant sur "Nouvelle discussion" . Merci d'avance...

Pour ta question sur l'import de données KML, ma réponse est là : http://forums.postgresql.fr/viewtopic.p … 4714#p4714

Hors ligne

Pied de page des forums