分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
题目: A 对于教学数据库存的三个基本表:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
试用SQL的查询语句表达下列查询:
1检索LIU老师所授课程的课程号和课程号
2检索年龄大于23岁的男学生的学号和姓名
3检索学号为S3学生所学课程的课程名与任课教师名
4检索至少选修LIU老师所授课程中一门课程的女学生姓名
5检索WANG同学不学的课程的课程号
6检索至少选修两门课程的学生学号
7检索全部学生都选修的课程的课程号与课程名
8检索选修课程包含LIU老师所授课程的学生学号
解析:
1select c#,ame from c where teacher='liu'
2select s#,sname from s where age>23 and sex='男'
3select ame,teacher from sc,c where scc#=cc# and s#='s3'
4select distinct sname from s,sc,c where ss#=scs# and cc#=scc# and teacher='liu'
5select c# from c where not in (select c# from sc where s#=(select s# from s where sname='wang'))
6select s# from s,sc where ss#=scs# group by s# having count(c#)>=2
7select c#,ame from c where c# in (select c# from sc as sc1 where sc1s# not in (select ss# from sc as sc2 ,s where not exists (select from s ,sc as sc3 where sc3c#=sc2c# and sc3s#=ss#)))
8Select s# from sc sc1 where c# in
(select c# from sc as sc2 where not exists (select from c where teacher='liu' and not exists( select from sc as sc3 where sc3s#=sc2s# and sc3c#=cc#)))
--学生信息(学号,姓名,性别,籍贯,班级编号)和成绩表(学号,课程编号,成绩,是否重修
--学生信息表中学号为主键,其他信息都不允许为空
--通过学号与成绩表形成一个一对多的关系,成绩表中的成绩的默认值为0,但必须在0~100之间。
CREATE TABLE 学生信息
(
学号 INT IDENTITY
NOT NULL
PRIMARY KEY ,
姓名 VARCHAR(50) NOT NULL ,
性别 BIT NOT NULL
DEFAULT (0) ,
籍贯 VARCHAR(50) NOT NULL ,
班级编号 INT NOT NULL
);
CREATE TABLE 成绩
(
学号 INT NOT NULL
FOREIGN KEY REFERENCES 学生信息 (学号) ,
课程编号 INT NOT NULL ,
成绩 INT NOT NULL
DEFAULT (0) ,
是否重修 BIT NOT NULL
DEFAULT (0)
);
ALTER TABLE 成绩 ADD CONSTRAINT ck_成绩 CHECK(100 >= 成绩 AND 成绩>=0);
SELECT FROM 学生信息;
SELECT FROM 成绩;
1如果用自己电脑上的dsn(不推荐,因为这样只能以你自己的电脑做服务器,如果是远程服务器,那样还得设置那个服务器),好像得从网上下一个accdb的驱动。现在电脑上只支持mdb而且必须得设置ODBC
2如果自己写一个连接代码(推荐,利于上传远程服务器,在本地也很好使用),可以参照一楼的回答,不过得改一处错 DRIVER={Microsoft Access Driver (accdb)};
3建议保存成2003的文件,即 mdb,这样更方便 *** 作和连接,而且两种方式都好用。
create table sc(
sno char(100),
cno char(100),
grade number
);
alter table sc add constraint pk_1 primary key(sno,cno)
alter table sc add constraint sno_1 foreign key(sno) references student(sno)
alter table sc add constraint cno_1 foreign key(cno) references course(cno)
select a,b,cgrade from student a, course b ,sc c
where asno=csno and bcno=ccno and aname like'张%'
select a,b,cgrade from student a, course b ,sc c
where asno=csno and bcno=ccno and axi_name in('IS','EB')
select sex,sum(age)/count() from student a
group by sex
select aStu_no,aname,bcourse_name,cgrade from student a, course b ,sc c
where asno=csno and bcno=ccno
select astu_no,cgrade from student a, course b ,sc c
where asno=csno and bcno=ccno and bcno='1'
order by cgrade desc
alter table student add(inyear char(4))
update sc set grade =60 where grade between 55 and 59
delete sc where sno='200910001'
insert student into
(sno,
name,
sex
)
values
('20110001',
'张小涛',
'男'
)
以上就是关于谁能帮我解一下SQL语句呢谢谢各位啦!全部的内容,包括:谁能帮我解一下SQL语句呢谢谢各位啦!、使用Transact—SQL语言创建教学管理数据库,创建两个表学生信息的步骤是什么、简述创建一个名为“教学管理.accdb”数据库的步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)