教学管理数据库中有学生表
1. 已知一个教学管理数据库JXGL,包含以下三张数据表:学生表、课程表以及学生成绩表。它们的结构如下:
1.IF EXISTS (SELECT * FROM sysobjects WHERE
name = 'view_stuInfo')
DROP VIEW view_stuInfo
GO
CREATE VIEW view_stuInfo
AS
SELECT a.学号,a.姓名,b.课程号,c.成绩 from 学生专表 a,课程表 b,学生成绩表 c
where a.学号=c.学号 and b.课程号=c.课程号
GO
2.insert into 学生表 values(21,‘王玲’,属女,20,‘计算机’)
3.select count(*) from 学生表
2. 教学管理”数据库中有学生表、课程表和选课表,如何创建数据库反应三张表之间的联系
关于反映这三张表中数据之间的联系,提供三方面信息以供参考:
1、表关系分析:学生表与课程表是多对多的关系,建立一张关联表也就是选课表来将学生表与程表产生关联。
2、数据库表分析:学生表包括学生相关信息,课程表包括课程相关信息,选课表放其他两张表的各一个字段(可以维护唯一性,比如说主键)。
3、实体分析:包含学生和课程两个实体,在每个实体中加入另外一个实体的集合。
3. 在教学管理数据库中,学生表和成绩表通过关键字学号字段构成的是
一对多,每个学生都有1个固定的学号,这个学习学习了多门课程,每个课程都有一个成绩,所以是一个学生多门成绩,形成一对多
4. 在教学管理数据库jxgl中有5张表,完成SQL查询语句
成绩表怎么没有字段呢
5. 某学校教学管理数据库jxgl.dbc中有三个表:学生表,课程表和成绩表,内容如下: 学生表:
(1)创建学生表、课程表和成绩表。具体要求:学生表中学号为主索引,出生日期默认值为1988-09-01;课程表中课程号为主索引,学分不能为空;成绩表中学号是外索引与学生表建立关系,课程号是外索引与课程表建立关系,成绩的要求是在0-100之间。
createtable 学生表
(学号intnotnullprimarykey,
姓名varchar(30)notnull,
性别varchar(4)notnull,
出生日期datetimenotnulldefault 1988-09-01
)
go
createtable 课程表
(课程号char(6)notnullprimarykey,
课程名varchar(30)notnull,
学分char(10)notnull
)
go
createtable 成绩表
(学号 学生表(学号),
课程号char(6) 课程表(课程号),
成绩 tinyintconstraint 成绩_ckcheck (成绩>=0 and 成绩<=100 )
)
(2)通过insert into命令向各表中输入记录(按照所给表的内容)
insert into 学生表values (10001,'张娟娟','女','1987-09-01')
insert into 学生表values (10002,'李斌','男','1988-03-01')
insert into 学生表values (10003,'王亮晶','女','1986-05-04')
insert into 学生表values (10004,'成果果','女')
insert into 课程表values ('K01','VFP程序设计','3.5')
insert into 课程表values ('K02','计算机文化基础','2')
insert into 成绩表values (10001,'K01 ','85')
insert into 成绩表values (10001,'K02 ','90')
insert into 成绩表values (10002,'K01 ','88')
insert into 成绩表values (10002,'K02 ','92')
insert into 成绩表values (10003,'K01 ','90')
insert into 成绩表values (10003,'K02 ','91')
insert into 成绩表values (10004,'K01 ','76')
insert into 成绩表values (10004,'K02 ','87')
(3)查询“VFP程序设计”课程的学号和成绩并按降序输出。
select 课程表.课程名,成绩表.学号,成绩表.成绩from 成绩表
join 课程表on 成绩表.课程号=课程表.课程号
where 课程表.课程名='VFP程序设计'
orderby 成绩表.成绩desc
(4)查询“成果果”的学号和成绩。
select 学生表.姓名,成绩表.学号,成绩表.成绩from 成绩表
join 学生表on 成绩表.学号=学生表.学号
where 学生表.姓名='成果果'
(5)查询“张娟娟”的学号和出生日期。
select 学号,姓名,出生日期from 学生表where 姓名='张娟娟'
(6)查询课程号为“K01”的成绩。
select 课程号,成绩from 成绩表where 课程号='K01'
(7)查询“王亮晶”的“计算机文化基础”成绩。
select 学生表.姓名,课程表.课程名,成绩表.成绩from 成绩表
join 课程表on 成绩表.课程号=课程表.课程号
join 学生表on 学生表.学号=成绩表.学号
where 课程表.课程名='计算机文化基础'and 学生表.姓名='王亮晶'
6. 在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义是什么
1)
SELECT 课程号, 课程名, 课程学分
FROM 课程 WHERE 课程号 IN(SELECT 课程号
FROM 选课
GROUP BY 课程号
HAVING COUNT(学生号) BETWEEN 2 AND 4 )
2) SELECT MAX(成绩) - MIN(成绩) AS 分数之差
FROM 选课
倘若要每门课程相差
SELECT 课程, MAX(成绩) - MIN(成绩) AS 分数之差
FROM 选课
GROUP BY 课程
7. 在名称为教学库的数据库中包含有学生、课程和选课三个表
1)
SELECT 课程复号制, 课程名, 课程学分
FROM 课程 WHERE 课程号 IN(SELECT 课程号
FROM 选课
GROUP BY 课程号
HAVING COUNT(学生号) BETWEEN 2 AND 4 )
2) SELECT MAX(成绩) - MIN(成绩) AS 分数之差
FROM 选课
倘若要每门课程相差
SELECT 课程, MAX(成绩) - MIN(成绩) AS 分数之差
FROM 选课
GROUP BY 课程
8. “学生管理”数据库中的“学生”表中数据如下表,请写出下列查询的SQL语句
1.
select学号,姓名,专业from学生
2.
select*from学生
3.
select*from学生where姓名like'王%'
4.
select*from学生where性别='男'
5.
select*from学生whereYEAR(出生日期)=1990
6
select*from学生where专业='国际贸易'
7.
select*from学生whereYEAR(出生日期)=1991
8
select*from学生where姓名like'张%'
9. 数据库中创建一个学生表
如果想在数据库中创建一个学生表的话,需要插入一个表格进行操作
10. vf.假设在D盘目录下有教学管理数据库、其中含有学生成绩表,用命令的形式打开并显示出学生的成绩表
select count(*) from 学生成绩表 where 分数>600