- 可乐
-
请参考:
(1) 查询全体学生的学号与姓名。
SELECT Sno,Sname
FROM Student;
(2) 查询全体学生的姓名、学号、所在系。
SELECT Sname,Sno,Sdept
FROM Student;
(3) 查询全体学生的详细记录。
SELECT *
FROM Student;
(4) 查全体学生的姓名及其出生年份。
SELECT Sname, Sage
FROM Student;
(5) 查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。
SELECT Sname,Sage,LOWER(Sdept)
FROM Student;
(6) 使用列别名改变查询结果的列标题。
SELECT Sname NAME,"Year of Birth:" BIRTH,2000-Sage BIRTHDAY,LOWER(Sdept) DEPARTMENT
FROM Student;
(7) 查询选修了课程的学生学号。
SELECT DISTINCT Sno
FROM SC;
(8) 查询所有年龄在20岁以下的学生姓名及其年龄。
SELECT Sname,Sage
FROM Student
WHERE Sage<20;
(9) 查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。
SELECT Sname,Sdept,Sage
FROM Student
WHERE Sage BETWEEN 20 AND 23;
(10) 查询年龄不在20~23岁之间的学生姓名、系别和年龄。
SELECT Sname,Sdept,Sage
FROM Student
WHERE Sage NOT BETWEEN 20 AND 23;
(11) 查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。
SELECT Sname,Ssex
FROM Student
WHERE Sdept IN("IS","MA","CS");
(12) 查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。
SELECT Sname,Ssex
FROM Student
WHERE Sdept NOT IN ("IS","MA","CS" );
(13) 查询所有姓刘学生的姓名、学号和性别。
SELECT Sname,Sno,Ssex
FROM Student
WHERE Sname LIKE "刘%";
(14) 查询学号为20080711的学生的详细情况。(具体的学号值根据表中数据确定)
SELECT *
FROM Student
WHERE Sno="20060701";
(15) 查询姓“欧阳”且全名为三个汉字的学生姓名。
SELECT Sname
FROM Student
WHERE Sname LIKE "欧阳__";
(16) 查询名字中第2个字为“晨”字的学生的姓名和学号。
SELECT Sname,Sno
FROM Student
WHERE Sname LIKE "__晨%";
(17) 查询所有不姓刘的学生姓名。
SELECT Sname,Sno,Ssex
FROM Student
WHERE Sname NOT LIKE "刘%";
(18) 查询DB_Design课程的课程号和学分。
SELECT Cno,Ccredit
FROM Course
WHERE Cname LIKE "DB\_Design" ESCAPE"";
(19) 查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况。
SELECT *
FROM Course
WHERE Cname LIKE "DB\_%i_ _" ESCAPE"";
(20) 查询缺少成绩的学生的学号和相应的课程号。
SELECT Sno,Cno
FROM SC
WHERE Grade IS NULL;
(21) 查所有有成绩的学生学号和课程号。
SELECT Sno,Cno
FROM SC
WHERE Grade IS NOT NULL;
(22) 查询计算机系年龄在20岁以下的学生姓名。
SELECT Sname
FROM Student
WHERE Sdept="CS" AND Sage<20;
(23) 查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。(使用多个条件表达式)
SELECT Sname,Ssex
FROM Student
WHERE Sdept="IS" OR Sdept="MA" OR Sdept="CS";
(24) 查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。(使用多个条件表达式)
SELECT Sname,Sdept,Sage
FROM Student
WHERE Sage>=20 AND Sage<=23;
(25) 查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。
SELECT Sno,Grade
FROM SC
WHERE Cno="3"
ORDER BY Grade DESC;
(26) 查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。
SELECT *
FROM Student
ORDER BY Sdept,Sage DESC;
(27) 查询年龄最大的前三个学生的姓名。
SELECT Top 3 Sname
FROM Student
Order by Sage DESC;
(28) 查询学生总人数。
SELECT COUNT(*)
FROM Student;
(29) 查询选修了课程的学生人数。
SELECT COUNT(DISTINCT Sno)
FROM SC;
(30) 计算1号课程的学生平均成绩。
SELECT AVG(Grade)
FROM SC
WHERE Cno="1";
(31) 查询选修1号课程的学生最高分数。
SELECT MAX(Grade)
FROM SC
WHERE Cno="1";
(32) 求各个课程号及相应的选课人数。
SELECT Cno,COUNT(Sno)
FROM SC
GROUP BY Cno;
(33) 查询选修了3门以上课程的学生学号。
SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(*) >3;
(34) 查询有3门以上课程是90分以上的学生的学号及(90分以上的)课程数。
SELECT Sno, COUNT(*)
FROM SC
WHERE Grade>=90
GROUP BY Sno
HAVING COUNT(*)>=3;
(35) 查询学生20060711选修课程的总学分。
SELECT Sum(Ccredit)
FROM SC,Course
WHERE Sno="20060711" AND
SC.Cno=Course.Cno;
(36) 查询每个学生选修课程的总学分。
SELECT Sum(Ccredit)
FROM SC,Course
WHERE SC.Cno=Course.Cno
GROUP BY Sno;
(37) 查询每个学生及其选修课程的情况。
SELECT Student.*,SC.*
FROM Student,SC
WHERE Student.Sno=SC.Sno;
(38) 查询每一门课的间接先修课(即先修课的先修课)。
SELECT FIRST.Cno,SECOND.Cpno
FROM Course FIRST,Course SECOND
WHERE FIRST.Cpno=SECOND.Cno;
(39) 查询每个学生及其选修课程的情况包括没有选修课程的学生(用外连接)。
SELECT Student.*, SC.*
FROM Student join SC on Student.Sno = SC.Sno;
(40) 查询选修2号课程且成绩在90分以上的所有学生的学号、姓名。
SELECT Student.Sno, Student.Sname
FROM Student, SC
WHERE Student.Sno=SC.Sno AND SC.Cno="2" AND SC.Grade>90;
(41) 查询每个学生的学号、姓名、选修的课程名及成绩。
SELECT Student.Sno,Sname,Cname,Grade
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND
SC.Cno=Course.Cno;
(42) 查询与“刘晨”在同一个系学习的学生(分别用嵌套查询和连接查询)。
嵌套查询:
SELECT Sno,Sname,Sdept
FROM Student
WHERE Sdept=
(SELECT Sdept
FROM Student
WHERE Sname="刘晨");
连接查询:
FROM Student S1,Student S2
WHERE S1.Sdept=S2.Sdept AND S2.Sname="刘晨";
(43) 查询选修了课程名为“信息系统”的学生学号和姓名。
SELECT S1.Sno,S1.Sname,S1.Sdept
SELECT Sno,Sname
FROM Student
WHERE Sno IN
(SELECT Sno
FROM SC
WHERE Cno IN
(SELECT Cno
FROM Course
WHERE Cname="信息系统"));
(44) 查询其他系中比信息系任意一个(其中某一个)学生年龄小的学生姓名和年龄。
SELECT Sname,Sage
FROM Student
WHERE Sage<ANY
(SELECT Sage
FROM Student
WHERE Sdept="IS")
AND Sdept<>"IS";
(45) 查询其他系中比信息系所有学生年龄都小的学生姓名及年龄。分别用ALL谓词和集函数。
ALL谓词:
SELECT Sname,Sage
FROM Student
WHERE Sage<ALL(SELECT Sage
FROM Student
WHERE Sdept="IS")
AND Sdept<>"IS";
集函数:
SELECT Sname,Sage
FROM Student
WHERE Sage<
(SELECT MIN(Sage)
FROM Student
WHERE Sdept="IS")
AND Sdept <>"IS";
(46) 查询所有选修了1号课程的学生姓名。(分别用嵌套查询和连查询)
嵌套查询:
SELECT Sname
FROM Student
WHERE Sno IN
(SELECT Sno
FROM SC
WHERE Cno="1");
连接查询:
SELECT Student.Sname
FROM Student,SC
WHERE Student.Sno=SC.Sno AND C.Cno="1";
(47) 查询没有选修1号课程的学生姓名。
SELECT Sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno=Student.Sno AND
Cno="1");
(48) 查询选修了全部课程的学生姓名。
SELECT Sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM Course
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE SC.Sno=Student.Sno AND
Cno=Course.Cno));
(49) 查询至少选修了学生95002选修的全部课程的学生号码。
SELECT DISTINCT Sno
FROM SC SCX
WHERE NOT EXISTS
(SELECT *
FROM SC SCY
WHERE SCY.Sno="95002"AND
NOT EXISTS
(SELECT *
FROM SC SCZ
WHERE SCZ.Sno=SCX.Sno AND
SCZ.Cno=SCY.Cno))AND
Sno<>"20060702";
或:
SELECT Sno
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM SC SCX
WHERE SCX.Sno="95002"AND
NOT EXISTS
(SELECT *
FROM SC SCY
WHERE SCY.Sno=Student.Sno AND
SCY.Cno=SCX.Cno)) AND
Sno<>"95002";
(50) 查询计算机科学系的学生及年龄不大于19岁的学生的信息。
SELECT *
FROM Student
WHERE Sdept="CS"
UNION
SELECT *
FROM Student
WHERE Sage<=19;
(51) 查询选修了课程1或者选修了课程2的学生的信息。
SELECT Sno
FROM SC
WHERE Cno="1"
UNION
SELECT Sno
FROM SC
WHERE Cno="2";
(52) 查询计算机科学系中年龄不大于19岁的学生的信息。
SELECT *
FROM Student
WHERE Sdept="CS"
INTERSECT
SELECT *
FROM Student
WHERE Sage<=19;
(53) 查询既选修了课程1又选修了课程2的学生的信息。
SELECT Sno
FROM SC
WHERE Cno="1"
INTERSECT
SELECT Sno
FROM SC
WHERE Cno="2";
(54) 查询计算机科学系的学生与年龄不大于19岁的学生的差集。
SELECT Sname
FROM Student
EXCEPT
SELECT Tname
FROM Teacher;
- 我不懂运营
-
1. 查询全体学生的姓名、学号、性别和出生日期。
select 姓名,学号,性别,出生日期 from 学生信息表
2. 查询考试成绩在65以上(含)的学生学号和成绩。
select 学号,成绩 from 成绩表 where score>=65
3. 查询“07计算机1”和“07计算机2”班的学生的学号和姓名。
select 学号,姓名 from 学生信息表 where 班级 in("07计算机1","07计算机2")
4. 查询既不是共产党员也不是共青团员的学生的学号和姓名。
这个不知道表结构没发写啊,你这个学生太懒,中国就是你这样的大学生太多才掉价的。大学应该广进严出。
5. 查询姓名为“姚明” 的学生的学号、性别和出生日期。
select 学号,性别,出生日期 from 学生信息表 where 姓名="姚明"
6. 查询姓叶的学生的学号、姓名和班级。
select 学号,姓名,班级 from 学生信息表 where 姓名 like"叶%"
7.查询所有选修课程ID为“004”且成绩在90分(含)以下的学生的学号、课程ID和成绩。
select 学号,课程,成绩 from 成绩表 where 课程ID="004" and score>=90
8. 查询总分在75(含)到85(含)之间的学生的学号和成绩,并按成绩的降序排列,如果成绩相同则再按学号的升序排列。
select 学号,成绩 from 成绩表 where score between 75 and 85 order by score desc,学号 asc
9. 查询学号为‘000001"的学生的平均成绩、最高成绩和最低成绩。
select avg(score) as avgscore,max(score) as maxscore,min(score) as minsocre
from 成绩表 where 学号="000001"
10. 查询每门课程的课程ID及其相应的选课人数、每门课程的平均成绩、每门课程成绩的最大值和最小值。
select courseid,count(courseid) as 选课人数,avg(score) as 平均成绩,max(score) as maxscore,min(score) as minsocre
from 成绩表
group by courseid
11. 查询选修了3门以上课程的学生学号和选课门数和平均成绩。
select 学号,count(T1.courseid) as 选课门数,avg(score) as 平均成绩
from 选课表 t1 inner join 成绩表 t2
on t1.courseid=t2.courseid
group by 学号
having count(courseid) >3
12. 创建“成绩表1”,包含的属性为学号、课程ID、成绩,其中各属性的数据类型根据客观世界自己选择。
create table 成绩表1 (学号 int,课程ID int,成绩 float)
13. 向成绩表1添加“姓名”列,其数据类型为text, 30位字符长度。
alter table 成绩表1
add 姓名 varchar(30)
14. 删除成绩表1
drop table 成绩表1
15. 向课程信息表中插入一条数据:课程ID为007,课程名称为运筹学,学分为3,学时为64。
insert into 课程信息表 (课程ID,课程名称,学分,学时)
values("007","运筹学","3","64")
16. 将学号为000014且所选课程ID为004的记录的成绩改为88分。
update 成绩表 set score=88 where 学号="000014" AND 课程ID="004‘
17. 将所有选课程ID为004的学生的成绩加3分。
update 成绩表 score=score+3 where 课程ID="004‘
- 陶小凡
-
如果你需要的话 我可以给你一些例子参考 都差不多 自己写咯