宝安22班-秦绍祥 发表于 2022-3-14 09:10:03

宝安22期—秦绍祥-mysql单表查询作业

数据库单表练习题作业:

#创建学生表
CREATE TABLE GRADE(
ID INT PRIMARY KEY AUTO_INCREMENT COMMENT'学号',
NAME VARCHAR(20) COMMENT'姓名',
AGE INT COMMENT'年龄',
CLASS INT COMMENT'班级',
CHINESE INT COMMENT'语文分数',
ENGLISH INT COMMENT'英语分数',
MATH INT COMMENT'数学分数'
)ENGINE=INNODB DEFAULT CHARSET=UTF8 COMMENT'学生表';

#插入表数据
insert into GRADE values
(1,'zhangsan',18,1832,80,90,77),
(2,'lisi',18,1832,90,90,90),
(3,'wangwu',19,1833,99,98,100),
(4,'zhaoliu',17,1833,85,78,85),
(5,'xiaoqi',17,1832,60,80,88),
(6,'xiaoba',18,1833,70,82,90);

1,查询1832班的成绩信息
select english,chinese,math from where class=1832;

english        chinese        math
90          80              77
90          90              90
80          60              88

2,查询1833班,语文成绩大于80小于90的所有成绩信息
select * from GRADE where chinese > 80 and chinese < 90;

ID        NAME        AGE        CLASS        CHINESE        ENGLISH        MATH
4        zhaoliu        17        1833        85        78        85

3,查询学生表中5到10行的数据
select * from GRADE where ID limit 4,6;

ID        NAME        AGE        CLASS        CHINESE        ENGLISH        MATH
5        xiaoqi        17        1832        60        80        88
6        xiaoba        18        1833        70        82        90

4,显示1832班英语成绩为98,数学成绩为77的姓名与学号,
select * from GRADE where class=1832 and english=98 and math=77;

无此人
                                               

5,查询出1832班成绩并且按语文成绩排序(降序)
select * from GRADE where class=1832 order by chinese desc;

ID        NAME        AGE        CLASS        CHINESE        ENGLISH        MATH
2        lisi        18        1832        90        90        90
1        zhangsan        18        1832        79        90        77
5        xiaoqi        17        1832        60        80        88

6,查询1833班与1832班,语文成绩与数学成绩都小于80的姓名。
select * from GRADE where (class=1833 or class=1832) and chinese < 80 and math < 80;

查无此人

7,查询出没有参加语文考试的学生姓名和班级名称。
select name,class from GRADE where chinese is null;

查无此人

8,求出班上语文成绩不及格的学生姓名
select name from GRADE WHERE chinese < 60;

查无此人

9,求出每个班的数学平均成绩
select avg(math),class from GRADE group by class;

avg(math)        class
85.0000        1832
91.6667        1833

10、求出每个班级语文成绩总分 --涉及到每个的时候都需要分组
select sum(chinese),class from GRADE group by class;

sum(chinese)        class
230                1832
254                1833

11、将语文成绩不及格的学生语文成绩改为60分
update GRADE set chinese=60 where chinese < 60;

12、三科分数都大于70分的人名和年纪
select name,age from GRADE where chinese > 70 and english > 70 and math > 70;

name          age
zhangsan        18
lisi          18
wangwu          19
zhaoliu          17

13、求出英语分数高于70且其它任何一科目大于60分的人和班级
select name,class from GRADE where english > 70 and (chinese > 60 or math > 60);

name          class
zhangsan        1832
lisi          1832
wangwu          1833
zhaoliu          1833
xiaoqi          1832
xiaoba          1833

14、统计每个班的人数
select count(ID),class from GRADE GROUP BY class;

count(ID)        class
3                1832
3                1833

15、求每个班数学成绩大于80的人数

SELECT count(*),class from GRADEwhere math > 80 group by class;

count(*)        class
2                 1832
3                 1833

16.求出每个班英语成绩最高的分数和班级名称 --每个班英语成绩最高
select max(english),class from GRADE group by class;

max(english)        class
90                1832
98                1833

17、给GRADE表增加3个字段(数据类型及长度自定义,建议要合理,
alter table GRADE add (physical int(3),chemical int(3),biological int(3));


页: [1]
查看完整版本: 宝安22期—秦绍祥-mysql单表查询作业