/*
学生(学号,姓名,性别,年龄,所在系);
课程(课程号,课程名,先行课),
选课(学号,课程号,成绩)。
用 Transact-SQL完成下列操作。
l)建立学生选课库。
2)建立学生、课程和选课表。
3)建立各表以主码为索引项的索引。
4)建立学生性别只能为“男”或“女”的规则,性别为“男”的缺省,并将它们绑定在学生表上。
5)建立在对选课表输入或更改数据时,必须服从参照完整性约束的INSERT和UPDATE触发器。
6)建立在删除学生记录时,同时也要把相应的选课记录删除的触发器。
7)查询各系及学生数,最后来出共有多少系和多少学生。
8)将学生表和选课表进行内连接、左外连接和右外连接。
9)列出学生学号、姓名及学习情况。学习情况用好、较好、一般或较差表示。当平均成绩大于85分时,学习情况为好;当平均成绩在70~85分之间,学习情况为较好;当平均成绩在60~70分之间,学习成绩为一般;平均成绩在60分以下的为学习情况较差。
*/
--Stu(Sno,Sname,Ssex,Sage,Sdpm);
--Course(Cno,Cname,Cprv);
--CoSelected(Sno,Cno,grade);
Create table Stu(Sno char(5) not null unique,
Sname char(8) unique,
Ssex char(2) check(Ssex in('男','女')),
Sage char(3),
primary key(Sno));
Create table Course(Cno char(5) not null unique,
Cname char(20) unique,
Cprv char(20),
primary key(Cno));
Create table CoSelected(Sno Char(5) not null,
Cno Char(5) not null,
--grade Char(3),
primary key(Sno,Cno),
foreign key(Sno) references Stu(Sno),
foreign key(Cno) references Course(Cno));
select * from stu
--alter table Stu add depm char(30);
--update stu set depm='计算机系' where Sno='00001';
--update stu