CREATE DATABASE jxgl
GO
USE jxgl
Go
Create Table Student
(Sno CHAR(5) NOT NULL PRIMARY KEY(Sno),
Sname VARCHAR(20),
Sage SMALLINT CHECK(Sage>=15 AND Sage<=45),
Ssex CHAR(2) DEFAULT'男' CHECK(Ssex='男' OR Ssex='女'),
Sdept CHAR(2));
Create Table Course
(Cno CHAR(2) NOT NULL PRIMARY KEY(Cno),
Cname VARCHAR(20),
Cpno CHAR(2),
Ccredit SMALLINT);
create table sc
(sno char(5) not null constraint s_f foreign key references student(sno),
cno char(2) not null,
grade smallint check((grade is null)or(grade between 0 and 100)),
primary key(sno,cno),
foreign key (cno) references course(cno));
insert into student values('98001','钱横',18,'男','CS');
insert into student values('98002','王林',19,'女','CS');
insert into student values('98003','李民',20,'男','IS');
insert into student values('98004','赵三',16,'女','MA');
insert into Course values('1','数据库系统','5',4);
insert into Course values('2','数学分析',null,2);
insert into Course values('3','信息系统导论','1',3);
insert into Course values('4','操作系统_原理','6',3);
insert into Course values('5','数据结构','7',4);
insert into Course values('6','数据处理基础',null,4);
insert into Course values('7','C语言','6',3);
insert into sc values('98001','1',87);
insert into sc values('98001','2',67);
insert into sc values('98001','3',90);
insert into sc values('98002','2',95);
insert into sc values('98002','3',88);
insert into Student values('98011','张静',27,'女','CS');
insert into Student values('99201','石科',21,'男','CS')
insert into Student values('99202','宋笑',19,'女','CS')
insert into Student values('99203','王欢',20,'女','IS')
insert into Student values('99204','彭来',18,'男','MA')
insert into Student values('99205','李晓',22,'女','CS')
insert into Student(Sno,Sname,Sage) values('98012','李四',16);
insert into Student values('99010','赵青江',18,'男','CS')
insert into Student values('99011','张丽萍',19,'女','CH')
insert into Student values('99012','陈景欢',20,'男','IS')
insert into Student values('99013','陈婷婷',16,'女','PH')
insert into Student values('99014','李军',16,'女','EH')
insert into SC
select sno,cno,null
from Student,Course
where Sdept = 'CS' and cno='5';
insert into Student
select cast(cast(sno as integer)+1 as char(5)),sname+'2',sage,ssex,sdept
from Student where Sname='赵三';
go
select *
from Student;
select *from Student
update Student set sname='李明',Sage=23 where sno='98003'
select *from Student
update student set student.Sage = Student.Sage+1
from (select top(3) * from student order by sno) as stu3
where stu3.sno=Student.sno;
select *from Student
update top(3) percent Student set student.Sage=Student.Sage+1;
select *from Student
select *from sc
update sc
set grade=(select avg(grade) from sc where cno='3')
where sno = '98001' and cno='3'
select *from sc
select *from sc
update sc set grade=0
where cno='2' and sno in(select sno from Student where sname = '王林')
select *from sc
select * into TSC from sc
select * from TSC
select *from sc
delete from sc
where 'CS'=(select sdept from Student
where Student.Sno=sc.sno)
select *from sc
insert into sc select * from TSC
delete from sc
truncate table sc
insert into sc values('99010','1',87)
insert into sc values('99010','3',80)
insert into sc values('99010','4',87)
insert into sc values('99010','6',85)
insert into sc values('99011','1',52)
insert into sc values('99011','2',47)
insert into sc values('99011','3',53)
insert into sc values('99011','5',45)
insert into sc values('99012','1',84)
insert into sc values('99012','4',67)
insert into sc values('99012','5',81)
insert into sc(sno,cno)values('99010','2')
insert into sc(sno,cno)values('99012','3')
select * from sc
--2
select * into TS from Student
delete from TS
select * from TS
--3
insert into SC
select sno,cno,60
from Student
where Sdept = 'IS' and cno='7';
// 如果from student course 会进行广义笛卡尔积,会导致重复出现;或者使用distinct 来约束
select * from SC
select * from Student
insert into TS
select *
from Student
where Ssex='女' and Sage<=16;
INSERT INTO TS
SELECT *
FROM STUDENT
WHERE SNO IN
(SELECT SNO
FROM SC
GROUP BY SNO
HAVING MAX(GRADE)<60
)
--6
update Student set sname='刘华',Sage=sage+1 where sno='99011'
select * from SC
--7
update sc
set grade =null
where grade<60 and cno in(select cno
from Course
where Cname='数据库系统')
select * from SC
--8
update student set student.Sage = Student.Sage+1
from (select top(4) * from student order by sno) as stu3
where stu3.sno=Student.sno;
update sc set grade=null
where cno='3' and sno in(select sno from Student where sname = '王林')
select *from sc
--10
update sc
set grade=grade*1.05
where grade<(select avg(grade) from sc) and sno in(select sno from Student where ssex = '女')
select *from sc
--11
update sc
set grade = grade*0.98
where grade<=80 and cno='2'
update sc
set grade = grade * 0.99
where grade >80 and cno='2'
--12
select * into t11 from Student
select * into t12 from Course
select * into t13 from SC
select * from sc
--13
delete from sc
where grade IS null
select * from sc
--14
delete from sc
where sno in (select sno
from Student
where Sname='钱横')
delete from sc
where sno ='98005'
delete
from Student
where sno='98005'
--16
delete from sc
where sno in(select sno
from Student
where Sname like '张%')
select * from Student
delete from Student
where Sname like '张%'
--17
delete from student
delete from course
--18
insert into student select * from t1
insert into sc select * from t2
insert into course select * from t3