IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Insérer un élément dans une table avec un tri sur une colonne


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Points : 51
    Points
    51
    Par défaut Insérer un élément dans une table avec un tri sur une colonne
    Bonjour a tous!

    Voila je fais du J2EE et je bloque sur une requête sql. Dans mon programme je fais une partie de tetris et une fois la partie fini le joueur doit enregistrer son pseudo avec le score qu'il vient de faire. Et une fois fait il faut que dans ma table score on arrive à insérer le nom de joueur avec son score et son niveau mais l'insérer par rapport à son score. Par exemple:

    Position Joueur niveau score
    1 Toto 4 1000
    2 Ben 4 800
    3 Luc 3 500

    Je veux insérer cette nouvelle ligne: "Tom , 3 , 600" comme ceci:

    Position Joueur niveau score
    1 Toto 4 1000
    2 Ben 4 800
    3 Tom 3 600
    4 Luc 3 500

    Avec évidement toute la colonne position qui se met à jour avec cette nouvelle insertion.
    Donc je cherche une requête sql qui modélise le mieux cette situation. Es ce que quelqu'un pourrai m'aider ? Désolé si le sujet n'est pas au bon endroit. Et j'ai fait quelque recherche sur le sujet mais sans de grand résultat. Merci d'avance.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 756
    Points : 52 534
    Points
    52 534
    Billets dans le blog
    5
    Par défaut
    Les bases de données relationnelles n'ont rien à voir avec des lignes de fichiers. Ce sont des ensembles au sens strictement mathématique du terme et par conséquent il n'existe aucune notion d'ordre dans les lignes d'une table et vous ne pouvez absolument jamais imposer un ordre physique des lignes de la table, parce que le serveur peut vous les restituer à tout moment dans l'ordre que lui souhaite pour des raisons d'optimisation !

    La seule chose que vous pouvez faire c'est restituer les lignes dans l'ordre que vous souhaitez à l'aide de la clause SQL non relationnelle ORDER BY.

    À lire sur le sujet :
    http://blog.developpez.com/sqlpro/p5..._sont_des_ense
    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L5

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Pour compléter ce qu'a dit SQLPro, j'ajouterai que votre colonne Position n'a rien à faire dans votre table.

    Vous pouvez la calculer lors d'une requête à l'aide d'une fonction analytique comme RANK()

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/10/2014, 11h19
  2. Réponses: 5
    Dernier message: 10/09/2012, 15h30
  3. Nombre total d'éléments dans plusieurs tables avec SQL
    Par mistermiss dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/05/2009, 23h23
  4. Réponses: 3
    Dernier message: 16/04/2009, 22h17
  5. comment filtrer une table avec deux criteres càd 2 colonnes
    Par athmane2dz dans le forum Bases de données
    Réponses: 7
    Dernier message: 28/07/2004, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo