用mysql语言操作——创建学生表和成绩表索引并查看索引 •需求说明 •为提高以下查询的速度,为学生表和成绩表添加适合的索引,并查 看索引 •按学生名和年级编号组合查询 •学生身份证号是唯一的 •按成绩区间范围查找学生考试信息 提示 •可使用唯一索引、普通索引、组合索引提高查询效率
时间: 2023-07-11 21:04:11 浏览: 135
利用SQLite设计生成一个学生数据库并建立学生基本信息表及学生成绩信息表,对学生基本信息与学生成绩信息表编程实现新增及查找功能。
5星 · 资源好评率100%
创建学生表和成绩表
```mysql
CREATE TABLE student (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
id_card VARCHAR(18) NOT NULL,
grade INT(11) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY (id_card)
);
CREATE TABLE score (
id INT(11) NOT NULL AUTO_INCREMENT,
student_id INT(11) NOT NULL,
subject VARCHAR(50) NOT NULL,
score FLOAT NOT NULL,
PRIMARY KEY (id),
KEY (student_id),
CONSTRAINT fk_student_id FOREIGN KEY (student_id) REFERENCES student(id)
);
```
为学生表和成绩表添加适合的索引
```mysql
-- 为学生表添加组合索引
ALTER TABLE student ADD INDEX idx_name_grade (name, grade);
-- 为成绩表添加普通索引
ALTER TABLE score ADD INDEX idx_score (score);
```
查看索引
```mysql
-- 查看学生表索引
SHOW INDEXES FROM student;
-- 查看成绩表索引
SHOW INDEXES FROM score;
```
按学生名和年级编号组合查询
```mysql
-- 使用组合索引查询
SELECT * FROM student WHERE name = '张三' AND grade = 3;
```
学生身份证号是唯一的
在创建学生表时已经添加了唯一索引,保证身份证号唯一性。
按成绩区间范围查找学生考试信息
```mysql
-- 使用普通索引查询
SELECT s.name, sc.subject, sc.score FROM student s
JOIN score sc ON s.id = sc.student_id
WHERE sc.score BETWEEN 60 AND 80;
```
阅读全文