我一生都无法弄清楚 SQL 中的字符串函数能做什么。我意识到我在书中使用的查询纯粹是为了练习,所以这些问题是任意的,但例如:
select substring('San Antonio, TX', 5,3);
为什么你不能使用常规的 Select 语句和通配符得到相同的查询结果,找到从字符串的第五个字母开始的三个字母有什么好处呢?简而言之:在实际意义上,字符串函数实际上有什么用?谁能给我一些例子?谢谢你。
我一生都无法弄清楚 SQL 中的字符串函数能做什么。我意识到我在书中使用的查询纯粹是为了练习,所以这些问题是任意的,但例如:
select substring('San Antonio, TX', 5,3);
为什么你不能使用常规的 Select 语句和通配符得到相同的查询结果,找到从字符串的第五个字母开始的三个字母有什么好处呢?简而言之:在实际意义上,字符串函数实际上有什么用?谁能给我一些例子?谢谢你。
我认为您的问题有两个部分:函数有什么用,特别是子字符串。
一般来说,重要的是在数据库中以最简单的形式存储事物,并且永远不要存储重复或依赖的数据。后一个原则意味着如果一列与另一列有任何关联,那么设计就是错误的。
例如,你应该存储,比如名字和姓氏,但你不应该存储全名——这是可以派生的。同样,您可以存储出生日期,但不存储年龄,因为可以再次导出。
字符串函数对于从更简单的字符串派生数据很有用。
特别是,该substring
函数用于提取字符串的一部分。如果您有一个复杂的字符串,则可能需要将其分解为更小的组件。这对于产品代码或某些真正由部分组成的序列代码之类的东西特别有用。
substring
对包含不同部分的字符串不直接有用。如果他们这样做,那么您将需要将它们与更复杂的东西结合起来。
话虽如此,在设计良好的数据库中,几乎没有真正需要该substring
功能。如果数据确实是部分的组合,那么它应该已经被分成单独的列。这就是原子性原则,保证每一项数据都是最小的单位。
在您的示例中,字符串应该位于城镇和州的 2 个单独的列中,因此不再需要从中提取任何内容。