数据库第四次作业

创建数据表grade:

CREATE TABLE grade(
    id INT NOT NULL,
    sex CHAR(1),
    firstname VARCHAR(20) NOT NULL,
    lastname VARCHAR(20) NOT NULL,
    english FLOAT,
    math FLOAT,
    chinese FLOAT
);

向数据表grade中插入几条数据:

INSERT INTO grade
VALUES (1,'m','John','Smith',88.0,85.0,82.0),
(2,'f','Adam','Smith',76.0,78.0,90.0),
(3,'m','Allen','William',88.0,92.0,95.0),
(4,'m','George','William',62.0,58.0,72.0),
(5,'f','Alice','Davis',89.0,94.0,98.0),
(6,'m','Kevin','Miller',77.0,88.0,99.0),
(7,'f','Helen','Davis',79.0,83.0,91.0),
(8,'m','Andrew','Johnson',81.0,86.0,88.0);  

1、查询所有字段
2、查询grade表中的id,firstname,lastname字段
3、查询grade表中id大于4的学生姓名
4、查询grade表中女生的记录
5、查询grade表中id值为2,4,6的学生记录
6、查询grade表中math成绩在85到94之间的记录
7、查询grade表中firstname以A开头的记录
8、查询grade表中firstname以A开头以e结尾的记录
9、查询grade表中firstname包含l的记录
10、查询grade表中firstname以A开头后面有4个字符的记录
11、查询grade表中english在80到90之间的记录
12、查询grade表中math大于90 或者 chinese大于90的记录
13、查询grade表中id不是1、3、5、7的记录
14、查询grade表中的性别有哪些
15、查询grade表中的lastname有哪几种
16、求出表中所有记录的条数
17、求出表中英语成绩的80的记录的条数
18、计算所有学生的数学成绩的和
19、计算女生的数学成绩的和
20、计算英语成绩平均分
21、计算男生的英语成绩平均分
22、求出数学成绩的最高分
23、求出男生中的数学最高分
24、按照math成绩的升序进行排列
25、按照sex字段的升序和chinese字段的降序排列
26、查询数据表grade中的记录,按照sex字段进行分组
27、将grade表按照lastname字段值分组,并计算每个分组中的学生数
28、对grade表按照lastname字段分组,查出math字段和小于100的组
29、查询grade表中的第3到第6条记录
30、查询grade表中男生平均成绩(三科)大于85的记录

1,查询所有字段:

mysql> select * from grade;
 

2,查询id,firstname,lastname字段:

mysql> select id,firstname,lastname from grade;
 

 

3,查询id大于4的学生姓名:


mysql> select firstname,lastname from grade
    -> where id >4;
 

4,查询女生记录:

mysql> select*from grade
    -> where sex='f';
 

5,查询,id为2,4,6的记录:

mysql> select*from grade
    -> where id in (2,4,6);
 

 

6,查询math成绩在85到94之间的记录:

mysql> select*from grade
    -> where math between 85 and 94;
 

7,查询firstname以A开头的记录:

mysql> select*from grade
    -> where firstname like 'A%';
 

8,查询以A开头e结尾的记录:

mysql> select*from grade
    -> where firstname like 'A%e';
 

9,firstname包含I的记录:

mysql> select*from grade
    -> where firstname like '%I%';
 

10,以A开头后有四个字符的记录:

mysql> select*from grade
    -> where firstname like 'A____';
 

11,english在80到90之间的记录 

mysql> select*from grade
    -> where english between 80 and 90;
 

12,math大于90chinese大于90:

mysql> select*from grade
    -> where math>90 or chinese>90;
 

13,查询id不是1,3,5,7的字段:

mysql> select*from grade
    -> where id not in (1,3,5,7);
 

 

14,查询性别有哪些:

mysql> select distinct sex from grade;

15,lastname有哪几种:

mysql> select lastname,count(1) from grade group by lastname;
 

16,求表所有记录条数:

mysql> select count(*) from grade;

 

17, 统计英语大于80的记录条数;


mysql> select count(1) from grade
    -> where english>80;
 

 

18,数学成绩和:

mysql> select sum(math) from grade;

 

19,女生数学成绩和:

mysql> select sum(math) from grade
    -> where sex='f';

 

20,英语成绩平均分:

mysql> select avg(english) from grade;

 

21,男生英语平均成绩:


mysql> select avg(english) from grade
    -> where sex='m';

 

22,数学成绩最高分:

mysql> select max(math) from grade;
 

 

23,男生数学成绩最高分:

mysql> select max(math) from grade
    -> where sex='m';
 

 

24,math升序排列:

mysql> select*from grade
    -> order by math;
 

 

25,按照sex升序和chinese降序:

mysql> select*from grade
    -> order by sex desc,chinese asc;
 

 

26,按照sex字段分组:

mysql> select sex,count(1) from grade group by sex;
 

 

27,按照lastname字段分组:

mysql> select lastname,count(1) from grade group by lastname;

28,按照lastname分组,查出math和100的组: 

 mysql> select lastname,sum(math) from grade group by lastname
    -> having sum(math)<100;

 

29,查询第三到第六条记录:

mysql> select*from grade limit 2,4; 

 

30,男生平均成绩大于85:

mysql> select* ,(english+math+chinese)/3 as pj from grade
    -> where sex='m'
    -> having pj>85;

 

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值