likes
comments
collection
share

sql92学习

作者站长头像
站长
· 阅读数 48

sql92

  • 笛卡尔积:一件事情的完成需要很多步骤,而不同的步骤有很多种方式,完成这件事情的所有方式称之为笛卡尔积
    • select * from emp--14
    • select * from dept--7
    • select * from emp,dept order by ename--7*14=98
  • 等值链接,链接条件。等值链接的时候字段的名字可以不相同,但是字段的值要相同。
    • 查询员工姓名,工作,薪资,部门名称 select * from emp,dept where emp.deptno=dept.deptno--使用等值链接进行结果筛选 select ename,job,sal,dname from emp,dept where emp.deptno=dept.deptno;--使用等值链接查询指定字段数据
    • 多表等值链接查询 select ename,job,sal,emp.deptno,dname from emp,dept where emp.deptno=dept.deptno;--多表查询的时候,查看相同字段的值,必须声明所在表 select emp.ename,emp.job,emp.sal,emp.deptno,dept.dname from emp,dept where emp.deptno=dept.deptno;--在查询指定字段值的时候,加上表名提高查询效率 select e.ename,e.job,e.sal,e.deptno,d.dname from emp e,dept d where e.deptno=d.deptno;--多表查询中使用别名进行表的区分 select e.ename,e.job,e.sal,e.deptno,d.dname from emp e,dept d where e.deptno=d.deptno order by deptno;--还可以使用order by 排序
  • 非等值链接
    • 查询员工姓名,工作,工资,工资等级 select * from salgrade select * from emp,salgrade order by ename select * from emp,salgrade where sal>losal and sal<hisal select e.ename,e.job,e.sal,s.grade from emp e,salgrade s where e.sal>s.losal and e.sal<s.hisal;
  • 自连接:使用频率不是很高,因为自连接的条件要求不同信息共存在一张里,其实就两张相同的表的等值链接。
    • 查询员工姓名,工作,薪资,及上级领导姓名 select * from emp for update create table temp as select * from emp select * from emp e,temp t where e.mgr=t.empno
  • 三表联合查询
    • 查询员工姓名,工作,薪资,部门名称,城市名称 elect e.ename,e.job,e.sal,d.dname,c.cname from emp e,dept d,city c where e.deptno=d.deptno and d.loc=c.cid
    • 查询工资高于2000的员工姓名,工作,薪资,部门名称,城市名称 select e.ename,e.job,e.sal,d.dname,c.cname from emp e,dept d,city c where e.deptno=d.deptno and d.loc=c.cid and sal>2000
  • 总结:sql92更符合人的思维,但当要查询的表多了起来,就非常的臃肿,不利于他人观看维护。所以推荐使用sql99
转载自:https://juejin.cn/post/7250029013719793701
评论
请登录