【MYSQL】单表查询


查询语法:

select 字段(*表示全字段)
from 数据表
【where 条件表达式】
【group by 分组字段【having 分组条件表达式】】
【order by 排序字段【asc | desc】】


例子:

教职工表Teacher(Tno, TName, age, sal, mgr, DNo),TNo为教职工编号,TName为教职工姓名,age年龄,sal为月薪,mgr为教职工的上一级领导的职工号,DNo为部门号;
课程表Course(Cno, CName, CCredits, CTno),Cno为课程编号,CName为课程名字,CCredits为课程学分, CTno为该课程上课老师的编号,其中外键CTno来自表Teacher的Tno键;
学生表Student(Sno, CLno, SName, SSex, SBir, Email),其中Sno为学生学号,CLno为系别编号,SName为学生姓名,SSex为学生性别,SBir为学生出生日期;
学生选课表SC(Sno, Cno, Score)。


(1)查询所有教职工的情况;

SELECT *
FROM teacher

在这里插入图片描述
(2)查询所有教职工的职工编号姓名

SELECT Tno,TName
FROM teacher

在这里插入图片描述

(3)查询所有教职工的工号和年薪,并且将输出结果中的列名显示为==“教职工号”“年薪”==(注意teacher表里的工资是月薪);

SELECT Tno 教职工号,Sal*12 年薪
FROM teacher

在这里插入图片描述
(4)查询职工编号为0002的教职工情况;

SELECT *
FROM teacher
where Tno='0002'

在这里插入图片描述
(5)查询有选课成绩大于等于90分的学生学号(重复学号只出现一次);

SELECT DISTINCT SNO
FROM SC
WHERE SCORE>=90

在这里插入图片描述
(6)查询学生中年龄在21-23岁之间的学生姓名出生日期

SELECT Sname, SBir
FROM student
where year(now())-year(SBir) BETWEEN 21 AND 23

在这里插入图片描述
(7)查询在部门01、02、或03的教职工情况;

SELECT *
FROM teacher
where DNo in ('01','02','03')

在这里插入图片描述
(8)查询没有给出成绩的选课情况;

SELECT *
FROM SC
WHERE SCORE IS NULL

在这里插入图片描述
(9)查询最高分大于等于90的课程总门数;

SELECT count(DISTINCT CNo) 课程门数
FROM SC
WHERE SCORE>=90

在这里插入图片描述
(10)查询姓马的同学信息;

SELECT *
FROM student
WHERE sname like '马%'

在这里插入图片描述
(11)查询名字里第二个字为剑的同学信息;

SELECT *
FROM student
WHERE SName like '_剑%'

在这里插入图片描述
(12)查询所有职工的姓名年龄,按年龄从小到大的顺序排列;

SELECT tname, age
FROM teacher
ORDER BY age

在这里插入图片描述
(13)查询课程号为001的成绩前五名的学生学号成绩(假设成绩没有重复)。

SELECT *
FROM SC
WHERE CNO='001'
ORDER BY SCORE DESC
LIMIT 0,5

在这里插入图片描述
(14)查询课程号为001的成绩倒数1、2名的学生学号成绩(成绩没录入的学生不纳入排名)。

SELECT CNO,SCORE
FROM SC
WHERE CNO='001' AND SCORE IS NOT NULL
ORDER BY SCORE 
LIMIT 0,2

在这里插入图片描述
(15)查询学号为00001和00002的学生选修课程号为001和002的选课情况;

SELECT CNO,SCORE
FROM SC
WHERE (sno='00001' or sno='00002') and (CNO='001' or CNO='002') 

在这里插入图片描述
(16)查询每门课程的最高分

SELECT CNo, Max(score)
FROM SC
GROUP BY CNo

在这里插入图片描述
(17)查询每个系的学生人数以及全部学生总人数

SELECT Clno,count(*)  人数
FROM student
GROUP BY CLno
with rollup

在这里插入图片描述
(18)查询每个部门年龄35岁及以上的教师的月薪平均工资,找出平均工资超过3000的部门号平均工资

SELECT DNo,AVG(sal)  平均工资
FROM teacher
WHERE age>=35
GROUP BY DNo
HAVING AVG(SAL)>=3000

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值