学生课程表
① 假设“学生—课程”数据库中包含学生表、课程表、学生选课表3个表
--1
selectSname,SagefromStudentwhereSage<(selectSagefromStudentwhereSno='某一学生')andSdept='数学系'
--2
(selectSnofromSC)
--3
((*)=(selectcount(*)fromCourse))
--4
题意不清楚
② 学生—课程”数据库中包含学生表、课程表、学生选课表3个表
看一下。等下写写。内
1.
select sno, ssex from student where
sname like '王%'
2.
select sname from student where
sname not like '刘容%'
3.
select sname from student where
sage <20
4.
select sage from student order by sage asc
5. select count(*) from student where sno in (
select sno from sc)
③ 用SQL对学生表、课程表、成绩表进行多表查询。
CREATE TABLE 选课表
(学号 CHAR(8) REFERENCES 学生表内(学号),
课程编号 CHAR(6) REFERENCES 课程表(课程编号),
成绩 smallint)
GO
INSERT INTO 学生表 VALUES('20100101','李丹','女','1993-6-6','管理系容')
GO
SELECT 学号,姓名,所在系
FROM 学生表
GO
SELECT 学生表.学号,姓名
FROM 学生表 JOIN 选课表 ON 学生表.学号=选课表.学号
WHERE 课程编号='A01-02'
GO
SELECT *
FROM 学生表
WHERE 姓名 LIKE '[赵李张]%'
GO
SELECT 课程名称,COUNT(*) AS 选修总人数
INTO 修课统计
FROM 课程表 JOIN 选课表 ON 课程表.课程编号=选课表.课程编号
GROUP BY 课程名称
④ SQL语句的一道题 三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC)
1. select * from SC
2. select Sname,Sage from Student where Sdept = '计算机'
3. select Sno,Cno,Grade from SC where Grade >= 70 and Grade <= 80
4. select Sname,Sage from Student where Sage between 18 and 20 and Ssex = '男'
5. select top 1 Grade from SC where Cno = 'C01'
6. select max(Sage),min(Sage) from Student
7. select Sdept,sum(Sno) from Student group by Sdept
8. select course.Cname,sum(sc.Sno),max(Grade) from SC
join studet on Student.Sno = SC.Sno
join Course on Course.Cno = SC.Cno
group by course.cname,max(grade)
9. select sum(Cno),avg(Grade) from SC
join Course on Course.Cno = SC.Cno
join Student on Student.Sno= SC.Sno
order by SC.Sno
10. select Stuent.Sno,Stuent.Sname,sum(Grade) A from SC
join Student on Student.Sno = SC.Sno
group by sc.Sno,student.Sname
having A > 200
11. select Student.Sname,Student.Sdept from Student
join Course on Course.Cno = SC.Cno
join SC on SC.Sno = Student.Sno
where SC.Cno = 'C02'
12. select Student.sname,course.cno,sc.grade from sc
join student on student.sno = sc.sno
join course on course.cno = sc.cno
where sc.grade >= 80
order by sc.grade desc
13. select cno,cname from
(
select course.cno,course.cname,sun(sno) from student
join course on course.cno = sc.cno
join sc on sc.sno = student.sno
group by cno,cname
having sun(sno) > 0
)
14. ① select student.sname,student.sdept from
(
select student.sname,student.sdept,course.cname from student
join sc on sc.sno = student.sno
join course on course.cno = sc.cno
where course.cname = 'C01'
)
② select student.sno,student.sname from
(
select student.sno,student.sname,student.sdept,sc.grade from sc
join student on student.sno = sc,sno
where student.sdept = '信息' and sc.grade >= 80
)
③ select top 1 student.sname from
(
select student.sname,student.sdept,sum(sc.grade) from sc
join student on student.sno = sc.sno
where student.sdept = '计算机'
group by student.sname,student.sdept
order by
)
15. delete from sc where grade < 50
16. update sc set grade += 5 from sc
join course on course.cno = sc.cn
join student on student.sno = sc.sno
where student.sno =
(
select student.sno from sc
join course on course.cno = sc.cno
where course.cname = 'c01'
)
17. update sc set grade += 10 from sc
join student on student.sno = sc.sno
where student.sno =
(
select student.sno from student
join sc on sc.sno = student.sno
join course on course.cno = sc.cno
where student.sdept = '计算机' and course.cname = '计算机文化基础'
)
18. create view [A] as
select student.sno,student.sname,student.sdept,course.cno,course.cname,sc.grade from sc
join student on student.sno = sc.sno
join course on course.cno = sc.cno
19. create view [A] as
select student.sno,avg(sc.grade) from sc
join student on student.sno = sc.sno
group by student.sno
20. create view [A] as
select student.sno,sum(sc.grade) from sc
join student on student.sno = sc.sno
group by student.sno
21. create index A on student(sname)
22. 不会
⑤ 数据库中建立学生表课程表选课表及其联系
以 access 为例,建立数据表如下:
1、学生表
⑥ 数据库中包含学生表、课程表、学生选课表3个表,分别是什么
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
课程
⑦ 学生课程表的制做
Microsoft Excel 2010:
EXCEL中没有现成的三分表格斜线
需要使用插入--形状--直线,然后调整
使用文本框来输入内容才美观
一、实现文本框的功能
1、 选择Excel XP主菜单上的“视图/工具栏”命令,将Excel XP的绘图工具栏调出来(当然如果你以前就调出了此工具栏,这一步可不做);
2、 对Excel 的单无格作适当调整使我们能对它进行操作;
3、 单击绘图工具栏中和“矩形绘图工具”(如图1),在Excel工作表的任一位置画出一个矩形框(可能有人要问你不是要用文本框吗,怎么画起这东西来了,别急请继续往下看呀);
4、 用鼠标对准刚才画的“矩形框”点右键,选择“添加文字”命令,这时你再看这个矩形框是不是变成“文本框”了,然后在这个文本框中填入文字(一个即可如图1中的“课”字如图3);
5、 设置文本框的格式,用鼠标右键单击如图3所示的文本框,选择“设置自选图形格式”(如图4)命令;
6、 在弹出的“设置自选图形格式”对话框中选择“颜色与线条”选项卡,分别把“填充”和“线条”的颜色设为“无填充颜色”(如图5);
7、 重复上面的3-6步,分别把图1中其余几个字“程、时、间、星、期”统统都放到文本框里。
二、绘制斜线
这一步很简单,您只须点击绘图工具栏中的“直线工具”(如图6),即可在您想做的单元格内画出斜线,只是在画线的时候要注意不要画的太长也不要画的太短,这得需要您多加练习才能画出合适的斜线(如图7)。
三、合并成斜线表头
这一步也得需要您细心认真才能做好,具体可分以下几步:
1、 把刚才我们做的那些文本框按图1的格式排列起来;
2、 按住Shift键,同时选中这些对象(包括6个文本框和两条斜线)(如图8)(注:选择时要等到鼠标箭头变成如图9所示的形状时现点击才能选中你想选的对象);
3、 按住Shift键不要松开,在这个单元格中移动鼠标等到它变成如图9所示的形状时,单击右键,在弹出的快捷菜单中选择“组合/组合”命令(如图10),这样便把这些零散的对象合并成一个对象,再也不会被你弄得它们七零八落了;
Microsoft Word 2010:
表格——绘制斜线表头,按要求选择即可
⑧ 已知三个关系模式(学生表,课程表,成绩表)用SQL语句实现以下内容
CREATE TABLE 选课表
(学号 CHAR(8) REFERENCES 学生表(学号),
课程编号 CHAR(6) REFERENCES 课程表(课程编号),
成绩 smallint)
GO
INSERT INTO 学生表 VALUES('20100101','李丹','女','1993-6-6','管理系')
GO
SELECT 学号,姓名,所在系
FROM 学生表
GO
SELECT 学生表.学号,姓名
FROM 学生表 JOIN 选课表 ON 学生表.学号=选课表.学号
WHERE 课程编号='A01-02'
GO
SELECT *
FROM 学生表
WHERE 姓名 LIKE '[赵李张]%'
GO
SELECT 课程名称,COUNT(*) AS 选修总人数
INTO 修课统计
FROM 课程表 JOIN 选课表 ON 课程表.课程编号=选课表.课程编号
GROUP BY 课程名称
⑨ 三张表查询出选了两门课以上的学生,学生表课程表选课表sql怎么写
学生表:student(学号:sno、姓名:sname、性别:sgender、年龄:sage)
课程表:couse (课程编号:cno、课程名称:cname)
选课表:sc(学号:sno、课程编号:cno、成绩:marks)
SELECT s.sno ,
s.sname ,
c.cname
FROM student s
INNER JOIN sc t1 ON t1.sno = s.sno
INNER JOIN couse c ON sc.cno = c.cno
WHERE s.sno IN ( SELECT t.sno
FROM sc t
GROUP BY t.sno
HAVING COUNT(t.cno) = 2 )