SQL39 针对上面的salaries表emp_no字段创建索引idx_emp_no

强制索引:SQL创建salaries表emp_no索引并查询10005记录
本文将指导如何在SQL中为salaries表emp_no字段创建强制索引idx_emp_no,并演示如何使用该索引来快速查询emp_no为10005的记录。通过实例展示创建表、索引及实际操作步骤。

文章目录

1. 题目

  • 题目来源:SQL39 针对上面的salaries表emp_no字段创建索引idx_emp_no

  • 题目描述
    针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005,使用强制索引。
    后台会检查是否使用强制索引

  • 表格

    CREATE TABLE `salaries` (
    `emp_no` int(11) NOT NULL,
    `salary` int(11) NOT NULL,
    `from_date` date NOT NULL,
    `to_date` date NOT NULL,
    PRIMARY KEY (`emp_no`,`from_date`));
    create index idx_emp_no on salaries(emp_no); 
    
  • 所需结果
    示例:

    输入:
    
    drop table if exists salaries;
    CREATE TABLE `salaries` (
      `emp_no` int(11) NOT NULL,
      `salary` int(11) NOT NULL,
      `from_date` date NOT NULL,
      `to_date` date NOT NULL,
      PRIMARY KEY (`emp_no`,`from_date`));
    create index idx_emp_no on salaries(emp_no);
    INSERT INTO salaries VALUES(10005,78228,'1989-09-12','1990-09-12');
    INSERT INTO salaries VALUES(10005,94692,'2001-09-09','9999-01-01');
    
    输出:
    
    10005|78228|1989-09-12|1990-09-12
    10005|94692|2001-09-09|9999-01-01
    

2. 题解

题目的意思是,已经创建了索引,现在需要强制索引查询指定条件数据。

使用:FORCE INDEX(index) WHERE condition

#CREATE INDEX idx_emp_no ON salaries(emp_no);
SELECT * FROM salaries FORCE INDEX(idx_emp_no) WHERE emp_no = 10005;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值