sql练习题

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.查询表中所有学生的信息。
SELECT * FROM student;
 
2 查询表中所有学生的姓名和英语成绩。
SELECT
NAME,english
FROM
student;
 
3 过滤表中重复数据。(去重的关键字 DISTINCT)
SELECT DISTINCT id,NAME,chinese,english,math
FROM student;
 
4.统计每个学生的总分
SELECT
NAME 姓名,
(chinese +
english +
math ) AS 总成绩
FROM student;

 
5.在所有学生总分数上加10分特长分。
SELECT
NAME 姓名,
(chinese +
english +
math +10 ) AS 总成绩包含特长分
FROM student;
 
6.使用别名表示学生分数。
SELECT
NAME 姓名,
chinese 语文,
english 英语,
math 数学
FROM student;
 
7.查询姓名为行哥的学生成绩
SELECT
NAME 姓名,
chinese 语文,
english 英语,
math 数学
FROM student
WHERE NAME = '行哥';
 
8.查询英语成绩大于90分的同学
SELECT 
  NAME 姓名,
  english 英语 
FROM
  student 
WHERE english > 90 ;
 
9.查询总分大于200分的所有同学
SELECT
NAME '姓名',
(chinese +
english +
math ) AS  '总成绩'
FROM student
WHERE (chinese +
english +
math )  > 200;
 
10.查询英语分数在 80-90之间的同学。

 SELECT 
  NAME 姓名,
  english 英语 
FROM
  student 
WHERE english >= 80 AND english <=90 ;

11.查询数学分数为89,90,91的同学。
 SELECT 
  NAME 姓名,
  math 数学
FROM
  student 
WHERE math=89 OR math=90 OR math=91 ;
 
12.查询所有姓白的学生英语成绩。
 SELECT 
  english,
  NAME
FROM
  student 
WHERE NAME LIKE '白%' ;
 
13.查询数学分>80并且语文分>80的同学
SELECT 
  NAME 姓名,
  math 数学,
  chinese 语文
FROM
  student 
WHERE math>80 AND chinese>80 ;
 
14.查询英语>80或者总分>200的同学
SELECT 
  NAME 姓名,
  math 数学,
  chinese 语文,
  english 英语,
  (math+chinese+english) AS 总分
FROM
  student 
WHERE english>80 AND (math+chinese+english)>200 ;
 
15.对数学成绩升序排序
SELECT 
  NAME 姓名,
  math 数学,
  chinese 语文,
  english 英语,
  (math+chinese+english) AS 总分
FROM
  student ORDER
  BY math DESC;
 
16.对总分降序排序,然后再按数学从高到低的顺序输出  (预习排序查询)
SELECT 
  NAME 姓名,
  math 数学,
  chinese 语文,
  english 英语,
  (math+chinese+english) AS 总分
FROM
  student ORDER
  BY (math+chinese+english)  DESC, math DESC;
 
17.对姓白的学生成绩排序输出(排序规则自己定义)  (模糊查询+排序查询)
SELECT 
  NAME 姓名,
  math 数学,
  chinese 语文,
  english 英语,
  (math+chinese+english) AS 总分
FROM
  student 
  WHERE NAME LIKE '白%' 
  ORDER
  BY (math+chinese+english)  DESC, math DESC;


18.模糊查询出学生姓名中第二个字是金的学生信息
SELECT 
  NAME 姓名,
  math 数学,
  chinese 语文,
  english 英语,
  (math+chinese+english) AS 总分
FROM
  student 
  WHERE NAME LIKE '_金%' ;
  
19.查询出英语成绩平均分是多少 (聚合函数的平均avg函数)
SELECT 

  AVG(english) 英语平均分
  FROM 
  student;
  

20.查询出数学总分是多少
SELECT 

  SUM(math) 数学总分
  FROM 
  student;

21.查询学生表中有多少条记录(聚合函数的count(字段名称))

SELECT 
  COUNT(math) 
FROM
  student ;

SELECT * FROM student;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值