上周一java 的失利了,虽然还没正式开这门课,但我也自学了半年,这次的失利让我深刻认识了自己所存在的不足。为以后学习留下了宝贵的经验。熟话说:“不入虎穴,焉得虎子”。
后天,我要再一次去北大。这次考SQL SERVER2000 ,同样,这门还没学完,其实,是刚开始学。学到了第三章关系模式设计原理 , 虽然没有必胜的信心。但我会尽我全力。冲破最后一道防火线。经过这两天的操练,我总结:考数据库其实有诀窍。看看历年考题就会惊奇的发现每年的类型很像。虽然,每次考试内容都不一样,但无非也就是下面几种考试题型:
1,建表 设置主键 外键 实体类型 有无返回值
2,往表里填数据 (这里有很多小的细节)
3,SQL 查询 其中包含三小题 ,每一小题有不同的方式。
4,修改记录
5,删除记录
6,游标 可能这对我来说你最有挑战性的 因为我根本就不懂游标。对我来说是难点,但对别人可能就很容易。我根本就没学过。不过还有离考试还有26小时,我还有时间,这是我接下来要学的重点。游标做的好不好是判断你能否得优的关键。今晚练习了这道题:
create table e191_sporter( sno char (5) primary key,
sname varchar (20) not null,
sex char (2) ,
dname varchar (20) not null)
go
create table e191_project( pno char(5) primary key ,
pname varchar(20) ,
address varchar (20) )
go
create table e191_grade ( sno char(5),
pno char(5),
credit tinyint null ,
check(credit in(6,4,2,0)),
primary key (sno,pno),
foreign key(sno) references e191_sporter(sno),
foreign key(pno) references e191_project(pno))
go
insert into e191_sporter values('1001','李明','男','计算机系') ;
insert into e191_sporter values('1002','张三','男','数学系') ;
insert into e191_sporter values('1003','李四','男','物理系') ;
insert into e191_sporter values('1004','王二','男','物理系') ;
insert into e191_sporter values('1005','李娜','女','数学系') ;
insert into e191_sporter values('1006','孙俪','女','数学系') ;
insert into e191_project values('x001','男子五千米','一操场') ;
insert into e191_project values('x002','男子标枪','一操场') ;
insert into e191_project values('x003','男子跳远','二操场') ;
insert into e191_project values('x004','女子跳高','二操场') ;
insert into e191_project values('x005','女子三千米','三操场') ;
insert into e191_grade values('1001','x001','6') ;
insert into e191_grade values('1002','x001','4') ;
insert into e191_grade values('1003','x001','2') ;
insert into e191_grade values('1004','x001','0') ;
insert into e191_grade values('1001','x003','4') ;
insert into e191_grade values('1002','x003','6') ;
insert into e191_grade values('1004','x003','2') ;
insert into e191_grade values('1005','x004','6') ;
insert into e191_grade values('1006','x004','4') ;
select dname 系名,sum(credit) 总积分
from e191_sporter,e191_grade
where e191_sporter.sno=e191_grade.sno
group by dname
having sum(credit)>=all
(select sum(credit)
from e191_sporter,e191_grade
where e191_sporter.sno=e191_grade.sno
group by dname )
go
select pname as 项目名称, sname as 冠军名
from e191_sporter,e191_project x ,e191_grade
where address='一操场' and e191_sporter.sno=e191_grade.sno
and e191_grade.pno=x.pno
and credit>=( select max(credit)
from e191_project y,e191_grade
where address='一操场' and
e191_grade.pno=y.pno and x.pno= y.pno)
go
select sname 姓名
from e191_sporter x
where not exists( select *
from e191_sporter w,e191_grade y
where sname='张三' and w.sno=y.sno
and not exists (select *
from e191_grade z
where z.sno=x.sno and z.pno=y.pno and x.sno =w.sno
))
go
update e191_grade
set credit=0
where sno in
( select sno
from e191_sporter
where sname='张三')
go
delete
from e191_grade
where pno in( select pno
from e191_project
where pname='女子跳高'
)
SQl server2000 学习总结
最新推荐文章于 2025-08-08 21:00:55 发布