课程表的字段类型
❶ 学生—课程"数据库中包含学生表,课程表,学生选课表3个表,分别是:
您好,您这样:
--1
select Sname,Sage from Student where Sage<(select Sage from Student where Sno='某一学生') and Sdept='数学系'
--2
select Sname from Student where Sno in (select Sno from SC)
--3
select Sname from Student where Sno in (select Sno from SC group by Sno having count(*)=(select count(*) from Course ))
❷ 在数据库中存储学生一周的课程表,数据库如何设计
您好,可以这样设计
数据库需要设计一天的8节课 8个字段 分别存 8节课 主键设置成星期 然后还有班级字段,班级字段可以做关联字段;
举例
----------------------
星期(主键) 1节 2节 3节 4节 5节 6节 7节 8节 班级
星期三 物理 数学 体育 语文 英语 计算机 物理 生物 一班
星期四 物理 数学 体育 语文 英语 计算机 物理 生物 三班
根据前台选择后台对应查询,比如选择一班,会根据今天的星期做判断主键值,然后在根据查询条件班级。就会把一般今天的所有8节课程列出来。
❸ 大学数据库题 ,建立一个课程表C,有课程号Cno,课程名称Cn,学分xf,课时ks,课程类型
create table t_C (cno int primary key auto increment,
cn varchar(20),
xf int(11),
ks int(11),
kl varchar(30));
cno int primary key auto是设置cno为主键并且自增
❹ 给定数据库中,包括“学生表”,“课程表”,“选课表”等三个数据表,表结构如下: 学生表:学号(C,6),姓
用LINQ(语言集成查询)完成你说的这些任务很方便,具体的细节问题还得你自己做。下面举出两个例子供你参考,这两个例子用数组代替数据库,对数据库也可用同样的方法。
例1,用bool值作关键字区分两组的结果,注意group子句中的表达式产生的结果。
public class Student
{
public string Name { get; set; }
public int ID { get; set; }
public List<int> Scores;
}
public static List<Student> GetStudents()
{
//实例化数据源,注意各成员内部成绩序列的初始化
List<Student> students = new List<Student>
{
new Student {Name="张勇", ID=1, Scores= new List<int> {97, 72, 81, 60}},
new Student {Name="王磊", ID=2 Scores= new List<int> {75, 84, 91, 39}},
new Student {Name="孙敏", ID=3, Scores= new List<int> {88, 94, 65, 85}},
new Student {Name="刘晓", ID=4, Scores= new List<int> {97, 89, 85, 82}},
new Student {Name="扬帆", ID=5, Scores= new List<int> {35, 72, 91, 70}}
};
return students;
}
static void Main()
{
List<Student> students = GetStudents();
//用true或false分组,查询变量是IEnumerable<IGrouping<bool, Student>>类型
var booleanGroupQuery = from student in students
group student by student.Scores.Average() >= 80;
foreach (var studentGroup in booleanGroupQuery)
{
Console.WriteLine(studentGroup.Key == true ? "平均分高于80" : "平均分低于80");
foreach (var student in studentGroup)
Console.WriteLine("{0,4} {1} {2}", student.ID, student.Name, student.Scores.Average());
}
}
输出:
平均分低于80
1 张勇 77.5
2 王磊 72.25
5 扬帆 67
平均分高于80
3 孙敏 83
4 刘晓 88.25
例2,查询人名先排序再分组,可以用姓作为分组关键字。
string[] Name = {"张明","刘新","王宏","刘洋","张媛","张宝","王金贵","刘东","王凯","刘芳"};
var sortedGroups = from name in Name
orderby name
group name by name[0] into newGroup
select newGroup;
foreach (var nameGroup in sortedGroups)
{
Console.WriteLine(nameGroup.Key);
foreach (var name in nameGroup)
Console.WriteLine(" "+name);
}
输出:
刘
刘东 刘芳 刘新 刘洋
王
王宏 王金贵 王凯
张
张宝 张明 张媛
输出结果按姓分类,组内排序。
《C#编程指南》(清华大学出版社2011年1月出版,可网购)第5章和第17章专门讨论LINQ查询更新数据库。
❺ 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. 不会
❻ 1.在学生数据库中有三张数据表,即学生表、课程表和选课表,三张表的表数据如下,写出创建学生表、课程
create table student(S_no char(9), S_name char(20), S_sex char(2), S_age int, S_department char(20))
create table course (C_no char(10), C_name char(20), C_teacher char(20) )
create table choice(S_no char(9), C_no char(10), S_score int)
insert into student(S_no, S_name, S_sex, S_age, S_department)
values('001', '李志强', '男', 20, '计算机系' )
insert into student(S_no, S_name, S_sex, S_age, S_department)
values('002', '张 亮', '男', 21 '建筑工程系' )
insert into student(S_no, S_name, S_sex, S_age, S_department)
values('003', '李 平', '女', 19 '计算机系' )
insert into course(C_no, C_name, C_teacher )
values('C001', 'C语言', '王雅新' )
insert into course(C_no, C_name, C_teacher )
values('C002', '数据结构', '和海莲' )
insert into course(C_no, C_name, C_teacher )
values('C003', 'SQL Server2000', '陈 红' )
insert into choice(S_no, C_no, S_score)
values('001', 'C001', 83)
insert into choice(S_no, C_no, S_score)
values('001', 'C002', 80 )
insert into choice(S_no, C_no, S_score)
values('002', 'C001', 75)
insert into choice(S_no, C_no, S_score)
values('002', 'C004', 85)
insert into choice(S_no, C_no, S_score)
values('003', 'C002', 88)
insert into choice(S_no, C_no, S_score)
values('003', 'C003', 86)
❼ 数据库中包含学生表、课程表、学生选课表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
课程
❽ 数据库中建立学生表课程表选课表及其联系
以 access 为例,建立数据表如下:
1、学生表
❾ 假设当前有课程表,课程表的结构包括(课程名,学时,学分),删除课程表中的学时字段
在命令窗口中输入
alter table 课程 drop column 学时
如果提示找不到表,可以先输入set defa to 表所在路径
如set defa to d:\练习1
或者用菜单,选择"文件|打开",文件类型选"表",把课程表打开,然后选择菜单"显示|表设计器",选中"学时",然后单击"删除"按钮.
❿ 在数据库teacher_class下,写出创建教师表、课程表、授课表的SQL语句,各表结构如下所示:
(1)alter table tc add ‘修课类别’ nchar(1);
(2)alter table tc modify ‘修课类别’ nchar(2);
(3)alter table tc drop column ‘修课类别’;