数据库中的查询语句示例—select单表查询

宝子们!我们首先要了解SELECT语句的一般格式:

          SELECT[ALL|DISTINCT]<目标表达式>[,<目标表达式>]...      //DISTINCT:消除重复值

           FROM<表名或视图名>[,<表名或视图名>...](<SELECT语句>)[AS]<别名>

           WHERE<条件表达式>

           [GROUP BY<列名1>[HAVING <条件表达式>]]

           [ORDER BY<列名2>[ASC|DESC]];     //ASC:升序、DESC:降序

           [ LIMIT [OFFSET],记录数]

具体怎么用?Look here!

一、在stu数据库中完成下列操作

1.查询student表中的学生学号,姓名,家庭住址三个字段信息

SELECT sid,sname,addr
FROM student;


2.查询输出score表中的所有选修过课程的学生学号(不得重复)

SELECT DISTINCT sid 
FROM score

3.查询输出student表中姓名,年龄(年龄=系统年份-出生年份)

SELECT sname,2022-birth
FROM student;


SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birth, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d')
< DATE_FORMAT(birth, '00-%m-%d')) AS age FROM student;

4.显示学号、姓名、填表日期,其中日期为当前日期

SELECT sid,sname,DATE_FORMAT(NOW(),'%Y-%m-%d')
FROM student;

5.查询01号课程成绩在80-90分之间的成绩信息

SELECT result
WHERE cid=01 AND result BETWEEN 80 AND 90
FROM score;

6.日期比较:查询‘2000-9-01’以后出生的学生信息

SELECT * FROM student
WHERE DATE_FORMAT(birth,'%Y-%m-%d')>'2000-9-01';

7.查询“信息工程系”和“化学工程系”的学生的基本信息

SELECT * FROM student
WHERE department='信息工程系'OR department='化学工程系';

8.查询“信息工程系”和“化学工程系”的女生的基本信息

SELECT * FROM student
WHERE sex='女' AND department='信息工程系' OR sex='女' AND department='化学工程系';

9.查询所有学生的总分,平均分,最高分和最低分
SELECT result
WHERE 
FROM student;

二、在stu数据库中完成下列操作

1.查询student表中的学生学号,姓名,家庭住址三个字段信息

SELECT sid,sname,addr
FROM student;

2.查询输出score表中的所有选修过课程的学生学号(不得重复)

SELECT DISTINCT sid 
FROM score

3.查询输出student表中姓名,年龄(年龄=系统年份-出生年份)

SELECT sname,TIMESTAMPDIFF(YEAR,birth, CURDATE())年龄
FROM student

4.显示学号、姓名、填表日期,其中日期为当前日期

SELECT sid,sname,DATE_FORMAT(NOW(),'%Y-%m-%d')
FROM student;

5.查询01号课程成绩在80-90分之间的成绩信息

SELECT result
WHERE cid=01 AND result BETWEEN 80 AND 90
FROM score;

6.日期比较:查询‘2000-9-01’以后出生的学生信息

SELECT * FROM student
WHERE DATE_FORMAT(birth,'%Y-%m-%d')>'2000-9-01';

7.查询“信息工程系”和“化学工程系”的学生的基本信息

SELECT * FROM student
WHERE department='信息工程系'OR department='化学工程系';

8.查询“信息工程系”和“化学工程系”的女生的基本信息

SELECT * FROM student
WHERE sex='女' AND department='信息工程系' OR sex='女' AND department='化学工程系';

9.查询所有学生的总分,平均分,最高分和最低分
SELECT result
WHERE 
FROM student;

10.查询“02”科目的总分,平均分,最高分和最低分

SELECT SUM(result),AVG(result),MAX(result),MIN(result)
FROM score
WHERE cno=02;

11.查询学号为“0101”的总分,平均分,最高分和最低分

SELECT SUM(result),AVG(result),MAX(result),MIN(result)
FROM score
WHERE sid=0101;

12.查询输出每个学生的学号、姓名、所在系,按所在系升序排列

SELECT sid,sname,department
FROM student
ORDER BY  department ASC;

13.查询所有学生的姓名和年龄,以列名 “姓名、年龄”输出,并按照年龄从小到大输出

SELECT sname,TIMESTAMPDIFF(YEAR,birth, CURDATE())AS 年龄
FROM student
ORDER BY TIMESTAMPDIFF(YEAR,birth, CURDATE()) ASC;

14.查询所有学生的学号,姓名和性别,并按性别升序,姓名降序排序。

SELECT sid,sname,sex
FROM student
ORDER BY sex ASC,sname DESC;

15.查询出score表中选修“03”课程的学号和成绩,并按照成绩的降序排列

SELECT sid,result
FROM score
WHERE cno=03
ORDER BY result DESC;

16.查询student表中的学生人数

SELECT COUNT(*)
FROM student;

17.按性别统计男女生人数

SELECT sex,COUNT(sex)
FROM student
GROUP BY sex;

18查询统计系部人数,显示各系人数在3人以上的系部名称和人数

SELECT department,COUNT(department)
FROM student
GROUP BY department HAVING COUNT(department)>3;

19.统计每门课的总分,平均分,最高分和最低分

SELECT cno,SUM(result)总分,AVG(result)平均分,MAX(result)最高分,MIN(result)最低分
FROM score
GROUP BY cno;

20.统计"01"、"02"、"03"三科成绩的平均分、最高分、最低分

SELECT cno,AVG(result)平均分,MAX(result)最高分,MIN(result)最低分
FROM score
GROUP BY cno HAVING cno=01 OR cno=02 OR cno=03;

21.查询课程平均分在80分以上的课程的总分,平均分

SELECT cno,AVG(result)平均分
FROM score
GROUP BY cno HAVING AVG(result)>80;

22.统计每个学生的总分,平均分,最高分和最低分

SELECT SUM(result)总分,AVG(result)平均分,MAX(result)最高分,MIN(result)最低分
FROM score
GROUP BY sid;

23.查询出"03"成绩前3名的成绩信息

SELECT cno,result
FROM score
WHERE cno=03
ORDER BY result DESC
LIMIT 0,3;

24.查询出‘02’号课程第2、3名成绩信息

SELECT cno,result
FROM score
WHERE cno=02
ORDER BY result DESC
LIMIT 1,2;

25.查询出score表中总成绩前三名的学生学号,总分

SELECT sid,SUM(result)
FROM score
GROUP BY sid
ORDER BY SUM(result) DESC
LIMIT 0,3;

26.查询出score表中总成绩最低名的学生学号,总分

SELECT sid,SUM(result)
FROM score
GROUP BY sid
ORDER BY SUM(result) ASC
LIMIT 0,1;

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值