MySQL学习笔记基础篇

DQL

分组函数

用于对一组数据进行运算,也叫聚合函数或统计函数

  1. sum:求和
  2. avg: 平均数
  3. max
  4. min
  5. count:计算非空字段值的个数

count补充作用

  1. select count(*) from employees
    查询employees 表中的行数,*可以换成任意字符。
  2. 搭配distinct实现去重统计
    select count(distinct depermant_id) from employees
    查询有员工的部门个数

分组查询

group by
特点:

  1. 查询列表一般是分组和被分组的字段
  2. 分组查询中筛选分为两类
    分组前:筛选的基表是原始表, 关键词where 在groupby前
    分组后:筛选的基表是分组后的结果集,关键词是having 在groupby后

案例:
简单的分组
案例1:查询每个工种的员工平均工资

SELECT AVG(salary) ,job_id 工种
FROM `employees`
GROUP BY  job_id

可以实现分组后的筛选
案例1:查询哪个部门的员工个数>5

SELECT COUNT(*) 员工个数 ,department_id
FROM employees
GROUP BY department_id
HAVING COUNT(*)>5

此处用having,分组函数作为条件就使用having
案例2:每个工种有奖金的员工的最高工资>12000的工种编号和最高工资

SELECT job_id,MAX(salary)
FROM  employees
WHERE commission_pct IS NOT NULL
GROUP BY job_id
HAVING MAX(salary)>12000

按多个字段分组
案例:查询每个工种每个部门的最低工资,并按最低工资降序
groupby后可以不止一个字段

SQL99语法

内连接

select 查询列表
from1 
inner join2
on 连接条件
where
  1. 等值连接
    ①简单的两表连接
    案例:查询员工名和部门名
SELECT last_name,department_name
FROM `employees` e
INNER JOIN `departments` d
ON e.department_id = d.department_id
  1. 非等值
    大于或者小于
  2. 自连接

外连接

查询主表所有记录,如果有匹配项则显示,没有就显示null
应用场景:查询主表但从表可能没有记录情况

特点
1.外连接分主从表,不能调换
2.左连接就是左边为主表

语法

select 
from1
left outer join2
on

查询哪个部门没有员工,并显示部门编号和部门名

SELECT  d.department_id,department_name 
FROM `departments` d
LEFT OUTER JOIN `employees` e
ON e.department_id = d.department_id
WHERE e.department_id IS NULL 

子查询

分类:
1.按子查询出现的位置进行分类

1.select后面
要求:子查询的结果为单行单列
2.from 后面
可以为多行多列
3.where或者having后面 ⭐
要求:子查询的结果为单列
分为:
单行子查询
多行子查询
4.exist后面
要求:子查询的结果为单列(相关子查询)

单行子查询
嵌套在里面 < > =
多行子查询
in:
any/some:判断某字段的值是否满足其中任意一个
x>any(10,20)

all:判断某字段的值是否满足其中所有

分页查询

limit 起始条目数,显示的条目数
特点:
如果不写默认从起始条目索引从0开始

执行顺序

from–join–on–where–group by–having–select–order by–limit

查询有奖金的且工资较高的第11到20名

select *
from employees
where commission_pct is not null
order by salary desc
limit 10,10

联合查询

union
用union把两条查询语句联合在一起结果显示在一张表中

创建表

创建表:
CREATE TABLE 表名(
字段名 字段类型 【字段约束】,
字段名 字段类型 【字段约束】,

);

发布了33 篇原创文章 · 获赞 0 · 访问量 488

猜你喜欢

转载自blog.csdn.net/naerjiajia207/article/details/103837144