查询语法:
select
列名列表
from
表名列表
where…
笛卡尔积:
多表查询的分类:
隐式内连接:使用where条件消除无用数据
SELECT * FROM emp,dept WHERE emp.dept_id
= dept.id
;
– 查询员工表的名称,性别。部门表的名称
SELECT emp.name,emp.gender,dept.name FROM emp,dept WHERE emp.dept_id
= dept.id
;
SELECT
t1.name, – 员工表的姓名
t1.gender,-- 员工表的性别
t2.name – 部门表的名称
FROM
emp t1,
dept t2
WHERE
t1.dept_id
= t2.id
;
显式内连接:
dept_id
= dept.id
;dept_id
= dept.id
;内连接查询:
name
FROM emp t1 LEFT JOIN dept t2 ON t1.dept_id
=id
;dept_id
= t2.id
;概念:查询中嵌套查询,称嵌套查询为子查询。
– 查询工资最高的员工信息
– 1 查询最高的工资是多少 9000
SELECT MAX(salary) FROM emp;
– 2 查询员工信息,并且工资等于9000的
SELECT * FROM emp WHERE emp.salary
= 9000;
– 一条sql就完成这个操作。子查询
SELECT * FROM emp WHERE emp.salary
= (SELECT MAX(salary) FROM emp);
子查询不同情况
子查询的结果是单行单列的:
子查询的结果是多行单列的:
子查询的结果是多行多列的: