oracle不会的语句,简单oracle语句练习

XUANKE表

CNO                                                    SNO                                                    GRADE

C01                                                    9512101                                                 100

C02                                                    9512101                                                  86

C06                                                    9512101                                                  NULL

C02                                                    9512102                                                   78

C04                                                    9521101                                                   66

C01                                                    9512102                                                   92

C02                                                    9521102                                                   75

C04                                                    9512102                                                   92

C02                                                    9521103                                                   68

C06                                                    9512103                                                   NULL

C01                                                    9512101                                                   90

C05                                                    9512101                                                   95

C05                                                    9521102                                                   85

XUESHENG表

SNO           SNAME                                             SSEX                              SAGE    SDEPT

9512101    李さん                                                男                                          19    文学

9512102    汪さん                                                男                                          20    文学

9512103    王さん                                                女                                          20    文学

9521101    張さん                                                男                                          20    芸術

9521102    中村さん                                            女                                          21    芸術

9521103    高村さん                                            男                                          20    芸術

9531101    鷹村さん                                            女                                          18    体育

9531102    村田さん                                            男                                          19    体育

KECHENG表

CNO                                                  CNAME                                                  HOURS

C01                                                   计算机文学                                               70

C02                                                   VB                                                              90

C03                                                   计算机网络                                               80

C04                                                   数据库基础                                              108

C05                                                   高等数学                                                  180

C06                                                   数据结构                                                   72

1.分别查询学生表和学生修课表中的全部数据。

2.查询成绩在70到80分之间的学生的学号、课程号和成绩。

3.查询C01号课程成绩最高的分数

4.查询学生都选修了哪些课程,要求列出课程号。

5.查询修了C02号课程的所有学生的平均成绩、最高成绩和最低成绩。

6.统计每个系的学生人数。

7.统计每门课程的修课人数和考试最高分。

8.统计每个学生的选课门数,并按选课门数的递增顺序显示结果。

9.统计选修课的学生总数和考试的平均成绩。

10.查询选课门数超过2门的学生的平均成绩和选课门数。

11.列出总成绩超过200分的学生,要求列出学号、总成绩。

12.查询选修了c02号课程的学生的姓名和所在系。

13.查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。

14.查询计算机系男生修了"数据库基础"的学生的姓名、性别、成绩。

15.查询哪些学生的年龄相同,要求列出年龄相同的学生的姓名和年龄。

16.查询哪些课程没有人选,要求列出课程号和课程名。

17.查询有考试成绩的所有学生的姓名、修课名称及考试成绩

18.分别查询信息系和计算机系的学生的姓名、性别、修课名称、修课成绩,

19.用子查询实现如下查询:

1.查询选修了C01号课程的学生的姓名和所在系。

2.查询数学系成绩80分以上的学生的学号、姓名。

3.查询计算机系学生所选的课程名.

20.删除修课成绩小于50分的学生的修课记录

21.将所有选修了"c01"课程的学生的成绩加10分。

1.SELECT *

FROM XUESHENG;

SELECT *

FROM XUANKE;

2.SELECT SNO,CNO,GRADE

FROM XUANKE

WHERE GRADE BETWEEN 70 AND 80;

3.SELECT MAX(GRADE)

FROM XUANKE

WHERE CNO='C01';

4.SELECT DISTINCT (K.CNO),X.SNO

FROM KECHENG K,XUANKE X

WHERE K.CNO=X.CNO;

5.SELECT MAX(GRADE) MAX,MIN(GRADE) MIN,AVG(GRADE) AVG

FROM XUANKE

WHERE CNO='C02';

6.SELECT SDEPT,COUNT(*) NUMBERS

FROM XUESHENG

GROUP BY SDEPT;

7.SELECT XUANKE.CNO,COUNT(*) NUMBERS,MAX(GRADE) CHENGJI

FROM XUANKE

GROUP BY XUANKE.CNO

ORDER BY CNO;

8.SELECT SNO,COUNT(CNO) NUMBERS

FROM XUANKE

GROUP BY SNO

ORDER BY (COUNT(CNO));

9.SELECT CNO,COUNT(DISTINCT SNO),AVG(GRADE)

FROM XUANKE

GROUP BY CNO;

10.SELECT SNO,AVG(GRADE),COUNT(CNO)

FROM XUANKE

GROUP BY SNO

HAVING COUNT(CNO)>2;

11.SELECT SNO,SUM(GRADE)

FROM XUANKE

GROUP BY SNO

HAVING SUM(GRADE)>200;

12.SELECT SNAME,SDEPT

FROM XUANKE,XUESHENG

WHERE XUANKE.SNO=XUESHENG.SNO

AND XUANKE.CNO='C02';

13.SELECT SNAME,CNO,GRADE

FROM XUANKE,XUESHENG

WHERE XUANKE.SNO=XUESHENG.SNO

AND XUANKE.GRADE>'80'

ORDER BY GRADE DESC;

14.SELECT SNAME,SSEX,GRADE

FROM XUESHENG,KECHENG,XUANKE

WHERE XUANKE.CNO=KECHENG.CNO

AND XUANKE.SNO=XUESHENG.SNO

AND KECHENG.CNAME='数据库基础';

15.SELECT T.SNAME,T.SAGE

FROM XUESHENG T

WHERE SAGE IN

(SELECT S.SAGE

FROM XUESHENG S

GROUP BY S.SAGE

HAVING COUNT(SAGE)>1);

或:

SELECT T.SNAME,T.SAGE

FROM XUESHENG T,XUESHENG S

WHERE T.SAGE=S.SAGE

GROUP BY T.SNAME,T.SAGE

HAVING COUNT(S.SAGE)>1;

16.SELECT CNO,CNAME

FROM KECHENG

WHERE NOT CNO IN

(SELECT CNO

FROM XUANKE);

17.SELECT SNAME,CNAME,GRADE,COUNT(GRADE)

FROM KECHENG,XUANKE,XUESHENG

WHERE XUANKE.SNO=XUESHENG.SNO

AND XUANKE.CNO=KECHENG.CNO

GROUP BY SNAME,CNAME,GRADE

HAVING NOT COUNT(GRADE)=0;

18.SELECT SNAME,SSEX,CNAME,GRADE

FROM XUESHENG,KECHENG,XUANKE

WHERE SDEPT IN('文学','芸術')

AND XUANKE.SNO=XUESHENG.SNO

AND XUANKE.CNO=KECHENG.CNO

GROUP BY SNAME,SSEX,CNAME,GRADE;

19.

1.SELECT SNAME,SDEPT

FROM XUESHENG

WHERE SNO IN

(SELECT SNO

FROM XUANKE

WHERE CNO='C01');

2.SELECT SNO,SNAME

FROM XUESHENG

WHERE SNO IN

(SELECT SNO

FROM XUANKE

WHERE GRADE>80);

3.SELECT CNAME

FROM KECHENG

WHERE CNO IN

(SELECT CNO

FROM XUANKE

WHERE SNO IN

(SELECT SNO

FROM XUESHENG

WHERE SDEPT='文学'));

20.DELETE FROM XUANKE

WHERE GRADE<60;

21.UPDATE XUANKE

SET GRADE=GRADE+10

WHERE CNO='C01';

小结:

sql语句的写法思路

1.找到所需字段所在的表

2.关联各表

3.去除重复

*4.在select语句中,只有group by子句中用到的字段不加聚集函数,其他字段必须用到聚集函数;having子句必须用到聚集函数,否则会报错。

以上です。