oracle 同步索引,oracle数据库连表查询视图索引)
-查询所有用户信息和部门信息
-查询数据:用户信息?部门信息
-来源:用户表emp?部门表部门
-我们可以在多个表中获取所需的数据==甚至表查询
-笛卡尔积
从emp,dept中选择empno,emp.deptno;
-所使用的字段存在于多个表中,指定了字段的来源
-别名
从emp e,d d中选择empno,depteptno;
-等值连接?它可以是名称相同的字段,也可以是名称不同的字段,但请确保两个字段具有相同的类型
从emp,dept中选择*其中emp.deptno = dept.deptno;
从emp,dept中选择*,其中emp.ename = dept.dname;-没有符合条件的数据
-查询30个用户的信息及其所属部门的信息
从emp,dept中选择*,其中emp.deptno = dept.deptno和emp.deptno = 30;
-非等效连接
-薪金水平信息2500
从薪水等级中选择*,在losal和hisal之间为2500;
-查询所有员工信息和薪资等级信息
从emp e中选择*,在s.losal和s.hisal之间选择salgrade s;
-查询用户的用户信息,部门信息和薪资等级信息
选择*
?来自emp e,d部门,salgrade s
?其中e.deptno = d.deptno
薪金介于s.losal和s.hisal之间;
-查询上级所有员工的信息和上级信息?假设e1是employee表? E2是上等表
从emp e1,emp e2选择*其中e1.mgr = e2.empno;
-查询所有员工的信息和上级信息?假设e1是employee表? e2是高级表
-需求:我想显示中间表中的所有数据,是否满足等效连接条件-外部链接?
-外部链接:确认主表(将显示主表的内容)? +相对的表是主表,+的表是从表
-左外连接?主表在左侧,称为左侧联接
-正确的连接??主表在右侧,称为右侧连接
-自我连接?特殊连接,连接自己吗?您也可以从外部链接
从emp e2中选择*,emp e1其中e1.mgr = e2.empno(+);–right连接
从emp e1,emp e2选择*其中e1.mgr = e2.empno(+);-左连接
从emp e1,emp e2选择*其中e1.mgr = e2.empno;-自我连接
-找出所有有员工的部门名称和员工人数
选择deptno,从emp组中按deptno计数(1);
选择dname,c
?从部门d,(选择部门,从emp组按部门1计数c)e
?其中d.deptno = e.deptno;
-找出所有部门的雇员人数和部门名称
选择dname,nvl(c,0)
?从部门d,(选择部门,从emp组按部门1计数c)e
?其中d.deptno = e.deptno(+);?-左链接
?
-找出20个部门的所有员工的信息和部门信息
从emp e中选择*,单位为d,其中e.deptno = 20和e.deptno = d.deptno;
从dept中选择*,其中deptno = 20;
从emp e中选择*,(从dept中的*中deptno = 20选择*)d其中e.deptno = d.deptno;