zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    代数基本定义
    离散数学CONDITIONAL STATEMENTS
    欧几里德算法及其实现
    欧几里得 算法复杂度
    养成习惯
    解决在myeclipse中启动服务器就进入调试模式的方法
    oracle中对索引的操作
    schema在oracle里是什么意思(转:http://shanbei.info/schemainoraclewhatismeantin.html)
    java 加载properties 文件
    java.io.IOException: mark() not supported
  • 原文地址:https://www.cnblogs.com/thlzhf/p/3033563.html
Copyright © 2011-2022 走看看