oracle语句基础

首先介绍一下用户模式:

   scott模式:     其密码为tiger      查询数据字典视图 USER_TABLES可以获知该模式所包含的表。

    HR模式:      类似与scott模式,hr中有七个表:雇员,部门,地点,国家,地区,工作,工作历

     其他模式:订单目录(OE)模式,产品媒体(PM)模式,信息交换(IX)模式和销售记录(SH)模式。


SQL> select *
  2  from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL>
SQL> select dname,loc
  2  from dept
  3  where deptno='10';

DNAME          LOC
-------------- -------------
ACCOUNTING     NEW YORK


在select语句里:

字符串和日期型数值都要用单引号 包起来

所以字符型数值是区分大小写的,日期的表达形式也是有区分的。

默认的日期形式是   DD-MON-YY

SQL> select ename,job,deptno
  2  from emp
  3  where ename='JAMES';

ENAME      JOB           DEPTNO
---------- --------- ----------
JAMES      CLERK             30

SQL>

comm:奖金

SQL> select ename,sal,comm
  2  from emp
  3  where sal<=comm;

ENAME             SAL       COMM
---------- ---------- ----------
MARTIN           1250       1400


between ...and...

SQL> select ename,sal
  2  from emp
  3  where sal between 1000 and 1500;

ENAME             SAL
---------- ----------
WARD             1250
MARTIN           1250
TURNER           1500
ADAMS            1100
MILLER           1300

in:

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

     EMPNO ENAME             SAL        MGR
---------- ---------- ---------- ----------
      7369 SMITH             800       7902
      7788 SCOTT            3000       7566
      7876 ADAMS            1100       7788
      7902 FORD             3000       7566



是的大小写很重要。

SQL> select ename
  2  from emp
  3  where ename LIKE 's%';

未选定行

SQL> select ename
  2  from emp
  3  where ename LIKE 'S%';

ENAME
----------
SMITH
SCOTT

SQL> select sal from emp where ename='S%';

未选定行

SQL> select sal,ename from emp where ename='S%';

未选定行

SQL> select ename
  2  from emp
  3  where ename LIKE '_A%';

ENAME
----------
WARD
MARTIN
JAMES

所以_  %  要配合  LIKE使用的。

IS NULL用来判断值是否为空,空值意味着这个值是不可用的,未分配的,未知,不可用的

所以不能使用=号来判断是否为空值。

SQL> select ename,mgr
  2  from emp
  3  where mgr is NULL;

ENAME             MGR
---------- ----------
KING

SQL>

镜像问题:不为空

SQL> edit
已写入 file afiedt.buf

  1  select ename,mgr
  2  from emp
  3* where mgr is not NULL
SQL> l
  1  select ename,mgr
  2  from emp
  3* where mgr is not NULL
SQL> /

ENAME             MGR
---------- ----------
SMITH            7902
ALLEN            7698
WARD             7698
JONES            7839
MARTIN           7698
BLAKE            7839
CLARK            7839
SCOTT            7566
TURNER           7698
ADAMS            7788
JAMES            7698

ENAME             MGR
---------- ----------
FORD             7566
MILLER           7782

已选择13行。

SQL>


有必要声明一下AND 的优先级比 OR高  所以请注意()的使用。

SQL> select empno,ename,job,sal
  2  from emp
  3  where sal>=1100 and job='CLERK';

     EMPNO ENAME      JOB              SAL
---------- ---------- --------- ----------
      7876 ADAMS      CLERK           1100
      7934 MILLER     CLERK           1300

SQL>


NOT 运算符也就是非了    !

SQL> select ename,job
  2  from emp
  3  where job not in ('CLERK','MANAGER','ANALYST');

ENAME      JOB
---------- ---------
ALLEN      SALESMAN
WARD       SALESMAN
MARTIN     SALESMAN
KING       PRESIDENT
TURNER     SALESMAN






group by子句:将查询结果按   group by 后面的列进行分组,列值相等的为一组。 

目的:为了细化集函数的作用对象。

所以,如果未对查询结果分组,集函数将作用与整个查询结果。

分组后集函数将作用于每一个组,即每个组都有一个函数值。

当你分完组后还要再筛选时,就用having子句

去掉不满足条件的组。








评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值