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.