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;
范例: 插叙所有办事员的