Oracle学习笔记——基础一起学 5

文章讲述了如何在SQL中进行成绩表的数据插入、提交事务以及使用groupby、sum和avg函数进行成绩统计,包括求每个学生的总分、科目平均分,以及筛选出成绩高于平均的学生。还提到了SQL操作符的优先级和一些基本的SQL函数

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--注意如果第二天登录查询成绩表,发现没有数据,应该是插入后没有commit的原因,重新commit就好了。

SQL> insert into 成绩 values(1,'语文',60);

已创建 1 行。

SQL> insert into 成绩 values(1,'数学',60);

已创建 1 行。

SQL> insert into 成绩 values(1,'英语',60);

已创建 1 行。

SQL> insert into 成绩 values(2,'语文',70);

已创建 1 行。

SQL> insert into 成绩 values(2,'数学',70);

已创建 1 行。

SQL> insert into 成绩 values(3,'语文',80);

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from 成绩;

       SNO KM              SCORE

---------- ---------- ----------

         1 语文               60

         1 数学               60

         1 英语               60

         2 语文               70

         2 数学               70

         3 语文               80

已选择6行。

--现在就ok了,现在我要查出每个学生,所有成绩的总和。(使用group by、sum函数)

SQL> select sno,sum(score) from 成绩 group by sno;

       SNO SUM(SCORE)

---------- ----------

         1        180

         2        140

         3         80

--现在要求每一个科目的平均成绩。

SQL> select km,avg(score) from 成绩 group by km;

KM         AVG(SCORE)

---------- ----------

数学               65

语文               70

英语               60

--求成绩大于平均成绩的学生的学号和成绩(使用having加上条件即可,平均成绩为60)

SQL> select sno,avg(score) from 成绩 group by sno having(avg(score)>60);

       SNO AVG(SCORE)

---------- ----------

         2         70

         3         80

--要查出平均成绩大于所有学生平均成绩的学号和平均成绩(改变having后面的条件)

SQL> select sno,avg(score) from 成绩 group by sno having(avg(score)>(select avg(score) from 成绩));

       SNO AVG(SCORE)

---------- ----------

         2         70

         3         80

--看的迷糊的可以拆分开来看。

SQL> select avg(score) from 成绩;

AVG(SCORE)

----------

66.6666667

SQL> select sno,avg(score) from 成绩 group by sno;

       SNO AVG(SCORE)

---------- ----------

         1         60

         2         70

         3         80

--查平均成绩大于60的学生的学号和平均成绩并按照学号的降序排列

SQL> select sno,avg(score) from 成绩 group by sno having(avg(score)>60) order by sno desc;

       SNO AVG(SCORE)

---------- ----------

         3         80

         2         70

--连接符||

SQL> select '学号是:'||sno||'姓名是:'||sname from student2;

'学号是:'||SNO||'姓名是:'||SNAME

----------------------------------------------------------------------------

学号是:5姓名是:AAAA

学号是:1姓名是:一行琉璃

学号是:2姓名是:一行琉璃璃酱

学号是:3姓名是:AA

学号是:4姓名是:

Sql操作符的优先级从高到低的顺序是:

算术操作符--最高优先级

连接操作符

比较操作符

Not逻辑操作符

And逻辑操作符

Or逻辑操作符--最低优先级

--sql函数

单行函数、分组函数、分析函数

如果能帮到你请感谢我的老婆“一行琉璃”

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值