oracle数据库之sql语句使用

                





                      SCOTT E-R模型图

 



                                

DEPT 部门表             EMP 雇员表               BONUS 奖金表         GRADE 工资等级                 

DEPTNO 部门编号         EMPNO    雇员编号         ENAME 雇员名称     GRADE  工资等级

DNAME  部门名称        ENAME    雇员名称         JOB 工作职位          LOSAL   最低薪资

LOC    部门位置       JOB      工作职位         SAL  薪资            HISAL  最高薪资

                  MGR      领导编号         COMM 奖金

                  HIREDATE 雇用日期

                  SAL      薪资

                  COMM     奖金

                  DEPTNO   部门编号




语法结构

select 列名/表名     ---用于从表中选取数据

from  表名

where 条件


例子 select * from tab;  列出所有表


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


1.select 语句

select 列名称 from 表名称

select * from 表名称


例子1:列出emp中所有员工名

SQL> select ename from emp;


ENAME

----------

SMITH

ALLEN

WARD

JONES

MARTIN

BLAKE

CLARK

SCOTT

KING

TURNER

ADAMS


ENAME

----------

JAMES

FORD

MILLER


14 rows selected.



例子2:列出emp表的所有信息

SQL> select * from emp;


     EMPNO ENAME      JOB       MGR HIREDATE    SAL       COMM

---------- ---------- --------- ---------- --------- ---------- ----------

    DEPTNO

----------

      7369 SMITH      CLERK      7902 17-DEC-80    800

20


      7499 ALLEN      SALESMAN      7698 20-FEB-81   1600        300

30


      7521 WARD       SALESMAN      7698 22-FEB-81   1250        500

30


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


2.distinct语句  ---用于返回唯一不同的值

  语法:select distinct 列表名 from 表名称


例子:列出emp表中所有不重名的员工

SQL> select distinct ename from emp;


ENAME

----------

ALLEN

JONES

FORD

CLARK

MILLER

SMITH

WARD

MARTIN

SCOTT

TURNER

ADAMS


ENAME

----------

BLAKE

KING

JAMES


14 rows selected.


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


3.where语句

  语法:select 列表名 from 表名称 where 列 运算符 值

操作符

=  等于

<> 不等于

>  大于

<  小于

>= 大于等于

<= 小于等于

between。。and 。。  在某个范围内

like    搜索某种模式


例子:列出emp表中员工名为scott的所有信息

SQL> select * from emp where ename='SCOTT';


     EMPNO ENAME      JOB       MGR HIREDATE    SAL       COMM

---------- ---------- --------- ---------- --------- ---------- ----------

    DEPTNO

----------

      7788 SCOTT      ANALYST      7566 19-APR-87   3000

20


字符使用单引号,数值不用引号


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


4.and&or运算符   ----用于基于一个以上的条件对记录进行过滤

  可在where子语句中把两个或多个条件结合起来

  如果第一个条件和第二个条件都成立,则and运算符显示一条记录

  如果第一个条件和第二个条件只有一个成立,则or运算符显示一条记录


例子1:and  --列出emp表中员工名为king且工资为5000的所有信息

SQL> select * from emp where ename='KING' and sal=5000;


     EMPNO ENAME      JOB       MGR HIREDATE    SAL       COMM

---------- ---------- --------- ---------- --------- ---------- ----------

    DEPTNO

----------

      7839 KING       PRESIDENT   17-NOV-81   5000

10


例子2:or   ---列出emp表中员工名为king或工资为3000的员工的所有信息

SQL> select * from emp where ename='KING' or sal=3000;


     EMPNO ENAME      JOB       MGR HIREDATE    SAL       COMM

---------- ---------- --------- ---------- --------- ---------- ----------

    DEPTNO

----------

      7788 SCOTT      ANALYST      7566 19-APR-87   3000

20


      7839 KING       PRESIDENT   17-NOV-81   5000

10


      7902 FORD       ANALYST      7566 03-DEC-81   3000

20



例子3:and&or   ---列出emp表中员工名为scott或king的并且工资为3000的员工所有信息

SQL> select * from emp where (ename='SCOTT' or ename='KING') and sal=3000;


     EMPNO ENAME      JOB       MGR HIREDATE    SAL       COMM

---------- ---------- --------- ---------- --------- ---------- ----------

    DEPTNO

----------

      7788 SCOTT      ANALYST      7566 19-APR-87   3000

20 

     


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


5.order by语句

order by语句用于根据指定的列队结果集进行排序,默认升

desc 为降序

asc为升序


例子1:按工资由高到低进行排序

SQL> select ename,sal from emp order by sal desc;


ENAME  SAL

---------- ----------

KING 5000

FORD 3000

SCOTT 3000

JONES 2975

BLAKE 2850

CLARK 2450

ALLEN 1600

TURNER 1500

MILLER 1300

WARD 1250

MARTIN 1250


ENAME  SAL

---------- ----------

ADAMS 1100

JAMES  950

SMITH  800


14 rows selected.


例子2:按工资由低到高进行排序

SQL> select ename,sal from emp order by sal asc;


ENAME  SAL

---------- ----------

SMITH  800

JAMES  950

ADAMS 1100

WARD 1250

MARTIN 1250

MILLER 1300

TURNER 1500

ALLEN 1600

CLARK 2450

BLAKE 2850

JONES 2975


ENAME  SAL

---------- ----------

SCOTT 3000

FORD 3000

KING 5000


14 rows selected.