多表查询基本语法
2011-02-06 14:20
190 查看
//查询表中的记录数
select count(*) from emp;
select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno;
select e.ename,e.sal,d.dname,s.grade from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal;
select e.ename,e.sal,d.dname,decode(s.grade,1,'第五等工资',2,'第四等工资',3,'第三等工资') from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal;
二,左右连接
//右连接,得到匹配结果后将右侧的结果全部显示出来
select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno(+)=d.deptno;
//左连接,得到匹配结果后将左侧的结果全部显示出来
select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno(+);
默认是左连接
三,sql:1999语法
交叉连接:产生笛卡尔积
select * from emp cross join dept;
自然连接:自动进行关联字段的匹配
select * from emp natural join dept;
using子句:直接关联的操作列
select * from emp e join dept d using(deptno) where deptno=30;
on子句:用户自己编写连接的条件
select * from emp e join dept d on(e.deptno=d.deptno) where e.deptno=30;
右外连接:
select * from emp e right outer join dept d on(e.deptno=d.deptno);
左外连接:
select * from emp e left outer join dept d on(e.deptno=d.deptno);
select count(*) from emp;
select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno;
select e.ename,e.sal,d.dname,s.grade from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal;
select e.ename,e.sal,d.dname,decode(s.grade,1,'第五等工资',2,'第四等工资',3,'第三等工资') from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal;
二,左右连接
//右连接,得到匹配结果后将右侧的结果全部显示出来
select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno(+)=d.deptno;
//左连接,得到匹配结果后将左侧的结果全部显示出来
select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno(+);
默认是左连接
三,sql:1999语法
交叉连接:产生笛卡尔积
select * from emp cross join dept;
自然连接:自动进行关联字段的匹配
select * from emp natural join dept;
using子句:直接关联的操作列
select * from emp e join dept d using(deptno) where deptno=30;
on子句:用户自己编写连接的条件
select * from emp e join dept d on(e.deptno=d.deptno) where e.deptno=30;
右外连接:
select * from emp e right outer join dept d on(e.deptno=d.deptno);
左外连接:
select * from emp e left outer join dept d on(e.deptno=d.deptno);
相关文章推荐
- 基本 MDX 查询 ( MDX 语法 教程 )
- MySQL 基本查询语法使用
- Oracle基本语法查询语句
- dgraph 基本查询语法 三
- Mysql查询数据第一讲之查询数据基本语法
- SQL Server 数据库子查询基本语法
- SQL基本语法---数据查询
- MySQL的一些基本语法(7)-查询数据
- elasticsearch-查询的基本语法
- Hibernate 查询语句HQL基本语法
- 数据库学习笔记之SQL查询的基本语法结构
- 【数据库之SQL复杂查询】SQL复杂查询基本语法
- 查询的基本语法
- 基本 MDX 查询 ( MDX 语法 教程 )
- Hibernate 查询语句HQL基本语法
- [深入学习C#]LINQ查询表达式详解(1)——基本语法、使用扩展方法和Lambda表达式简化LINQ查询
- Oracle基本语法&&函数&&子查询&&分页查询&&排序&&集合操作&&高级分组函数
- SQL的查询、添加、修改、删除基本语法结构
- sql 查询基本语法
- MySQL最基本查询语法图解