• Oracle SQL (2):SQL Fundamentals(Day II)


    联合查询:

    1.等值连接:(内连接,自然连接)

    SQL> select d.deptno, d.dname, e.empno, e.ename, e.sal
      2  from dept d, emp e
      3  where d.deptno=e.deptno;

    13 rows selected.

    2.非等值连接:

    SQL> select e.ename, e.sal, s.grade
      2  from emp e, salgrade s
      3* where e.sal between s.losal and s.hisal

    3.自连接:

    SQL> select e.ename, m.ename
      2  from emp e, emp m
      3  where e.mgr=m.empno;

    4.外连接:

    sql99(sql2003) standard:

    SQL> select e.empno, e.ename, d.dname
      2  from emp e left outer join dept d
      3  on e.deptno = d.deptno;

    14 rows selected.

    oracle standard:

    SQL> select e.empno, e.ename, d.dname
      2  from emp e, dept d
      3  where e.deptno=d.deptno(+); 

    14 rows selected.

    oracle can't but sql99 can:

    SQL> select e.empno, e.ename, d.dname
      2  from emp e full outer join dept d
      3  on e.deptno=d.deptno;

    15 rows selected.

    5.笛卡尔乘积:

    SQL> select d.deptno, d.dname, e.empno, e.ename, e.sal
      2  from dept d, emp e

    56 rows selected.(14 * 4)

    子查询:

    SQL> select empno, ename, sal        
      2  from emp
      3  where sal > (select sal                     
      4               from emp
      5               where ename='BLAKE');

    null值处理:

    SQL> select empno, ename, sal
      2  from emp
      3  where empno not in (select mgr
      4                      from emp);

    no rows selected. (And results to now result).

    SQL> select empno, ename, sal
      2  from emp
      3  where empno in (select mgr
      4                  from emp);

    EMPNO ENAME    SAL
    ----- ------ -----
     7566 JONES   2975
     7698 BLAKE   2850
     7782 CLARK   2450
     7788 SCOTT   3000
     7839 KING    5000
     7902 FORD    3000

    6 rows selected. (Or results to records).

    SQL> select empno, ename, sal
      2  from emp
      3* where empno not in (select mgr
                             from emp
                             where mgr is not null)

    EMPNO ENAME    SAL
    ----- ------ -----
     7369 SMITH    800
     7499 ALLEN   1600
     7521 WARD    1250
     7654 MARTIN  1250
     7844 TURNER  1500
     7876 ADAMS   1100
     7900 JAMES    950
     7934 MILLER  1300

    8 rows selected. (Remove null value results to records).

    Top N分析:

    SQL> select * from (select empno, ename, sal from emp order by sal desc) where rownum < 4 order by rownum;

    EMPNO ENAME    SAL
    ----- ------ -----
     7839 KING    5000
     7788 SCOTT   3000
     7902 FORD    3000

    Union/Union All/Intersect/Minus:

    SQL> break on deptno skip 1;

    SQL> select deptno, job, sum(sal)
      2  from emp
      3  group by deptno, job
      4  union
      5  select deptno, to_char(null), sum(sal)
      6  from emp
      7  group by deptno
      8  union
      9  select to_number(null), to_char(null), sum(sal)
     10  from emp;

    SQL> select deptno, job, sum(sal) tsal
      2  from emp
      3  group by rollup(deptno,job);

    Insert/Update:

    SQL> create table test as
      2  select empno, ename, sal
      3  from emp   
      4  where 1=2;

    SQL> insert into test values(100, 'tom', null);
    SQL> insert into test(empno, ename) values (101, 'mike');

    SQL> truncate table test;
    SQL> insert into test select empno, ename, sal from emp;
    14 rows created.

    SQL> show feedback;
    FEEDBACK ON for 6 or more rows
    SQL> set feedback off;
    SQL> set feedback on;
    SQL> set feedback 6;

    SQL> update test set sal = (select sal from emp where empno=7499) where empno=7369;

    Truncate/Delete:

    DML(Insert, Update, Delete, Merge)
    DDL(Create, Alter, Drop, Rename, Truncate, Comment)
    DCL(Grant, Revoke)
    Transaction Control(Commit, Rollback, Savepoint)

    显示提交:rollback, commit
    隐式提交:DDL/DCL,正常退出
              begin
                  commit;
                  DDL/DCL;
                  commit;
              end
    隐式回滚:异常退出

    SQL> savepoint A;
    Savepoint created.

    SQL> delete from test where empno=7369;
    1 row deleted.

    SQL> rollback to savepoint A;

    Create Table, View, Sequence, Index, Synonyms(同义词)

    varchar2(10)/varchar2(10 char)
    number/number(8, 2)
    CLOB(text)/BLOB(Binary, media, exe)
    BFile: Binary data stored in an external file

    Constraint:
    not null, unique, primary key, foreign key,check

    SQL> purge recyclebin;

    SQL> drop table test purge;

    Table:

    SQL> create table test(id number, name varchar2(10), create_date date default sysdate);
    SQL> insert into test values(100, 'mike', default);

    SQL> create table et(eno number,
      2                  ename varchar2(10),
      3                  constraint en_u_eno unique(eno));

    SQL> create table dt(dno number(4) primary key,
      2                  dname varchar2(10));

    SQL> create table d as select deptno dno, dname, loc from dept;    
    SQL> create table e as select empno, ename, sal, deptno as dno from emp;

    SQL> alter table d add constraint d_pk primary key (dno);
    SQL> alter table e add constraint e_fk foreign key (dno) references d(dno);

    SQL> drop table e purge;

    SQL> create table e(eno number,
      2                 ename varchar2(10),
      3                 dno number references d(dno) on delete set null);

    SQL> create table e1(eno number,
      2                  ename varchar2(10),
      3                  dno number references d(dno) on delete cascade);

    SQL> alter table e1 read only;

    SQL> create table e2 as select * from emp;
    SQL> alter table e2 add constraint ck_e2 check ((sal > 0) and (sal < 10000));

    View:

    SQL> conn / as sysdba;
    SQL> grant create view to scott;

    SQL> conn scott/tiger;

    SQL> create or replace view v1 as select empno, ename, sal from emp with check option;
    SQL> create or replace view v2 as select empno, ename, sal from emp with read only;

    Index:

    {TODO:}

    Sequence:

    {TODO:}

    Synonym:

    SQL> conn / as sysdba;
    SQL> grant create synonym to scott;

    SQL> conn scott/tiger;
    SQL> create synonym sg for salgrade;

  • 相关阅读:
    SQL Server索引进阶:第十二级,创建,修改,删除
    SQL Server索引进阶第十一篇:索引碎片分析与解决
    Object.create()和new object()和{}的区别
    vue 前后端分离nginx部署
    实现组件props双向绑定解决方案
    prop不同数据类型设置默认值
    vue + element ui 阻止表单输入框回车刷新页面
    Vue.js中 watch(深度监听)的最易懂的解释
    vue-resource和axios区别
    JS中 reduce() 的用法
  • 原文地址:https://www.cnblogs.com/thlzhf/p/3033563.html
Copyright © 2020-2023  润新知