SQL 数据类型转换
SQL 数据类型转换学习笔记
在 SQL 中,数据类型转换是将数据从一种类型转换为另一种类型的过程。数据类型转换可以分为 隐式转换 和 显式转换。
1. 隐式转换
隐式转换是数据库自动进行的类型转换,通常发生在表达式中涉及不同数据类型的操作时。
示例:
1 |
|
注意:
- 隐式转换依赖于数据库的自动类型推断,可能会导致不可预见的错误。
- 隐式转换的性能较低,因为数据库需要额外的时间进行类型推断。
2. 显式转换
显式转换是通过 SQL 提供的转换函数手动将数据从一种类型转换为另一种类型。常见的显式转换函数包括:
(1)TO_DATE
:将字符串转换为日期
1 |
|
参数说明:
- 第 1 个参数:源字符串。
- 第 2 个参数:日期格式模型(如
yyyymmdd
)。
(2)TO_CHAR
:将日期或数字转换为字符串
1 |
|
(3)TO_NUMBER
:将字符串转换为数字
1 |
|
3. 隐式转换 vs 显式转换
特性 | 隐式转换 | 显式转换 |
---|---|---|
定义 | 数据库自动进行的类型转换 | 通过 SQL 函数手动进行的类型转换 |
性能 | 较低(需要类型推断) | 较高(明确指定类型) |
可读性 | 较差(隐藏了类型转换逻辑) | 较好(明确显示类型转换逻辑) |
错误风险 | 较高(可能导致不可预见的错误) | 较低(明确控制类型转换) |
适用场景 | 简单的数据类型转换 | 复杂的数据类型转换 |
4. 综合示例
以下是一些综合示例,展示了隐式转换和显式转换的实际应用。
(1)查询指定日期的员工信息
1 |
|
(2)将数字转换为字符串并进行拼接
1 |
|
(3)将字符串转换为数字并进行计算
1 |
|
5. 注意事项
隐式转换的风险:
- 隐式转换可能导致不可预见的错误,例如将非数字字符串转换为数字时会报错。
- 隐式转换的性能较低,尤其是在大数据量查询时。
显式转换的优势:
- 显式转换明确指定了数据类型,提高了代码的可读性和可维护性。
- 显式转换可以避免隐式转换带来的错误风险。
日期格式模型:
- 在使用
TO_DATE
或TO_CHAR
函数时,必须指定正确的日期格式模型,否则会导致转换失败。
- 在使用
6. 练习
以下是一些练习题及其解答。
练习 1
将字符串 ‘2023-10-01’ 转换为日期类型,并查询该日期的员工信息
1 |
|
练习 2
将当前日期转换为字符串,并拼接为固定格式
1 |
|
练习 3
将字符串 ‘123.45’ 转换为数字,并计算其与 100 的差值
1 |
|
总结
- 隐式转换:数据库自动进行的类型转换。
- 显式转换:通过 SQL 函数手动进行的类型转换。
- 常用转换函数:
TO_DATE
、TO_CHAR
、TO_NUMBER
。
SQL 数据类型转换
https://blog.pangcy.cn/2018/09/06/数据库相关/Oracle/SQL 语法/SQL 数据类型转换/