0
点赞
收藏
分享

微信扫一扫

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

彩虹_bd07 2022-02-12 阅读 61

文章目录

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;
举报
0 条评论