学生表作业
八、数据库单表练习题作业:#创建学生表
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 chinese,english,math from GRADE where class=1832;
80 90 77
90 90 90
60 80 88
2,查询1833班,语文成绩大于80小于90的所有成绩信息
select*from GRADE WHERE chinese > 80 and chinese < 90 and class=1833;
4 zhaoliu 17 1833 85 78 85
3,查询学生表中5到10行的数据
select*from GRADE where id BETWEEN 5 and 10;
5 xiaoqi 17 1832 60 80 88
6 xiaoba 18 1833 70 82 90
4,显示1832班英语成绩为98,数学成绩为77的姓名与学号
SELECT id,name from GRADE where class=1832 and english=98 or math=77;
1 zhangsan
5,查询出1832班成绩并且按语文成绩排序(降序)
SELECT*from GRADE WHERE class=1832 order by chinese desc;
2 lisi 18 1832 90 90 90
1zhangsan 18 1832 80 90 77
5 xiaoqi 17 1832 60 80 88
6,查询1833班与1832班,语文成绩与数学成绩都小于80的姓名。
select name from GRADE where class=1833 and class=1832 and chinese < 80 and math < 80;
null
7,查询出没有参加语文考试的学生姓名和班级名称。
select name,class from GRADE WHERE chinese is null;
null
8,求出班上语文成绩不及格的学生姓名
select name from GRADE where chinese < 60;
null
9,求出每个班的数学平均成绩
select avg(math),class from GRADE group by class;
85.0000 1832
91.6667 1833
10、求出每个班级语文成绩总分 --涉及到每个的时候都需要分组
select sum(chinese),class from GRADE group by 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;
zhangsan18
lisi 18
wangwu 19
zhaoliu 17
13、求出英语分数高于70且其它任何一科目大于60分的人和班级
select name,class from GRADE where chinese > 60 and math > 60 and english > 70;
zhangsan 1832
lisi 1832
wangwu 1833
zhaoliu 1833
xiaoba 1833
14、统计每个班的人数
select count(*) from grade;
6
15、求每个班数学成绩大于80的人数
select count(*),class from GRADE where math > 80 group by class;
2 1832
3 1833
16、求出每个班英语成绩最高的分数和班级名称 --每个班英语成绩最高
select max(english),class from GRADE group by class;
90 1832
98 1833
17、给GRADE表增加3个字段(数据类型及长度自定义,建议要合理
alter table GRADE add (height float(3.2),weight int(10),phone bigint(11));
页:
[1]