有这样一道数据库面试题

来源:百度知道 编辑:UC知道 时间:2024/06/10 07:06:48
索引列上有数学运算,那索引还起作用吗?

请问什麽是"索引列上有数学运算"?请问哪位能帮帮忙举出一个这样的sql?
真的吗?

起作用的 如果是字符的就不起作用了

例子: 如学生表 有 id 为主键 类型 int ,name

那么 我们可以 对主键进行 数学运算 如:

select id+1, name
from students

这个 主键是起作用的 不会对表进行遍历 因为 id+1 的数学运算 不会破坏id的索引作用

如果主键是 字符 类型就不起作用了

如: 订单表 中 订单时间为 datatime 主键 datetime类型

select convert(varchar(8),datetime,112),
order_name
from orders

上面 datetime 是字符类型 ,对它进行了 字符运算 那么 主键datetime 的索引效果就没有了