首页 / MYSQL / mysql-sq199语法
mysql-sq199语法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql-sq199语法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2878字,纯文字阅读大概需要5分钟。
内容图文
mysql-sq199语法
语法
select 查询列表
from 表1 别名 【连接类型】
join 表2 别名
on 连接条件
【where 筛选条件】
【group by 分组】
【having 筛选条件】
【order by 排序列表】
分类
内连接(☆):inner
外连接
左外(☆):left【outer】
右外(☆):right【outer】
全外: full 【outer】
交叉连接:cross
1.内连接
/*
语法:
select 查询列表
from 表1 别名
inner join 表2 别名
on 连接条件
分类:
等值连接
非等值连接
自连接
*/
1.1、等值连接
案例1.查询员工名、部门名
SELECT last_name,department_name FROM departments d INNER JOIN employees e ON e.'department_id' = d.'department_id';
案例2.查询名字中包含e的员工名和工种名(添加筛选)
SELECT last_name,job_tltle FROM employees e INNER JOIN jobs j ON e.'job_id' = j.'job_id'
WHERE e.'last_name' like '%e%';
案例3.查询部门个数>3的城市名和部门个数(添加分组+筛选)
SELECT city,COUNT(*) 部门个数 FROM departments d INNER JOIN locations l ON d.'location_id' = l.'location_id' GROUP BY city HAVING CONT(*)>3;
案例4.查询哪个部门的员工个数>3的部门名和员工个数,并按个数降序排名(添加排序)
#1.查询每个部门的员工个数 SELECT COUNT(*),department_name FROM employees e INNER JOIN departments d ON e.'department_id'=d.'department_id' GROUP BY department_name #2.在1的结果上筛选员工个数>3的记录,并排序 SELECT COUNT(*),department_name FROM employees e INNER JOIN departments d ON e.'department_id'=d.'department_id' GROUP BY department_name HAVING COUNT(*)>3 ORDER BY COUNT(*) DESC;
1.2、非等值连接
案例1.查询员工的工资级别
SELECT salary,grade_level FROM employees e JOIN job_grades g ON e.'salary' BETWEEN g.'lowest_sal' AND g.'highest_sal';
案例2.查询每个工资级别的个数>20的个数,并按工资级别降序排序
SELECT COUNT(*),grade_level FROM employees e JOIN job_grades g ON e.'salary' BETWEEN g.'lowest_sal' AND g.'highest_sal' GROUP BY grade_level HAVING COUNT(*)>20 ORDER BY grade_level DESC;
1.3、自连接
案例.查询员工的名字、上级的名字
SELECT e.last_name,m.last_name FROM employees e JOIN employees m ON e.'manager_id' = m.'employee_id';
2.外连接
/*
应用场景:用于查询一个表中有,另一个表中没有的记录
特点:
a.外连接的查询结果为主表中的所有记录
如果从表中有和它匹配的,则显示匹配的值
如果从表中没有和它匹配的,则显示null
外连接查询结果=内连接结果+主表中有而从表没有的记录
b.左外连接,left join 左边的是主表
右外连接,right join 右边的是主表
c.左外和右外交换两个表的顺序,实现同样的效果
d.全外连接=内连接的结果+表1中有但表2没有的+表2中有但表1没有的
*/
2.1、左外连接
案例.查询哪个部门没有员工
SELECT d.*,e.employee_id FROM departments d LEFT OUTER JOIN employees e ON d.'department_id' = e.'department-id' WHERE e.'employee_id' IS NULL;
2.2、右外连接
案例.查询哪个部门没有员工
SELECT d.*,e.employee_id FROM employees e RIGHT OUTER JOIN departments d ON d.'department_id' = e.'department-id' WHERE e.'employee_id' IS NULL;
2.3、全外连接
3.交差连接
内容总结
以上是互联网集市为您收集整理的mysql-sq199语法全部内容,希望文章能够帮你解决mysql-sq199语法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。