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

Administration MySQL Discussion :

Question type number


Sujet :

Administration MySQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 727
    Points : 261
    Points
    261
    Par défaut Question type number
    Bonjour,

    Je veux créer une colonne d'une table

    J'ai la même erreur avec VARCHAR2

    Mais je vois que MySQL ne prend pas ce type

    MERCI.

    A+

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut dari68.

    Pour un nombre décimal, il fait procéder ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `DEPTNO` DECIMAL(2,0) NOT NULL
    Mais si comme je le pense, c'est un entier, autant mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `DEPTNO` SMALLINT UNSIGNED NOT NULL
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 727
    Points : 261
    Points
    261
    Par défaut
    MERCI Artemus24.

    Là j'ai une nouvelle colonne (MOYENNE) j'ai besoin d'avoir des nombres décimaux:

    MOYENNE DECIMAL(5.2) Not Null Mais pour une moyenne 11.62 par exemple MySQL me retourne 12 !

    MERCI de votre aide.

    A+

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut Daria68.

    C'est un problème de conversion. Il faut que tu t'assures d'avoir partout des décimaux.
    Si ce n'est pas le cas, il faut utiliser la fonction "cast".
    Cela permet aussi d'avoir la précision voulue.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cast(colonne as decimal(15,3))
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 727
    Points : 261
    Points
    261
    Par défaut
    Bonjour,

    Merci, j'ai un gros fichier des insert MAIS j'ai les décimaux avec une virgule et Ma base MySQL n'accepte que les décimaux avec "le point"

    Y aurait une option à activer ou une collation qui accepterait ces nombres avec un point et non pas une virgule ?

    Comment appliquer cast(colonne as decimal(15,3)) sur un gros fichier ....?

    MERCI.

    A+

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut Dari68.

    Citation Envoyé par Dari68
    j'ai un gros fichier des insert MAIS j'ai les décimaux avec une virgule
    Je suppose que votre colonne contenant vos décimaux est du type "varchar()".
    Pour résoudre ce problème, il suffit d'utiliser un fonction mysql qui va vous convertir la virgule en un point dans la chaîne de caractères contenant votre nombre décimal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into votre_table (col1, col2, ...) values ('toto', replace(chaine, ',', '.'), ...);
    --> https://dev.mysql.com/doc/refman/8.0...nction_replace

    Citation Envoyé par Dari68
    Comment appliquer cast(colonne as decimal(15,3)) sur un gros fichier ....?
    La taille du fichier n'a aucune importance.
    Avant de faire le calcul, s'il s'agit de cela, vous devez vous assurer que vos colonnes dans vos tables sont dans le bon type, à savoir "decimal(15,3)".
    Si ce n'est pas le cas, modifiez le type de vos colonnes.

    Si vous devez convertir un entier en décimal, vous devez appliquer le "cast" sur la valeur avant de faire l'insertion.

    J'aimerai connaitre la description de vos colonnes ainsi que le calcul que vous faites concernant cette moyenne qui vous pose problème.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 727
    Points : 261
    Points
    261
    Par défaut
    Bonjour Artemus24,

    Ma colonne est typée DECIMAL(12,3) et les valeurs à insérer sont en "virgule" comme 5,55 et Mysql attend 5.55


    MERCI.

    A+

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut dari68.

    La virgule sera considéré par mysql comme un séparateur de ta chaine de caractères.
    Seul la partie entière sera prise en compte et ton nombre sera comme un entier.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    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 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par dari68 Voir le message
    Bonjour,

    Je veux créer une colonne d'une table

    J'ai la même erreur avec VARCHAR2...
    Les types NUMBER et VARCHAR2 n'existent pas dans le langage SQL. Ce sont des types spécifiques à Oracle. Les types de données de la norme SQL sont :
    DECIMAL, NUMERIC (pour les nombres en DCB - Décimal Codé Binaire), CHAR, VARCHAR, NCHAR et NVARCHAR pour les littéraux.

    Pour vous former au SQL :
    https://sqlpro.developpez.com/cours/...fondements/#L6


    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/ * * * * *

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 727
    Points : 261
    Points
    261
    Par défaut
    Merci à vous 2 Artemus24 + SQLPro

    A+

Discussions similaires

  1. [Architecture]Taille des données de type number
    Par Nick_Holmes dans le forum Oracle
    Réponses: 6
    Dernier message: 16/06/2006, 14h17
  2. Réponses: 6
    Dernier message: 15/06/2006, 10h52
  3. Convertir Type Text En Type Number
    Par jam92400 dans le forum Access
    Réponses: 3
    Dernier message: 30/05/2006, 10h04
  4. question type colonne & taille/valeur
    Par thierry198 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 07/01/2006, 01h41
  5. Variable Oracle de type number
    Par marti dans le forum Oracle
    Réponses: 1
    Dernier message: 16/08/2005, 11h04

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