oracle入门02

    技术2022-05-20  38

    1、 oracle端口号修改问题

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

     登录的口令:sys

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

     连接的方式:sysDBA模式

     

     第一步:获取端口号:

    SQL> select dbms_xdb.getHTTPPort from dual;

    GETHTTPPORT

    -----------

           8080

     第二步:设置端口号:

    SQL> exec dbms_xdb.setHTTPPort(8088);

    PL/SQL procedure successfully completed

     第三步:重新获取

    SQL> select dbms_xdb.getHTTPPort from dual;

    GETHTTPPORT

    -----------

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

    2、 where子句

      第一:比较运算符:

    操作符

    含义

    =

    等于

    大于

    >=

    大于等于

    小于

    <=

    小于等于

    <>!=

    不等于

    案例:

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

    SQL> select * from emp where ename ='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 where sal>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 where sal>=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 where sal<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 where comm<=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 where comm<>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 where comm !=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 where sal 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 where deptno 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 where ename 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 where ename 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 where ename 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 where comm 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 where comm 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 where sal>=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 where sal >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 列表中的列排序


    最新回复(0)