Valeurs flottantes dans les questions d'ingénieur de base de données
Last updated: December 12, 2024
Vue d'ensemble
Lorsque vous créez une question d'Ingénieur de Base de Données, vous pouvez télécharger un CSV pour créer une table. Chacun des systèmes de bases de données supportés gère les valeurs à virgule flottante différemment. Cet article vous fournit un exemple pour montrer comment chaque système de base de données gère les valeurs à virgule flottante. Actuellement, HackerRank supporte les bases de données Microsoft SQL, MySQL, Oracle et DB2.
Exemple de valeurs à virgule flottante
L'exemple suivant montre comment différents systèmes de bases de données gèrent les données. Lors de la création d'une question d'Ingénieur de Base de Données, prenez en compte que les requêtes renvoient des résultats différents selon le système de base de données utilisé, et que le scoring est effectué par comparaison simple de chaînes.
Une table nommée Employee avec le CSV suivant comportant 5 colonnes. La colonne points est une flottante.
Id,cid,aid,points,score:
1,5608,1,0.59,4
1,5608,2,8.70,5
1,5608,3,4.99,1
1,5608,5,2.88,3
1,5608,9,0.79,1
1,5608,5,7.58,1
Pour la requête "SELECT * from Employee", les bases de données suivantes traitent les données flottantes de la manière suivante :
Oracle
Dans Oracle, la colonne points est de type FLOAT. La sortie est la suivante :
1 5608 1 .59 4
1 5608 2 8.7 5
1 5608 3 4.99 1
1 5608 5 2.88 3
1 5608 9 .79 1
1 5608 5 7.58 1
La base de données Oracle supprime les zéros en tête.
MySQL
Dans MySQL, la colonne points est de type FLOAT. La sortie est la suivante :
1 5608 1 0.59 4
1 5608 2 8.7 5
1 5608 3 4.99 1
1 5608 5 2.88 3
1 5608 9 0.79 1
1 5608 5 7.58 1
MySQL affiche les données telles qu'elles sont fournies.
MS SQL
Dans MS SQL, la colonne points est de type REAL. La sortie est la suivante :
1 5608 1 0.58999997 4
1 5608 2 8.6999998 5
1 5608 3 4.9899998 1
1 5608 5 2.8800001 3
1 5608 9 0.79000002 1
1 5608 5 7.5799999 1
MS SQL affiche une valeur approximative. Utilisez le type de données DECIMAL (10, précision) pour fixer les décimales nécessaires dans la sortie. Si vous modifiez le SQL de création de schéma que nous avons généré à partir du CSV pour que la colonne points soit de type DECIMAL(10, 2), la sortie devient :
1 5608 1 .59 4
1 5608 2 8.70 5
1 5608 3 4.99 1
1 5608 5 2.88 3
1 5608 9 .79 1
1 5608 5 7.58 1
MS SQL supprime les zéros en tête.
DB2
Dans DB2, la colonne points est de type DECFLOAT. La sortie est la suivante :
1 5608 1 0.59 4
1 5608 2 8.7 5
1 5608 3 4.99 1
1 5608 5 2.88 3
1 5608 9 0.79 1
1 5608 5 7.58 1
DB2 affiche les données telles qu'elles sont fournies.