数据库Oracle

Oracle  如果从历史的发展角度来说,是一块著名的数据库产品包括也是世界上排名前三的公司

Orcale 公司现在除了数据库之外有一些其他的软件产品,例如,ERP系统,CRM 系统

操作系统,变成语言java   Oracle受到了IBM数据库分析员引发的一个论文,  论文关系数据库的发展  这个论文是70  年代出版的 后来和受到了这个论文的启发,同时代出现了许多的数据库产品,Oracle  也是同时代的产物,所以后来在70 年代的数据库有几十种之多,二Oracle也是众多类中的一员  Oracle是没有亮点的,但是在当时来说,IMB  是提出者和领导者 (不是产品提供者)Oracle 跟随着IBM不断前进,不断完善

Windows  系统:个人使用者 

Unix  系统  :  Centos  

类Unix 系统,:乌班图,MacOS 

云服务的国内发展路线,网盘->  云服务->  DeveOps ,Oracle  在最早的时候并没有云服务有任何的发力  Oracle  依然是世界领先的技术公司   国内现在有一种活动   去Oracle 开发  

国内的公司都是使用更为小巧的mysql ,个人认为,Oracle  数据库的地位,传统公司还在使用,新公司不会使用 

Bruce  Scott 是Oracle 数据库的主要缔造者,但是后来由于开发了一个属于自己的数据库  

PointBase  这个数据库后来随着BEA公司的workShop  产品家族一起推广  ,后来被Oracle收购了,看一看外面的世界,外面的互联网是怎么玩的  

后来迫于开源的使用,所以可以直接登录Oracle  上进行下载,但是最新的Oracle   数据库  没有这么高的性价比

Oracle在古希腊中被称为   “神域”  上帝的宠儿  ,在国内被誉为  甲骨文   商周时期  GodSon  

实际上从这个项目开始中国毁了不少优秀人才。

Oracle数据库之中基本上的分类如下:  

xxxl  提示是  internate  代表是  O让车辆8i   Oracle  9i  

xxxG  表示的是网格计算   指的是进行更高效的数据库计算

xxxC 表示进行云计算,使用了云计算的数据库的处理高效,

本次使用的是Oracle 惊呆版本,:Oracle   11G ,是因为 里面所提供的数据库的存储结构相对简单,而且大部分的数据库都是这么简答 ,新的数据库版本提供的数据库操作过于复杂

如果是通过网络下,那么得到两个开发包,那将两个解压就可以了,随后就可以启动安装了,

选择并安装数据库在Oracle的数据库的安装之后,进行系统配置,  选择服务器类,

在Oracle的课程里面最为重要的概念就是RAC  进行Oracle的数据库的集群搭建,由于这几年开源数据库的免费推广,所以很多的开发者字节开发了一些自己的开源组件

就可以使用数据库集群    一定要选择高级配置,这样才可以配置用户自己的登录口令,以及相关的字符编码  如果没有配置  选择简体中文,如果没有,也可以使用命令操作

oracleadmin   是用户名密码,不符合密码的安全性,但是可以忽略

在数据库安装完成之后要求进行一个口令管理 在之前统一配置过一个oracleadmin  ,但是个人传统习惯,有如下几个重要的用户可以单独配置一下

1 用户统一密码是oracleadmin

2  超级管理员   sys  / change_on_install;  

普通管理员  system  /  manager;

普通用户  scott  /tiger  解锁 

解锁 海量数据用户   sh  /  sh 

在数据库安装完成之后会自动的在Windows系统服务之后追加如下的一些oracle  有关的服务项

对于oracle  数据库而言,有两个重要的服务时必须启动的,

  数据库监听服务  单数据库需要通过程序访问的时候那么必须启动监听服务

 数据库实例服务 数据库存放具体内容的信息,没当追加一个新的数据库就会产生一个新的实例服务项,实例服务的命名标准是  SID  在之前配置的MLDN  的名称上,

Oracle 书库安装完成之后实际上现在获得了两项内容,  

  Oracle 数据库管理平台

如果要进行数据库平台的管理操作或者进行实例数据库的一些管理,就可以利用sqlplus的管理命令来管理,只要Oracle正确安装完成就都可以直接进行启动

在输入的时候需要我们输入用户名和密码  输入 “sqlplus”,随后输入的时候需要输入用户名和密码,此时就可以使用之前配置的 除了超级管理员

C:\Users\23662>sqlplus

SQL*Plus: Release 11.2.0.1.0 Production on 星期四 5月 27 00:09:40 2021

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

请输入用户名:  system

输入口令:  密码不是回显的

连接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

如果觉得此时的输入命令过于繁琐了,那么也可以在使用sqlplus 命令的时候直接设置好用户名和密码,

1  登录数据库  

C:\Users\23662> sqlplus scott/bwf123456

SQL*Plus: Release 11.2.0.1.0 Production on 星期四 5月 27 00:16:36 2021

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

如果是没有进行密码输入,也会提醒我们进入到用户名密码输入

进入到了sqlplus环境里面那么默认将连接当前仅有的一个数据库mldn  那么这个利用命令查看我们的数据库表信息,命令使用分号完结;

SQL> select * from tab;

TNAME TABTYPE CLUSTERID

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

CUSTOMER                      TABLE

DEPT                          TABLE

EMP                            TABLE

MEMBER                        TABLE

PRODUCT                        TABLE

PURCHASE                      TABLE

SALGRADE                      TABLE

已选择7行。

4  如果现在在进行浏览的时候发现结构显示的混乱,主要是格式的设置问题  

设置每行显示的数据长度     SET  LINESIZE  100

设置每页显示的数据行数       SET PAGESIZE 30 

这两个命令每一次在启动完成sqlplus  工具之后,都需要重复进行设置

 数据库组成  数据表    管理信息    辅助结构  索引

此时发现显示的数据库的信息是按照一个行列结构的形式来显示的可以针对某个列上进行格式化调整

5  针对于tname 的列进行格式化显示控制

COL   tname  FOR  A20;

select *  from  tab;

TNAME TABTYPE CLUSTERID

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

CUSTOMER                      TABLE

DEPT                          TABLE

EMP                            TABLE

MEMBER                        TABLE

PRODUCT                        TABLE

PURCHASE                      TABLE

SALGRADE                      TABLE

已选择7行。

6此时可以发现mldn数据库下的scott 用户里面有七张表

7当前使用的是scott用户进行的sqlplus  登录,则意味着,当前就会列出scott全部的数据库表的详细内容,则采用以下语法形式 完完成

select   *  from    表名称;

SELECT  * FRO  DEPT ;

SQL> SELECT * FROM dept;

    DEPTNO DNAME          LOC

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

        10 ACCOUNTING    NEW YORK

        20 RESEARCH      DALLAS

        30 SALES          CHICAGO

        40 OPERATIONS    BOSTON

SQL>

8  一个数据库会有多个同时存在的用户,那么现在也可以使用如下的语法结构进行用户的切换 

9. CONN[ECT]  用户名/密码 [ AS SYSDBA| SYSUSER]

此时要使用特定的用户名和密码登录,如果现在登录的是超级管理员  则应该在后面追加  “AS SYSDBA”  选项

使用sys账户登录  超级管理员

试试使用  CONN   sys/bwf  AS SYSDBA 登录试试

SQL> CONN sys/bwf123456 as sysdba

已连接。

不同的用户拥有不同的数据库表信息  ,所以现在我们可以查看一下sys账户下的所有信息

然后

select  * from  tab;  

tions_

_utl$_gnp_ind        VIEW

_utl$_gp_ind_parts  VIEW

_utl$_lc_ind_subs    VIEW

_utl$_lnc_ind_parts  VIEW

已选择4742行。

此时如果使用的是system  登录就可以不需要使用  “as  sysdba”   它只是一个普通管理员

SQL> CONN SYSTEM/bwf123456

已连接。

10 在不同用户模式下如果要想访问其他用户的定语的用户表新,则需要在数据表前追加 “用户名” (模式名)

  当前是在system 账户中,那么如果进行数据表查询,则查询的是本用户的表,但是system  没有dept表信息

查看当前的用户名

SQL> show user

USER 为 "SYSTEM"  执行结果

SQL>

范例  :使用的完整名称进行查询  scott.dept

SQL> SELECT * FROM scott.dept;

    DEPTNO DNAME          LOC

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

        10 ACCOUNTING    NEW YORK

        20 RESEARCH      DALLAS

        30 SALES          CHICAGO

        40 OPERATIONS    BOSTON

10、仙子阿所有的程序命令发现都是记事本录入之后在进行执行的粘贴复制之后执行的,在一些非桌面执行命令的操作时不可能的,为了解决这个问题,在Oracle 里面有一个本机默认记事本调用的程序“ED”,它可以直接在sqlplus的环境中启动记事本,并编写相应的执行代码后,运行程序指令,

定语一个执行文件



11在使用sqlplus  的语法中海还有一点比较方便,就是可以直接调用本机操作的命令。

在dos有一个命令,语法;

copy  源文件,  目标文件目录 

这个命令可以直接在sqlplus 中调用,但是在调用命令前需要编写一个“host”

范例 :实现文件拷贝处理


利用这些命令学习是有帮助的

在数据库但是之后世界上出现二楼许多的数据库,那么这许多的数据库就出现了操作统一 

你会用户A 数据库,那么对于B数据库的操作就需要重新学习,左移在这个时候有IBM 退出了一个SQL标准,所以

这个时候为所有数据库的通用操作语法标准

这个时候是Oracle  数据库最早支持SQL标准的关系型数据库,二后经过二楼长时间的沉淀,数据库基本上对于关系型数据库都支持SQL语法了,

sql语言是结构化查询语言  是一个功能强大的数据库语言,SQL 通常用于数据库的通信,ANSI   米国 国家标准学会)声称,SQL  是关系型数据库管理的标准语言

1  、  DML    Data  Manipulation   Language  数据操作语言

    数据查询    select  *  from   dept;   数据更新处理  增加,修改,删除   事务管理

2 DDL   Data   Definition  Language   数据定语语言

数据表结构的定语,进行数据库对象定语  用户,数据表,模式名称,

3 DCL   Data   Control   Language  数据控制语言  授权管理

在实际上的开发之中,开发人员就常用的DML   查询和更新  ,对于数据库的设置人员来说基本上使用的DDL,DCL  上多,现在是都需要会,都精通,都归你管

scott  用户下数据库的信息是在以后进行数据查询的用户,一共有四张表

在Oracle 11g以前这些数据表示会给用户默认提供的样本数据方案,但是在其他版本之后,不会默认提供的,操作

结构发生了改变,如果你在安装过程中没有选择出家样本方案的数据库  就不会显示有,数据库就需要手动执行脚本

下面来详细的介绍着四个表的作用,如果想要查看每一张数据表的组成  可以使用“desc”  表名称,的语法形式

1  部门信息表  

dept  部门新表一共有三列的信息  

QL> desc dept ;

名称                                      是否为空? 类型

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

DEPTNO           部门编号                         NOT NULL NUMBER(2)

DNAME       部门名称                                       VARCHAR2(14)

LOC         部门位置                                       VARCHAR2(13)

所有的表就根据这样的结构返回进行设计分析 

2  雇员信息表  emp  一个部门有多个雇员,在雇员里面需要记录好对应的部门信息 deptno  

SQL> desc emp;

名称                                      是否为空? 类型

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

EMPNO                                    NOT NULL NUMBER(4)  雇员编号,最多是思维数字所组成

ENAME                                              VARCHAR2(10)  雇员姓名,最多有10位祝福组成

JOB                                                VARCHAR2(9)   雇员职位

MGR                                                NUMBER(4)  雇员的领导编号,领导本身也会是雇员

HIREDATE                                          DATE  雇佣日期

SAL                                                NUMBER(7,2)  基本工资,其中小数位可以是2位二整数为是5位,总的长度是7位

COMM                                              NUMBER(7,2)   佣金,只有销售员的雇员才会存在的佣金

DEPTNO                                            NUMBER(2)  雇员所在的部门编号

SQL> set linesize 100;

SQL> select  *  from  emp;

    EMPNO ENAME      JOB              MGR HIREDATE              SAL      COMM    DEPTNO

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

      7369 SMITH      CLERK          7902 17-12月-80            800                    20

      7499 ALLEN      SALESMAN        7698 20-2月 -81          1600        300        30

      7521 WARD      SALESMAN        7698 22-2月 -81          1250        500        30

      7566 JONES      MANAGER        7839 02-4月 -81          2975                    20

      7654 MARTIN    SALESMAN        7698 28-9月 -81          1250      1400        30

      7698 BLAKE      MANAGER        7839 01-5月 -81          2850                    30

      7782 CLARK      MANAGER        7839 09-6月 -81          2450                    10

      7788 SCOTT      ANALYST        7566 19-4月 -87          3000                    20

      7839 KING      PRESIDENT            17-11月-81          5000                    10

      7844 TURNER    SALESMAN        7698 08-9月 -81          1500          0        30

      7876 ADAMS      CLERK          7788 23-5月 -87          1100                    20

    EMPNO ENAME      JOB              MGR HIREDATE              SAL      COMM    DEPTNO

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

      7900 JAMES      CLERK          7698 03-12月-81            950                    30

      7902 FORD      ANALYST        7566 03-12月-81          3000                    20

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

已选择14行。

数据库的数据类型可以保存时间两个单元结构,但是很多其他事的数据库只能保存日期结构,是时间结构

3 工资登记表————salgrade  工资等级表

给定一个等级的范围,那么只有

SQL> DESC SALGRADE ;

名称                                                  是否为空? 类型

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

GRADE                                                            NUMBER  等级编号

LOSAL                                                          NUMBER  此等级的最低工资

HISAL                                                          NUMBER  此等级的最高工资

4  工资表  

工资表示在所有表中唯一没有数据的表

查询是SQL 语句组成成分里面最为重要的操作结构,查询分为几个分类,简单查询,插叙排序,多表查询,统计查询和分组查询,这些统一作为DML的一部分, 

简单查询的本质是通过一张数据表进行一些简单的处理操作,简单的查询基本语法如下

②SELECT  [DISTINCT]  *  |  列名  别名   ,.........

①FROM  数据表  [别名];

对于以上给出的语法,实际上的作用如下

   from   字句,是典故要查询的资源位置,这个位置可能是数据表也可以是某些查询 行列组合

select  字句:  确定要显示的查询列

简单查询最大特点在于,把所有的信息都累出,但是可以字节来控制数据列,SELECT 字句实现数据列的控制

如果使用通配符“*”   ,表示查询所有的内容

范例:查询我们emp表中的一个全部数据

SQL> SELECT * FROM EMP;

    EMPNO ENAME      JOB              MGR HIREDATE              SAL      COMM    DEPTNO

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

      7369 SMITH      CLERK          7902 17-12月-80            800                    20

      7499 ALLEN      SALESMAN        7698 20-2月 -81          1600        300        30

      7521 WARD      SALESMAN        7698 22-2月 -81          1250        500        30

      7566 JONES      MANAGER        7839 02-4月 -81          2975                    20

      7654 MARTIN    SALESMAN        7698 28-9月 -81          1250      1400        30

      7698 BLAKE      MANAGER        7839 01-5月 -81          2850                    30

      7782 CLARK      MANAGER        7839 09-6月 -81          2450                    10

      7788 SCOTT      ANALYST        7566 19-4月 -87          3000                    20

      7839 KING      PRESIDENT            17-11月-81          5000                    10

      7844 TURNER    SALESMAN        7698 08-9月 -81          1500          0        30

      7876 ADAMS      CLERK          7788 23-5月 -87          1100                    20

    EMPNO ENAME      JOB              MGR HIREDATE              SAL      COMM    DEPTNO

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

      7900 JAMES      CLERK          7698 03-12月-81            950                    30

      7902 FORD      ANALYST        7566 03-12月-81          3000                    20

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

已选择14行。

默认的简单查询返回全部的数据行信息,但是如果有需要则可以值查询几个简单行

范例:  查询每个雇员的编号,姓名,职位,基本工资

empno   ename   job  sal  

SQL> SELECT empno,ename,job,sal FROM emp;

    EMPNO ENAME      JOB              SAL

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

      7369 SMITH      CLERK            800

      7499 ALLEN      SALESMAN        1600

      7521 WARD      SALESMAN        1250

      7566 JONES      MANAGER        2975

      7654 MARTIN    SALESMAN        1250

      7698 BLAKE      MANAGER        2850

      7782 CLARK      MANAGER        2450

      7788 SCOTT      ANALYST        3000

      7839 KING      PRESIDENT      5000

      7844 TURNER    SALESMAN        1500

      7876 ADAMS      CLERK          1100

    EMPNO ENAME      JOB              SAL

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

      7900 JAMES      CLERK            950

      7902 FORD      ANALYST        3000

      7934 MILLER    CLERK          1300

在进行检点的查询操作过程中,也可以进行数据列的数学计算

查询每个雇员的编号,姓名,职位,基本年收入

select  empno,ename  ,job  sal*12

from  emp;

SQL> select empno,ename,job, sal*12 INCOME  别名

  2  FROM EMP;

    EMPNO ENAME      JOB          INCOME

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

      7369 SMITH      CLERK          9600

      7499 ALLEN      SALESMAN      19200

      7521 WARD      SALESMAN      15000

      7566 JONES      MANAGER        35700

      7654 MARTIN    SALESMAN      15000

      7698 BLAKE      MANAGER        34200

      7782 CLARK      MANAGER        29400

      7788 SCOTT      ANALYST        36000

      7839 KING      PRESIDENT      60000

      7844 TURNER    SALESMAN      18000

      7876 ADAMS      CLERK          13200

    EMPNO ENAME      JOB          INCOME

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

      7900 JAMES      CLERK          11400

      7902 FORD      ANALYST        36000

      7934 MILLER    CLERK          15600

已选择14行。

在以后编写的别名的时候,尽量不要去使用中文进行别名的标注,中文有可能出现乱码,从SQL  标准语法来说进行设置,但是由于Oracle 颞部的设计比较方便,所以可以简化as 

SELECT  empno,ename ,job,sal * 12  as income  

FROM  emp;

对于工资租车高耗能不单单是基本工资了,肯定要有各种奖金,例如:年底15个月的工资 

200餐补,200行车补助,200的电脑补助,每年5月到9月的降温补助100 

SELECT  empno,ename,job,sal*15+600*12 +5*100 income  

from  emp;

在使用四则运算的过程中,可以使用()  ,修改运算的优先级,

取消所有的重复信息

范例  :查询所有雇员的职位信息 DISTINCT  取消重复新

SQL> SELECT DISTINCT JOB 

 FROM EMP;

JOB

---------

CLERK

SALESMAN

PRESIDENT

MANAGER

ANALYST

在以后进行重复的互数据库消除的时候,一定要记住,只有在所有的

范例: 查询更多的内容  

SELECT   DISTINCT  ename,job  

From   emp;   

执行结果SQL> SELECT DISTINCT ename,job

  2  FROM emp;

ENAME      JOB

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

WARD      SALESMAN

SMITH      CLERK

CLARK      MANAGER

TURNER    SALESMAN

JAMES      CLERK

JONES      MANAGER

MARTIN    SALESMAN

ADAMS      CLERK

SCOTT      ANALYST

KING      PRESIDENT

FORD      ANALYST

ENAME      JOB

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

ALLEN      SALESMAN

BLAKE      MANAGER

MILLER    CLERK

已选择14行。

我们发现还是有重复的,我们同事使用dstinct  是消除重复行的

在使用查询的sql语句中除了输出信息列的常量的内容,在数据库的常量当中国,我们使用数据库的常量当中

我们跟上

字符串

•字符串:所有的字符串必须使用  单引号‘’   声明

•数字

SQL> SELECT '雇员信息',ename, 18

  2  FROM emp;

'雇员信  ENAME              18

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

雇员信息 SMITH              18

雇员信息 ALLEN              18

雇员信息 WARD              18

雇员信息 JONES              18

雇员信息 MARTIN            18

雇员信息 BLAKE              18

雇员信息 CLARK              18

雇员信息 SCOTT              18

雇员信息 KING              18

雇员信息 TURNER            18

雇员信息 ADAMS              18

'雇员信  ENAME              18

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

雇员信息 JAMES              18

雇员信息 FORD              18

雇员信息 MILLER            18

已选择14行。

所有的常量是作为数据查询的结果返回,二所有的别名是作为表头的定语

在使用简单查询的时候,可以使用 “||”  实现数据的操作连接

范例:  实现数据的                       格式:“雇员姓名:xxx、雇员工资:xxxx”

SELECT '雇员信息:' || ename || '、雇员啊工资:'  || sal  信息

SQL> SELECT '雇员信息',ename, 18

  2  FROM emp;

'雇员信  ENAME              18

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

雇员信息 SMITH              18

雇员信息 ALLEN              18

雇员信息 WARD              18

雇员信息 JONES              18

雇员信息 MARTIN            18

雇员信息 BLAKE              18

雇员信息 CLARK              18

雇员信息 SCOTT              18

雇员信息 KING              18

雇员信息 TURNER            18

雇员信息 ADAMS              18

'雇员信  ENAME              18

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

雇员信息 JAMES              18

雇员信息 FORD              18

雇员信息 MILLER            18

已选择14行。

但是需要提醒的是,在进行常量定语的时候,别名和常量作用  ,所有的常量是作为数据查询返回,二所有的别名是作为表头的定语而不是输出

SQL> SELECT '雇员信息:' || ename|| '、雇员工资:'|| sal as 信息

  2  FROM  emp;

信息

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

雇员信息:SMITH、雇员工资:800

雇员信息:ALLEN、雇员工资:1600

雇员信息:WARD、雇员工资:1250

雇员信息:JONES、雇员工资:2975

雇员信息:MARTIN、雇员工资:1250

雇员信息:BLAKE、雇员工资:2850

雇员信息:CLARK、雇员工资:2450

雇员信息:SCOTT、雇员工资:3000

雇员信息:KING、雇员工资:5000

雇员信息:TURNER、雇员工资:1500

雇员信息:ADAMS、雇员工资:1100

信息

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

雇员信息:JAMES、雇员工资:950

雇员信息:FORD、雇员工资:3000

雇员信息:MILLER、雇员工资:1300

已选择14行。

利用  “||” 实现的内容的连接,最终会变成一列的内容返回

7  限定查询  

的做哟啊作用是统一一些条件的筛选,悬着出部分内容进行显示,最大的特点的是数据列的显示

如果要想进行数据行的显示控制,就必须利用限定查询来完成,此时只有满足条件的的护具才可以进行展示

限定查询的语法结构

③SELECT  DISTINCT  * | 列 【别名】,列【别名2】

② 【WHERE  限定条件(s)】

①FROM  数据表  【别名】

在进行查询的过程里面,FROM   字句永远都是最早最先执行的,二对于where与,都是最先执行的,因为需要确认有可以访问的数据进行的条件判断,当判断帅选完数据行之后,才可以执行select字句,所以where是无法使用SELECT字句定语的别名的,但是可以使用FROM 定语的别名的

  在WHERE  字句里面支持有如下的集中判断操作

关系运算  :>  <  >=   <=  =  !=  (<>)  

逻辑运算符  AND  ,OR,NOT 

特殊运算符,BETWEEN  AND 、  IN   、NOT  IN   、LIKE

查询  :  查询雇员行为为SMITH  的人员信息

SELEFT  *   

FROM  emp

WHERE  ename='SMITH';

SQL> SELECT * FROM emp WHERE ename='SMITH';

    EMPNO ENAME      JOB              MGR HIREDATE              SAL      COMM    DEPTNO

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

      7369 SMITH      CLERK          7902 17-12月-80            800                    20

此时查询我们发现不会出现全部数据行的内容,所以where是针对数据行的显示

8   关系运算符    

关系运算符的是大小的关系匹配,最简单的关系运输符只需要进行一个数字的比较即可

范例: 查询所有工资高于1500的所有雇员

SQL> SELECT * FROM emp WHERE SAL >1500;

    EMPNO ENAME      JOB              MGR HIREDATE              SAL      COMM    DEPTNO

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

      7499 ALLEN      SALESMAN        7698 20-2月 -81          1600        300        30

      7782 CLARK      MANAGER        7839 09-6月 -81          2450                    10

      7698 BLAKE      MANAGER        7839 01-5月 -81          2850                    30

      7566 JONES      MANAGER        7839 02-4月 -81          2975                    20

      7788 SCOTT      ANALYST        7566 19-4月 -87          3000                    20

      7902 FORD      ANALYST        7566 03-12月-81          3000                    20

      7839 KING      PRESIDENT            17-11月-81          5000                    10

已选择7行。

范例:  查询公司小于1000的雇员姓名,工资,职位

SQL> SELECT ename,sal,job FROM

  2  emp

  3  WHERE SAL < 1000;

ENAME            SAL JOB

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

SMITH            800 CLERK

JAMES            950 CLERK

此时实现二楼查询结果的行列操作,那么在进行数据查询的是偶需要注意一点,Oracle 注意的是针对于字符串或者是日期进行比较

范例:查询名字比SMITH大的雇员   议定的是首字母大小的关系

执行结果  

①SQL> SELECT *

  2  FROM  emp

  3  WHERE  ename >'SMITH';

    EMPNO ENAME      JOB              MGR HIREDATE              SAL      COMM    DEPTNO

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

      7521 WARD      SALESMAN        7698 22-2月 -81          1250        500        30

      7844 TURNER    SALESMAN        7698 08-9月 -81          1500          0        30

②插叙 1981年-12-21日之后雇佣的雇员

SQL> SELECT *

  2  FROM  emp

  3  WHERE HIREDATE>'21-12月 -81';当然 这里也可以写1981  

    EMPNO ENAME      JOB              MGR HIREDATE              SAL      COMM    DEPTNO

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

      7788 SCOTT      ANALYST        7566 19-4月 -87          3000                    20

      7876 ADAMS      CLERK          7788 23-5月 -87          1100                    20

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

③对于日期描述的话可以按照已有数据中的日期字符串的格式进行定语,但是描述的时候需要考虑千年虫的问题

建议使用完整的日期信息,不要采用简写

9  逻辑运算  

在编写SQL语句的时候可以利用运算符连续多个判断条件,对于逻辑运算符的 定语

AND ; 若干个判断条件

OR: 若干个条件满足一个即可

NOT :结果求反  true  变false    false  变 true  

范例:  插叙所有工资不大于1500的雇员信息

①SQL> SELECT *

  2  FROM  emp

  3  WHERE  SAL <=1500;

②  SELECT *  

FROM  emp

WHERE  NOT SAL>1500;

范例:  插叙所有办事员的

你可能感兴趣的:(数据库Oracle)