sql数据库一些简单语句

sql数据库一些简单语句,第1张

给你几个最简单的案例吧

1、查询所有

select

*

from

表名

2、条件查询:

select

*

from

表名

where

字段=条件

3、插入数据更新表

insert

into

表(字段1、字段2、字段3...)

values(值1、值2、值3...)

4、更新原有数据:

update

set

(字段1=值1、字段2=值2...)

where

字段=条件

5、统计每个班数据库课程的平均成绩select 班级,avg(成绩)as 平均成绩 from 学生,选课 where 选课.课号in (select 课程.课号 from 课程 where 课程名='数据库') and学生.学号=选课.学号 group by 班级

假如本题数据库的课号只有一个,则不加上如上加粗的部分也可以得到正确结果,但是这个运算过程是有问题的,会导致运算的效率降低。本题应该将学生表与选课表关联,若数据库的课号多于一个,那么也会返回正确的结果

7、求每个同学目前获得的总学分select 姓名,sum(学分) as 总学分 from 学生,课程 where 学生.学号in (select 选课.学号from 选课where 课程.课号=选课,课号)group by 姓名

本题应该将三个表关联起来之后,直接group by即可,而且这道题的毛病与第5题一样,你可以实际运算一下,你的写法得出的结果,要比我下面给出的结果,每个人的总学分要多很多。

select 姓名, sum(学分) as 总学分 from 学生,课程 where 学生.学号 = 选课.学号 and 选课.课号 = 课程.课号 group by 学生.姓名

若是考虑到重名的情况,

select 学号,姓名, sum(学分) as 总学分 from 学生,课程 where 学生.学号 = 选课.学号 and 选课.课号 = 课程.课号 group by 学生.姓名,学生.学号

8、查询每个同学的平均分select 姓名,avg(成绩) as 平均分 from 学生,选课 where 学生.学号=选课.学号 group by 姓名

这道题也是,要是考虑到重名的话,最好将学号和姓名一起作为group by的条件,同第7题,你的逻辑是对的。

9、查询学生学号、姓名、课程名、成绩

这道题不需要使用子查询【即在where条件中,增加XXX in(select。。from。。。)】,通常情况下,子查询会降低查询效率。直接进行表关联即可。

select 学生.学号,学生.姓名,课程.课程名,选课.成绩 from 学生,课程,选课 where 学生.学号 = 选课.学号 and 选课.课号 = 课程.课号


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6933796.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-30
下一篇2023-03-30

发表评论

登录后才能评论

评论列表(0条)

    保存