Oracle基本查询

来源:互联网 发布:历史非农数据 编辑:程序博客网 时间:2024/05/16 14:35
sqlplus  sys/Manager as sysdba 以管理员身份连接到数据库
alter user scott account unlock; 改变用户
desc emp 看表的结构;

(查询部门号为10的所有员工的信息)
SQL> select * from emp where deptno =10; 

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
    DEPTNO
----------
      7782 CLARK      MANAGER         7839 09-6月 -81           2450
        10

      7839 KING       PRESIDENT            17-11月-81           5000
        10

      7934 MILLER     CLERK           7782 23-1月 -82           1300
        10

   (查询名字是“CLARK )的员工信息;
SQL> select * from emp where ename = 'CLARK';

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
    DEPTNO
----------
      7782 CLARK      MANAGER         7839 09-6月 -81           2450
        10

(查询薪水大于1500的员工的姓名和薪水)
SQL> select ename ,sal from emp where sal>1500;(查询工资大于1500)

ENAME             SAL
---------- ----------
ALLEN            1600
JONES            2975
BLAKE            2850
CLARK            2450
SCOTT            3000
KING             5000
FORD             3000

已选择7行。
(查询部门号不是10的员工姓名和薪水)
SQL> select ename ,sal from emp where deptno <>10;(查询部门号不为10)

ENAME             SAL
---------- ----------
SMITH             800
ALLEN            1600
WARD             1250
JONES            2975
MARTIN           1250
BLAKE            2850
SCOTT            3000
TURNER           1500
ADAMS            1100
JAMES             950
FORD             3000

已选择11行。
(查询姓名中不含有“ABC”的员工的姓名和薪水)
SQL> select ename,sal from emp where ename>'CBA';(ename中不含ABC)

ENAME             SAL
---------- ----------
SMITH             800
WARD             1250
JONES            2975
MARTIN           1250
CLARK            2450
SCOTT            3000
KING             5000
TURNER           1500
JAMES             950
FORD             3000
MILLER           1300

已选择11行。
(查询薪水在800到1500的员工的薪水和姓名)
SQL> select ename,sal from emp where sal between 800 and 1500;(工资范围在                    
                                                                                                               800-1500);

ENAME             SAL
---------- ----------
SMITH             800
WARD             1250
MARTIN           1250
TURNER           1500
ADAMS            1100
JAMES             950
MILLER           1300

已选择7行。
(查询薪水在800-1500的员工的姓名)
SQL> select ename,sal from emp where sal>=800 and sal<=1500;(工资在800-1500)

ENAME             SAL
---------- ----------
SMITH             800
WARD             1250
MARTIN           1250
TURNER           1500
ADAMS            1100
JAMES             950
MILLER           1300

已选择7行。
(查询emp表中的ename和sal 以及奖金)
SQL> select ename,sal ,comm from emp;(查询ename ,sal, comm)

ENAME             SAL       COMM
---------- ---------- ----------
SMITH             800
ALLEN            1600        300
WARD             1250        500
JONES            2975
MARTIN           1250       1400
BLAKE            2850
CLARK            2450
SCOTT            3000
KING             5000
TURNER           1500          0
ADAMS            1100

ENAME             SAL       COMM
---------- ---------- ----------
JAMES             950
FORD             3000
MILLER           1300

已选择14行。
(查询emp表中的员工姓名,薪水和奖金不是空的员工)
SQL> select ename,sal,comm from emp where comm is null;(对于为null的处理)

ENAME             SAL       COMM
---------- ---------- ----------
SMITH             800
JONES            2975
BLAKE            2850
CLARK            2450
SCOTT            3000
KING             5000
ADAMS            1100
JAMES             950
FORD             3000
MILLER           1300

已选择10行。
(查询奖金是空的员工姓名和薪水)
SQL> select ename ,sal ,comm from emp where comm is not null;(不为空)

ENAME             SAL       COMM
---------- ---------- ----------
ALLEN            1600        300
WARD             1250        500
MARTIN           1250       1400
TURNER           1500          0
(sal是800,1500,2000)的人 
SQL> select ename,sal,comm from emp where sal in(800,1500,2000);

ENAME             SAL       COMM
---------- ---------- ----------
SMITH             800
TURNER           1500          0
(这几个人中的任何几个)
SQL> select ename,sal,comm from emp where ename in('SMITH','KING','ABC');

ENAME             SAL       COMM
---------- ---------- ----------
SMITH             800
KING             5000
(对于日期的查询应注意日期的书写格式)
(查询入职日期大于20-2月-81的员工的姓名和薪水)
SQL> select ename,sal,hiredate from emp where hiredate>'20-2月-81';

ENAME             SAL HIREDATE
---------- ---------- --------------
WARD             1250 22-2月 -81
JONES            2975 02-4月 -81
MARTIN           1250 28-9月 -81
BLAKE            2850 01-5月 -81
CLARK            2450 09-6月 -81
SCOTT            3000 19-4月 -87
KING             5000 17-11月-81
TURNER           1500 08-9月 -81
ADAMS            1100 23-5月 -87
JAMES             950 03-12月-81
FORD             3000 03-12月-81

ENAME             SAL HIREDATE
---------- ---------- --------------
MILLER           1300 23-1月 -82

已选择12行。
(deptno是10,并且sal是>1000)
SQL> select ename ,sal from emp where deptno = 10 and sal>1000;

ENAME             SAL
---------- ----------
CLARK            2450
KING             5000
MILLER           1300
(deptno是10,或者sal大于1000)
SQL> select ename ,sal from emp where deptno = 10 or sal>1000;

ENAME             SAL
---------- ----------
ALLEN            1600
WARD             1250
JONES            2975
MARTIN           1250
BLAKE            2850
CLARK            2450
SCOTT            3000
KING             5000
TURNER           1500
ADAMS            1100
FORD             3000

ENAME             SAL
---------- ----------
MILLER           1300

已选择12行。

(查询薪水不在800-1500的员工的信息)
SQL> select ename,sal from emp where sal not in(800,1500);(sal不在800,到1500)

ENAME             SAL
---------- ----------
ALLEN            1600
WARD             1250
JONES            2975
MARTIN           1250
BLAKE            2850
CLARK            2450
SCOTT            3000
KING             5000
ADAMS            1100
JAMES             950
FORD             3000

ENAME             SAL
---------- ----------
MILLER           1300

已选择12行。

(查询姓名中含有“ALL”的员工姓名)
SQL> select ename  from emp where ename like '%ALL%';(字符中含有ALL)

ENAME
----------
ALLEN
(查询姓名中第二字母是“A”的员工信息)
SQL> select ename from emp where ename like '_A%';(第二个字符为'A')

ENAME
----------
WARD
MARTIN
JAMES
(对于转义字符的引用,)
SQL> select ename from emp where ename like '%\%%';

未选定行

SQL> select ename from emp where ename like '%$%%';

未选定行

SQL> select ename from emp where ename like '%$%%' escape '$';

未选定行

原创粉丝点击