1234567图表1891011121314多表查询的基本语法查一张以上的表,就叫做多表查询例子:查询出雇员名称,部门名称和部门所在地的(一般多表查询要用别名)15统计记录数:查询emp有多少条纪录左右连接(重点)selecte
empno,e
ename,d
deptno,d
dname,d
locfromempe,deptdwheree
deptno=d
deptno;部门一共四个,这里只查询出三个,因为在雇员表中没有指定40部门的雇员,所以在消除笛卡尔乘机的时候没有条件符合40,如果喜欢40部门显示出来,就要用左右连接了
16selecte
empno,e
ename,d
deptno,d
dname,d
locfromempe,deptdwheree
deptno(+)(+)=d
deptno;(+)在左边,表示以右边的表为准,表示右链接
40部门出来了,所以此时就用到了有连接,证明以下规律(+)在左表示右连接(+)在右表示左连接17
SQL:1999对SQL的支持(了解)范例:交叉连接(crossjoin)产生笛卡尔积select*fromemptCROSSJOINdept;查询结果产生笛卡尔积CREATETABLEEMP10ASSELECT*FROMEMPWHEREDEPTNO=10;select*fromempNATURALJOINdept;自动进行匹配范例:USING子句,直接关联的操作列select*fromempeJOINdeptdUSING(deptno)wheredeptno=30;把两张表的详细信息进行打印输出范例:ON子句自己编写连接条件select*fromempeJOINdeptdON(e
deptno=d
deptno)wheree
deptno=30;范例:左连接(左外连接)右连接(右外连接)LEFTJOINRIGHTJOIN组函数和分组