oracle入门02

来源:互联网 发布:tensorflow 快速入门 编辑:程序博客网 时间:2024/06/11 02:28

1、oracle端口号修改问题

 如果用户要修改oracle的端口号需要超级管理员进行登录

 登录的口令:sys

 登录的密码:root 是设置的密码

 连接的方式:sysDBA模式

 

 第一步:获取端口号:

SQL> selectdbms_xdb.getHTTPPort from dual;

GETHTTPPORT

-----------

       8080

 第二步:设置端口号:

SQL> execdbms_xdb.setHTTPPort(8088);

PL/SQL procedure successfullycompleted

 第三步:重新获取

SQL> selectdbms_xdb.getHTTPPort from dual;

GETHTTPPORT

-----------

       8088   //在这里发现oracle的端口号已经被修改了

2、where子句

  第一:比较运算符:

操作符

含义

=

等于

大于

>=

大于等于

小于

<=

小于等于

<>!=

不等于

案例:

1、  查询员工的姓名等于simth的员工信息

SQL> select * from emp whereename ='SMITH';   //注意字符与日期比较加单引号

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7369 SMITH  CLERK   7902 1980-12-17    800.00               20

2、  查询薪资大于2975的员工信息

SQL> select * from emp wheresal>2975;

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7788 SCOTT  ANALYST  7566 1982-12-9   3000.00               20

 7839 KING   PRESIDENT       1981-11-17   5000.00               10

 7902 FORD   ANALYST  7566 1981-12-3   3000.00               20

3、  查询薪资大于等于2975的员工信息

SQL> select * from emp wheresal>=2975;

 

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7566 JONES  MANAGER  7839 1981-4-2   2975.00               20

 7788 SCOTT  ANALYST  7566 1982-12-9   3000.00               20

 7839 KING   PRESIDENT       1981-11-17   5000.00               10

 7902 FORD   ANALYST  7566 1981-12-3   3000.00               20

4、  查询薪资小于500的员工信息

SQL> select * from emp wheresal<500;

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 2222 test     test      7369 1992-12-12    100.00   100.00     20

5、  查询奖金小于等于500的员工信息

SQL> select * from emp wherecomm<=500;

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

7499 ALLEN   SALESMAN 7698 1981-2-20   1600.00    300.00    30

7521 WARD   SALESMAN 7698 1981-2-22   1250.00    500.00    30

7844 TURNER SALESMAN  7698 1981-9-8   1500.00     0.00     30

2222 test      test     7369 1992-12-12    100.00    100.00    20

6、  查询奖金不等于500的员工信息

SQL> select * from emp wherecomm<>500; //这里采用的是<>

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7499 ALLEN  SALESMAN  7698 1981-2-20   1600.00   300.00     30

 7654 MARTIN SALESMAN  7698 1981-9-28   1250.00  1400.00     30

 7844 TURNER SALESMAN  7698 1981-9-8   1500.00     0.00     30

 2222 test     test      7369 1992-12-12    100.00   100.00     20

SQL> select * from emp wherecomm !=500; //这里采用的是!=

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7499 ALLEN  SALESMAN  7698 1981-2-20   1600.00   300.00     30

 7654 MARTIN SALESMAN  7698 1981-9-28   1250.00  1400.00     30

 7844 TURNER SALESMAN  7698 1981-9-8   1500.00     0.00     30

 2222 test     test      7369 1992-12-12    100.00   100.00     20

 

第二:其它的比较运算符

操作符

含义

between  1   and  2

在两个值之间(包含边界但值2>1)

In(set)

比配(set)中任意一个((set)最大值为1000)

Like

模糊匹配查询

Is null

空值

案例:

1、  查询员工的薪资在29755000之间的员工信息

SQL> select * from emp wheresal between 2975 and 5000; //包含边界值

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7566 JONES  MANAGER  7839 1981-4-2   2975.00               20

 7788 SCOTT  ANALYST  7566 1982-12-9   3000.00               20

 7839 KING   PRESIDENT       1981-11-17   5000.00               10

 7902 FORD   ANALYST  7566 1981-12-3   3000.00               20

2、  查询部门在10,20的所有员工信息

SQL> select * from emp wheredeptno in (10,20);

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7369 SMITH  CLERK   7902 1980-12-17    800.00              20

 7566 JONES  MANAGER  7839 1981-4-2   2975.00               20

 7782 CLARK   MANAGER 7839 1981-6-9   2450.00               10

 7788 SCOTT  ANALYST  7566 1982-12-9   3000.00               20

 7839 KING   PRESIDENT       1981-11-17   5000.00               10

 7876 ADAMS  CLERK  7788 1983-1-12   1100.00               20

 7902 FORD   ANALYST  7566 1981-12-3   3000.00               20

 7934 MILLER CLERK   7782 1982-1-23   1300.00               10

2222 test     test      7369 1992-12-12    100.00   100.00     20

3、  模糊比配查询

选择条件可以包含字符或数字:

a)        % 代表零个或多个字符(任意个字符)

   S% :代表是s字符开头

   %S:代表是S字符结尾

   %S%:代表是包含S字符

b)        _ 代表一个字符

    _S:代表第二个字符是S的。

 

c)        %_同时使用的情况

  _s%第二个字符为S的匹配的

d)        可以使用 ESCAPE 标识符 选择‘%’_’ 符号。回避特殊符号的:使用转义符。例如:将[%]转为[/%][_]转为[/_],然后再加上[ESCAPE ‘/’] 即可

 

案例:

 3.1  查询员工名称以S字符开头的员工信息

 SQL>select * from emp where ename like 'S%';

EMPNO ENAME JOB        MGR HIREDATE       SAL     COMM DEPTNO

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

 7369 SMITH  CLERK   7902 1980-12-17    800.00               20

 7788 SCOTT  ANALYST  7566 1982-12-9   3000.00               20

3.2  查询员工名称以S字符结尾的员工信息

SQL> select * from emp whereename like '%S';

EMPNO ENAME JOB        MGR HIREDATE       SAL     COMM DEPTNO

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

 7566 JONES  MANAGER  7839 1981-4-2   2975.00               20

 7876 ADAMS  CLERK  7788 1983-1-12   1100.00               20

 7900 JAMES   CLERK  7698 1981-12-3    950.00               30

3.3  查询员工名称含有S字符的员工信息

SQL> select * from emp where ename like '%S%';  //S字符可以在任何位置

EMPNO ENAME JOB        MGR HIREDATE       SAL     COMM DEPTNO

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

 7369 SMITH  CLERK   7902 1980-12-17    800.00               20

 7566 JONES  MANAGER  7839 1981-4-2   2975.00               20

 7788 SCOTT  ANALYST  7566 1982-12-9   3000.00               20

 7876 ADAMS CLERK   7788 1983-1-12   1100.00               20

7900 JAMES   CLERK  7698 1981-12-3    950.00               30

3.4  查询员工名称第二个字符是I并且员工名称字符长度为6的员工信息

SQL> select * from emp whereename like '_I____';

EMPNO ENAME JOB        MGR HIREDATE       SAL     COMM DEPTNO

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

 7934 MILLER CLERK   7782 1982-1-23   1300.00               10

3.5  查询员工名称第二个字符是I的员工信息

SQL> select * from emp whereename like '_I%'; //查询第二个字符为I,并且名称长度没有限制的员工信息

EMPNO ENAME JOB        MGR HIREDATE       SAL     COMM DEPTNO

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

 7839 KING   PRESIDENT       1981-11-17   5000.00               10

 7934 MILLER CLERK   7782 1982-1-23   1300.00               10

3.6  查询员工名称

3.7  查询员工名称

 

 

4、  is (not) null 空值查询

4.1  查询员工的奖金为空的用户(空值的理解:’’0等都不是空值)

SQL> select * from emp wherecomm is null;

 

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7369 SMITH  CLERK   7902 1980-12-17    800.00               20

 7566 JONES  MANAGER  7839 1981-4-2   2975.00               20

 7698 BLAKE  MANAGER  7839 1981-5-1   2850.00               30

 7782 CLARK  MANAGER  7839 1981-6-9   2450.00               10

 7788 SCOTT  ANALYST  7566 1982-12-9   3000.00               20

 7839 KING   PRESIDENT       1981-11-17   5000.00               10

 7876 ADAMS CLERK   7788 1983-1-12   1100.00               20

 7900 JAMES  CLERK   7698 1981-12-3    950.00               30

 7902 FORD   ANALYST  7566 1981-12-3   3000.00               20

 7934 MILLER CLERK   7782 1982-1-23   1300.00               10

 3333 test                      1992-12-12                         30

11 rows selected

4.2  查询员工的奖金不为空的用户

SQL> select * from emp wherecomm is not null;

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7499 ALLEN  SALESMAN  7698 1981-2-20   1600.00   300.00     30

 7521 WARD  SALESMAN  7698 1981-2-22   1250.00   500.00     30

 7654 MARTIN SALESMAN  7698 1981-9-28   1250.00  1400.00     30

 7844 TURNER SALESMAN  7698 1981-9-8   1500.00     0.00     30  //看这里有个0.0的值

2222 test      test     7369 1992-12-12    100.00    100.00    20

备注:重点理解空值的含义

第三:逻辑运算符

操作符

含义

and

逻辑并|

or

逻辑或

not

逻辑否

案例:

1、  查询员工的薪资大于等于2000并且员工的名称中含有I字符的员工信息

SQL> select * from emp wheresal>=2000 and ename like'%I%';

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

7839 KING    PRESIDENT       1981-11-17   5000.00               10

2、  查询员工的薪资大于等于2000或者员工的名称中含有I字符的员工信息

SQL> select * from emp wheresal >2000 or ename like'%I%';

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7369 SMITH  CLERK   7902 1980-12-17    800.00               20

 7566 JONES  MANAGER  7839 1981-4-2   2975.00               20

 7654 MARTIN SALESMAN  7698 1981-9-28   1250.00  1400.00     30

 7698 BLAKE  MANAGER  7839 1981-5-1   2850.00               30

 7782 CLARK  MANAGER  7839 1981-6-9   2450.00               10

 7788 SCOTT  ANALYST  7566 1982-12-9   3000.00               20

 7839 KING   PRESIDENT       1981-11-17   5000.00               10

 7902 FORD   ANALYST  7566 1981-12-3   3000.00               20

7934 MILLER CLERK   7782 1982-1-23   1300.00               10

3、  查询员工的职位job不在('CLERK','MANAGER','ANALYST')中的员工信息

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

EMPNO ENAME  JOB       MGR HIREDATE       SAL      COMM DEPTNO

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

 7499 ALLEN  SALESMAN  7698 1981-2-20   1600.00   300.00     30

 7521 WARD  SALESMAN  7698 1981-2-22   1250.00   500.00     30

 7654 MARTIN SALESMAN  7698 1981-9-28   1250.00  1400.00     30

 7839 KING   PRESIDENT       1981-11-17   5000.00               10

 7844 TURNER SALESMAN  7698 1981-9-8   1500.00     0.00     30

 2222 test     test      7369 1992-12-12    100.00   100.00     20

6 rows selected

总结:运算符的优先级

1

算术运算符

2

连接符

3

比较符

4

Is[not] null like  not in

5

Not between

6

Not

7

And

8

or

备注:可以使用括号改变优先级顺序

3、  Order by子句排序

a)         ASCascend: 升序

b)        DESCdescend: 降序

重点:ORDER BY 子句在SELECT语句的结尾

1、  升序

2、  降序

3、  按别名排序

4、  多列排序

5、  可以使用不在SELECT 列表中的列排序


原创粉丝点击