MySQL(2)-基础 select语句

练习语句,基于几下 三张表为基础

例 表1:emp
MySQL(2)-基础 select语句
例 表2:dept
MySQL(2)-基础 select语句
例 表3:salgrade
MySQL(2)-基础 select语句
条件查询 where
符号

  • =
  • != 或 <>
  • and
  • or
  • in
  • between … and …
  • is null 和 is not null
  • not 可取非 (is not , not in)
  • like

例 找工资不等于3000的 员工
MySQL(2)-基础 select语句
给字段重命名 ‘as’ 或 ‘空格’ 接新名字 (若是中文,须 ’ 新名字 ')
例子
MySQL(2)-基础 select语句
between and 使用 必须 左小右大两边都为闭区间
例 查薪水在2500到5000薪资的员工
MySQL(2)-基础 select语句
is nullis not null
例 查哪些员工comm 不为 null
MySQL(2)-基础 select语句

and ,or 务必分别翻译为 并且或者
例 查工作岗位是 manager salesman 的员工 (留下神,是用and 还是 or ?)
MySQL(2)-基础 select语句
in 相当于 or , not in 意为取反
和上一个例子相同
MySQL(2)-基础 select语句

like 模糊查询 '%'意为任意多个字符, ‘_’ 意为任意个字符
例 查员工名字中有 S 的员工
MySQL(2)-基础 select语句
排序 order by
asc 升序 , desc 降序(若不写asc和desc则默认升序)
例子 按工资降序排序,再按名字升序排
MySQL(2)-基础 select语句
分组函数 count sum min max avg
注意分组函数不能用在where 后面 分组函数一定在分组后执行,分组函数会忽略 null
group by having group by 可对一个字段里是相同的进行分组 having 相当于分组完后的 where
可在having 里用分组函数
当一个字段被分组后,select 的字段必须为 分组函数(字段名)被分组的字段名

例子 找出每个部门不同工作岗位的最高薪水
联合分组
MySQL(2)-基础 select语句
连接查询 分为内连接外连接 关键字 join on
内连接分为 等值,非等值,自连接
这里直接以相比较 较难理解的自连接为例子
查每个员工的领导
MySQL(2)-基础 select语句
外连接多表
查每个员工的部门名称,工资等级和领导
MySQL(2)-基础 select语句

子查询
可在 select,where,from 后添加子查询
例 where 后
找出工资大于平均工资的员工信息
MySQL(2)-基础 select语句
from 后
找每个部门的平均薪水等级
MySQL(2)-基础 select语句
select 后
找出每个员工所在部门名称,显示员工和部门名字
MySQL(2)-基础 select语句