使用student数据库,查询学生基本信息表中的每个学生的所有数据

查询所有学生姓名和年龄: sql SELECT Sname, Sage FROM Student;
筛选计算机系学生: sql SELECT Sname, Sage FROM Student WHERE Sdept = '计算机';
查询成绩 >= 7 0 的学生: sql SELECT Sno, Cno, Grade FROM SC WHERE Grade >= 7 0 AND Grade < 2> JOIN 查询特定课程学生姓名和系别(C02 ): sql SELECT Student.Sname, Student.Sdept FROM Student JOIN SC ON SC.Sno = Student.Sno JOIN Course ON Course.Cno = SC.Cno WHERE SC.Cno = 'C02 ';
成绩 >= 8 0 的学生信息: sql 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 >= 8 0 ORDER BY SC.grade DESC;
选修至少一名学生的课程: sql SELECT Course.cno, Course.cname, SUM(Student.sno) FROM Student JOIN SC ON SC.Sno = Student.Sno JOIN Course ON Course.cno = SC.Cno GROUP BY Course.cno, Course.cname HAVING SUM(Student.sno) > 0;
子查询示例: ① 选修 C01 课程学生姓名和系别: sql 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 ') AS sub;
② 信息系成绩 >= 8 0 学生学号和姓名: sql 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 >= 8 0) AS sub;
③ 计算机系成绩最高的学生姓名: sql 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 SUM(SC.grade) DESC) AS sub;
删除成绩 < 5> 增加所有学生成绩 5 分: sql UPDATE SC SET grade += 5 ;
特定条件下增加成绩(计算机系 C01 课程): sql UPDATE SC SET grade += 1 0 FROM SC JOIN Student ON Student.sno = SC.sno WHERE Student.sno IN (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 = '计算机文化基础');
创建视图(学生姓名、课程名、成绩): sql CREATE VIEW View1 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;
创建视图(学生平均成绩): sql CREATE VIEW View2 AS SELECT Student.sno, AVG(SC.grade) AS avg_grade FROM SC JOIN Student ON Student.sno = SC.sno GROUP BY Student.sno;
创建索引(按姓名): sql CREATE INDEX idx_sname ON Student(sname);
实操提醒: 测试 SQL 语句前备份数据库。

如何用SQL语句查出同时选修了1号课和2号课的学号

记得上次在办公室,我坐那儿,手边放着笔记本,突然想到得查查某个数据库。
我打开电脑,双击那个ManagementStudio的图标,就是那个蓝色的东西,挺大的,在桌面上挺显眼。

屏幕亮了,弹出来那个窗口,我看着,嗯,得新建个查询。
那个绿色的按钮,上面写着“新建查询”,我点了一下。

然后那个白色的框子就出来了,我要输入SQL语句。
我想啊,得找选修了1 号课和2 号课的学生学号。
我就开始打字,敲敲打打,输入了那句:select no, name from SC where Cno='1 ' and no in (select no from SC where Cno='2 ')。
敲完,我看了看,好像对,没错。

接着,我点那个“执行”的按钮,就是那个红色的。
等了一会儿,那个进度条转完了。
然后那个框子下面,开始显示结果了。
一行行,学号和名字,正是我想要的。

嗯,你看,就这么简单。
那个办公室里,阳光照进来,我看着屏幕上的结果,突然想到,这数据库真是个好东西,能帮你想不到的忙。
等等,还有个事,我忘了,那个SQL语句里,我好像把1 号课的Cno打成了'1 ',而不是数字1 ,这样对吗?