0
点赞
收藏
分享

微信扫一扫

MySQL的基本查询练习

婉殇成长笔记 2022-04-29 阅读 61
1.单表练习题
create table student(
	id int,   -- id编号
	name varchar(20), -- 姓名
	chinese int,  -- 语文
	english int, -- 英语
	math int -- 数学
); 
insert into student(id,name,chinese,english,math) values(1,'行哥',89,78,90);
insert into student(id,name,chinese,english,math) values(2,'潘金莲',67,53,95);
insert into student(id,name,chinese,english,math) values(3,'凤姐',87,78,77);
insert into student(id,name,chinese,english,math) values(4,'旺财',88,98,92);
insert into student(id,name,chinese,english,math) values(5,'白小黑',82,84,67);
insert into student(id,name,chinese,english,math) values(6,'白小黄',55,85,45);
insert into student(id,name,chinese,english,math) values(7,'范蹦蹦',75,65,30);
1.查询表中所有学生的信息。
 
2 查询表中所有学生的姓名和英语成绩。
 
3 过滤表中重复数据。(去重的关键字 distinct)
 
4.统计每个学生的总分
 
5.在所有学生总分数上加10分特长分。

6.使用别名表示学生分数。
 
7.查询姓名为行哥的学生成绩

8.查询英语成绩大于90分的同学
 
9.查询总分大于200分的所有同学
 
10.查询英语分数在 80-90之间的同学。
 
11.查询数学分数为89,90,91的同学。
 
12.查询所有姓白的学生英语成绩。
 
13.查询数学分>80并且语文分>80的同学
 
14.查询英语>80或者总分>200的同学
 
15.对数学成绩升序排序
 
16.对总分降序排序,然后再按数学从高到低的顺序输出
 
17.对姓白的学生成绩排序输出(排序规则自己定义)

18.查询数学成绩大于等于平均分的所有学生信息

19.查询出英语成绩最高分的学生信息

20.模糊查询出学生姓名中第二个字是金的学生信息

21.查询出英语成绩平均分是多少

22.查询出数学总分是多少

23.查询学生表中有多少条记录

第一步:创建数据库

dos命令下
mysql>  create database homework_0428;
Query OK, 1 row affected (0.00 sec)

第二部:创建表

USE homework_0428;
-- 使用 homework_0428数据库

create table student(
	id int,   -- id编号
	name varchar(20), -- 姓名
	chinese int,  -- 语文
	english int, -- 英语
	math int -- 数学
);
-- 创建学生表

第三步:表中加入数据

INSERT INTO student 
VALUES
(1,'行哥',89,78,90),
(2,'潘金莲',67,53,95),
(3,'凤姐',87,78,77),
(4,'旺财',88,98,92),
(5,'白小黑',82,84,67),
(6,'白小黄',55,85,45),
(7,'范蹦蹦',75,65,30);
-- 表中加入数据

SELECT * FROM student;
-- 查看表

第四步:查询信息

1.需求:查询表中所有学生的信息。

SELECT 
s.`id` '编号',
s.`name` '姓名',
s.`chinese` '语文',
s.`english` '英语',
s.`math` '数学'
FROM
student s;

 2.需求:查询表中所有学生的姓名和英语成绩。

SELECT 
s.`name` '姓名',
s.`english` '英语'
FROM
student s;

 3.需求:过滤表中重复数据。(去重的关键字 distinct)

SELECT
  DISTINCT english
FROM student;

4. 需求:统计每个学生的总分

SELECT
s.`id` '编号',
s.`name` '姓名',
s.`chinese` '语文',
s.`english` '英语',
s.`math` '数学',
(chinese+english+math) '总分'
FROM
student s;

 5.需求:在所有学生总分数上加10分特长分。

SELECT
(chinese+english+math+10) '总分'
FROM
student s;

 6.需求:使用别名表示学生分数。

SELECT 
s.`id` '编号',-- 名字可更改
s.`name` '姓名',
s.`chinese` '语文成绩',
s.`english` '英语成绩',
s.`math` '数学成绩'
FROM
student s;

 7.需求:查询姓名为行哥的学生成绩

SELECT
    *
FROM
    student
WHERE 
    NAME  
    LIKE '%哥%' ;

8. 需求:查询英语成绩大于90分的同学

  SELECT
  *
  FROM
  student
  WHERE
  english>90  

 9.需求:查询总分大于200分的所有同学

  SELECT
  *
  FROM
  student
  WHERE
  (chinese+english+math)>200 

10.需求:查询英语分数在 80-90之间的同学。

  SELECT
  id '编号',
  NAME '姓名',
  english '英语成绩高于80,小于90'
  FROM
  student
  WHERE
  english
  BETWEEN 80 AND 90;


 

11. 需求:查询数学分数为89,90,91的同学

SELECT 
  id '编号',
  NAME '姓名',
  math '数学成绩' 
FROM
  student 
WHERE math IN (89, 90, 91)

12. 查询所有姓白的学生英语成绩。

SELECT 
    *
FROM 
     student
WHERE 
     NAME  LIKE '白__' ;

13. 需求:查询数学分>80并且语文分>80的同学

SELECT
    *
FROM
     student
WHERE 
    math > 80 
    AND
    chinese > 80

14.需求: 查询英语>80或者总分>200的同学

SELECT
*
FROM
student
WHERE
english > 80 AND (english+math+chinese) > 200    

15. 需求:对数学成绩升序排序

SELECT 
    *
FROM 
    student
ORDER BY 
math  ASC; 

 16.需求:对总分降序排序,然后再按数学从高到低的顺序输出

SELECT 
id '编号',
NAME '姓名',
chinese '语文成绩',
english '英语成绩',
math '数学成绩',
(math+english+chinese) '总分'
FROM 
    student
ORDER BY 
(english+math+chinese) DESC ,math DESC ;  

17. 需求:对姓白的学生成绩排序输出(排序规则自己定义)

SELECT
*
FROM
student
WHERE    
NAME  LIKE '白__' 
ORDER BY 
english  DESC;
-- 英语倒序排列

18. 需求:查询数学成绩大于等于平均分的所有学生信息

SELECT
*
FROM
student
WHERE
math>(SELECT AVG(math) FROM student)

19.需求 :查询出英语成绩最高分的学生信息

SELECT
     *
FROM
     student
WHERE 
     english = (SELECT   MAX(english) FROM student) ;

20.需求:模糊查询出学生姓名中第二个字是金的学生信息

SELECT 
      *
 FROM
      student
 WHERE
      NAME LIKE  '%_金%';

 

21.需求: 查询出英语成绩平均分是多少

SELECT
AVG(english) '英语平均分'
FROM
student

22.需求: 查询出数学总分是多少

SELECT 
	SUM(math) '数学成绩总和'
FROM student ;

23.需求: 查询学生表中有多少条记录

SELECT COUNT(id) '总记录数' 
FROM student ;

 

举报

相关推荐

0 条评论