当前位置: 首页 > 面试题库 >

SQL中的CHAR数据类型已过时吗?您什么时候使用它?

齐锐进
2023-03-14
问题内容

标题几乎构成了这个问题。我多年来没有使用过CHAR。现在,我正在反向工程一个遍历所有CHAR的数据库,用于主键,代码等。CHAR(30)列怎么样?

编辑:所以,一般的意见似乎是CHAR,如果对某些事情来说完全合适的话。但是,我认为您可以设计不需要“某些特定条件”的数据库模式,因此不需要固定长度的字符串。使用bit,uniqueidentifier,varchar和text类型,似乎在一个规范化的架构中,您将获得使用编码字符串值时所没有的某种优雅。以固定的长度思考,这并不意味着冒犯,这似乎是大型机时代的遗物(我本人曾经学习过RPG
II)。我相信它已经过时,而且我没有听到您提出其他令人信服的论点。


问题答案:

数据的性质决定了字段的长度,我使用CHAR。否则为VARCHAR。



 类似资料:
  • 问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制

  • 问题内容: 我有一个将客户发送到另一个站点来处理付款的应用程序。客户之外的另一个站点在我们的服务器上调用一个页面,让我们知道付款的状态。被调用页面会检查付款应用程序提供的参数,并检查我们是否知道该交易。然后,它更新数据库以反映状态。这一切都无需与客户进行任何互动即可完成。 我个人选择将此功能实现为JSP,因为将文件拖放到文件系统中比编译和打包文件然后将条目添加到配置文件中要容易得多。 考虑到页面的

  • 问题内容: 我怎么能说: 为什么函数调用中不需要括号,而最后一行呢? 问题答案: 是一个功能 调用该函数并产生该函数返回的任何值。 setTimeout的目的是在一段时间后运行代码。你需要的功能只是传递给它(这样的setTimeout可以自称在适当的时候函数),因为如果你将它传递给setTimeout的前调用的函数(用括号),将执行 现在 而不是1秒后,。

  • 问题内容: 下面的代码将找到两行的交点并返回点对象。如果仅将由IntersectionOf2Lines类创建point,那么我应该将point嵌套吗?如果不是,那为什么不呢?谢谢 问题答案: 如果其他任何类都不需要Point类,并且Point类不需要访问IntersectionOf2Lines的私有类成员,则可以将Point类设为 静态嵌套类 。 甲 静态嵌套类 是具有给超类成员没有访问,通常用于

  • 一般来说,当发现 CPU 的占用率和实际业务应该出现的占用率不相符,或者对 Nginx worker 的资源使用率(CPU,内存,磁盘 IO )出现怀疑的情况下,都可以使用火焰图进行抓取。另外,对 CPU 占用率低、吐吞量低的情况也可以使用火焰图的方式排查程序中是否有阻塞调用导致整个架构的吞吐量低下。 常用的火焰图有三种: lj-lua-stacks.sxx 用于绘制 Lua 代码的火焰图 sam

  • 我是DynamoDB的新手。我希望创建一个使用DeviceID作为哈希键、Timestamp作为范围键和一些数据的表。 在SQL中,我们可以为Timestamp使用datetime类型,但在DynamoDB中没有。 对于所选的数据类型,我应该使用什么样的时间戳格式?ISO格式(例如:2016-11-11T17:21:07.5272333Z)或纪元时间(例如:1478943038816)? 我需要在