一 、索引和视图
学生表:Student (Sno, Sname, Ssex , Sage, Sdept)
学号,姓名,性别,年龄,所在系 Sno为主键
课程表:Course (Cno, Cname,)
课程号,课程名 Cno为主键
学生选课表:SC (Sno, Cno, Score)
学号,课程号,成绩 Sno,Cno为主键
1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 “计算机”。
CREATE TABLE `student` (
`sno` int NOT NULL,
`sname` varchar(20) DEFAULT NULL,
`ssex` char(10) DEFAULT NULL,
`sage` int DEFAULT NULL,
`sdept` varchar(20) DEFAULT '计算机',
PRIMARY KEY (`sno`),
UNIQUE KEY `sname` (`sname`),
CONSTRAINT `student_chk_1` CHECK ((`ssex` in ('男','女')))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。
alter table sc modify sno smallint;
3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。
create unique index sc_index on sc(sno asc, cno asc);
4.创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。
create view stu_info as select student.sname, student.ssex, course.cname, sc.score from student, course, sc where student.sno = sc.sno and course.cno = sc.cno;