Je fais une affectation dans un cours de base de données sur mon uni en utilisant MySQL. Nous avons créé une base de données d'un club de golf, où nous (entre autres) pouvons stocker les résultats des joueurs de différents jeux.MySQL AVG() de varchar possible?
Maintenant, j'écris le rapport pour l'affectation, et j'essaie de prouver qu'il est préférable d'utiliser un int plutôt qu'un varchar pour stocker les résultats. Si un int est utilisé, les joueurs disqualifiés obtiendront une valeur NULL en conséquence. Si un varchar aurait été utilisé, ils auraient une chaîne: "disqualifié".
Les choses que je me demande sont:
- Est-ce que MySQL convertit automatiquement
varchar
àint
siavg()
est utilisé (par exemple) lorsqu'un calcul est sur le point de se produire? - Si c'est le cas, cela ralentit-il beaucoup la base de données (par rapport à si un int aurait été utilisé)?
- Est-il possible de faire des calculs sur des valeurs de chaîne? Par exemple. si l'attribut résultat est un
varchar
contenant "52", "68", "72", la moyenne peut-elle être calculée? - Que se passera-t-il si j'ai les chaînes listées ci-dessus plus un résultat qui est "disqualifié"? Va-t-il ignorer cette chaîne comme si elle avait ignoré une valeur NULL d'un int?
C'est une bonne chose que vous fassiez un cours de base de données, mais vous devriez le faire pour vous-même, sinon vous n'apprendriez pas. –
Eh bien, j'apprends beaucoup, et ce cours fait partie de mon programme. J'ai juste besoin d'un peu plus d'informations pour ce rapport. – lindastralberg