题目:
学生表: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 primary key auto_increment,
Sname varchar(200) not null unique,
Ssex varchar (20) check (Ssex='男' or Ssex='女'),
Sage int,
Sdept varchar(200) default '计算机'
);
2、修改student表中年龄(age)字段属性,数据类型由int改变为smallint
alter table student modify Sage smallint;
3、为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX
CREATE TABLE SC(
Sno INT ,
Score INT,
Cno VARCHAR(200) p`sc`rimary KEY
);
4、创建一视图stu_info,查询全体学生的姓名,性别,课程名,成绩
create view stu_info as select student.Sname as '姓名',student.Ssex as '性别',SC.Cno as '课程名',SC.Score as '成绩'from student,course,SC;
用来创建视图
视图通过以定制的方式显示来自一个或多个表的数据
视图是一种数据库对象,用户可以像查询普通表一样查询视图
视图内其实没有存储任何数据,它只是对表的一个查询
视图的定义保存在数据字典内,创建视图所基于对表称为“基表”
为什么需要视图
例如经常要对emp和dept表进行连接查询,每次都要做表的连接,写同样的一串语句,同时由于工资列对数据比较敏感,对外要求不可见。对这样的问题就可以通过视图来解决。
视图的作用和优点
作用:
-
控制安全
-
保存查询数据
优点:
-
提供了灵活一致级别安全性。
-
隐藏了数据的复杂性
-
简化了用户的SQL指令
-
通过重命名列,从另一个角度提供数据