create database  学生选课

  create  table 学生表
(学号 char(8) ,姓名 char(8),性别 char(2),出生日期 datetime,所在系 char(8))
  create  table   课程表
(课程号 char(8),课程名 char(8), 学分 char(8))
   create  table  选课表
(学号 char(8) ,课程号 char(8),成绩 float (8))

use 学生选课

insert 学生表
(学号,姓名 ,性别,出生日期,所在系 )
values ('101','袁敏','女','1982-2-3','机电')
insert 学生表
(学号,姓名 ,性别,出生日期,所在系 )
values ('102','李志强','男','1983-4-5','计算机')

insert 学生表
(学号,姓名 ,性别,出生日期,所在系 )
values ('103','张亮','男','1984-10-9','建筑')
 
insert 课程表
(课程号,课程名, 学分)
values ('1011','C语言','6')
insert 课程表
(课程号,课程名, 学分)
values ('1012','数据结构','4')
insert 课程表
(课程号,课程名, 学分)
values ('1014','微机原理','6')

insert  选课表
(学号,课程号,成绩)
values ('101','1011','82.5')

insert  选课表
(学号,课程号,成绩)
values ('101','1012','79')
 
insert  选课表
(学号,课程号,成绩)
values ('102','1012','92.5')
 
create view v_xs 
as select 姓名,成绩 from  学生表 ,选课表 where 所在系='计算机'

alter table 选课表 alter column 成绩 numeric (30)
update 选课表
set 成绩 =成绩+成绩*0.1
where 学号 in(select 学号 from 学生表 where 性别='女')
select * from 选课表
 
 
select 姓名, 成绩,课程名 from  选课表,课程表,学生表
 

select  学生表.姓名 ,count(课程号)
from 学生表, 选课表
where  选课表.学号=学生表.学号
group by 姓名
having count(课程号)>3
 
create procedure jingang
 @jin varchar(10)
as
select 姓名,成绩,学分 from 选课表,课程表,学生表
where 课程表.课程号=选课表.课程号 and 姓名= @jin
execute jingang ''

create trigger jing
on   学生表
for insert,update
as 学号 like'10%'

  create  table 学生表现1
(学号 char(8) ,姓名 char(8),性别 char(2),出生日期 datetime,所在系 char(8))
create trigger jin
on   学生表现1
for delete
as if (select 学生表 from delete)='学号'
begin 
prinf '你将删除该生信息'
roolback
end