gpt4 book ai didi

mysql - 关于char varchar和tinyint的问题

转载 作者:行者123 更新时间:2023-11-29 01:43:25 25 4
gpt4 key购买 nike

我正在制作注册表单。其中的字段/列是:

student_no(主键)和年龄

student_no 将保存固定长度为 9 个字符的值,其中包含 8 个数字和一个破折号,例如 11-423685、12-537859、12-974156

我不确定是使用 char 还是 varchar,因为我想在使用它们之前更多地了解这两种类型。具体来说:

  1. 这两种类型中的一种或两种都可以保存包含键盘上各种符号(-、@、_、$、# 等)的值,例如我需要学生编号包含破折号吗?

  2. 如果我给 char 一个长度为 9,那么给它一个长度为 8 及以下的值是否无效

  3. 需要注意的其他重要区别(如果有的话)

关于年龄,如果我使用tinyint,是否需要指定长度?还是我应该将 phpMyAdmin 中的长度字段留空?

注意:这实际上只是一个学校练习,其中的说明是制作一个包含任何十四个字段的工作注册表,所以我决定暂时不使用生日以避免必须使用日期。

最佳答案

INT 不允许任何非数字格式。 VARCHAR 可以。

但是,最好还是使用 INT 来表示学号,因为 INT 会导致更快的搜索。

您可以使用格式在输出时用连字符显示学号。数据库应该以最有效的格式(未格式化的数字)存储它。

此外,我建议您使用 DATE 来存储出生日期,而不是数字年龄。随着时间的推移,这将防止年龄变化的问题。同样,您可以计算用于演示的输出的年龄。

关于mysql - 关于char varchar和tinyint的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13665713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com