oracle复习整理

最近的记名都以把新闻存在数据库,然后把输入的与数据库内容实行相称,1样就登录成功,不然不成功。验证码是为了防止万1暴力破解,因为电脑可以自动相称           密码,不过不可能识别图片上的字母,唯有人能鉴定识别,所以相称的速度会放慢。还有的会记录报到IP,借使IP频仍转移就会议及展览开提醒。还有银行会限制输入次数。

Oracle
sql: 4天
plsql: 2天
proc: 2天

Oracle
sql: 4天
plsql: 2天
proc: 2天

1.数据库操作语言

SQL(struct query language)
select 语句
DDL(数据定义语句)
create table
drop table
alter table
DML语句(数据操作语言)
insert
delete
updata
TCL 事物控制语言(transation)
commit
rollback
savepoint

作用

限定表中的多少再次来到  符合where前边的规范的多寡就会被选中,不吻合where条件的语句会被过滤掉

  1. 数据库介绍
    1.壹 数据库简介
    壹.1.1 数据管理技术的上进
    事在人为管理阶段:20世纪50年份早先时期此前

    文本管理阶段:20世纪的50时代中期到60年间中叶
    缺陷:数据冗余
    多少的不确切
    数码里面包车型大巴联系弱
    数据库管理阶段:
    数据库技术诞生的三大标志性事件:
    1968年,IBM公司—> IMS
    1九陆7年,DBTG公布了壹层层的告知—> 标准和规范
    196八年,IBM的商讨员E.F.Codd 宣布了一名目繁多故事集
    提议了关乎模型
    特点:选用复杂的结构化的数据模型
    低于的冗余度
    数据完整性
    数据库系统为用户提供了便利的接口
    控制效果:
    并发控制
    数据库的复原
    安全性
    系统更灵活
    消息处理格局不在以程序为中央,而是以数量为主导

    一.壹.二 和数据库相关的多少个术语
    多少(data):数据仓库储存款和储蓄的中坚目的,包罗文字、图形、声音、摄像等
    数据库(database):长时间积存在总计机内、有协会、可共享的豁达数指标聚集
    数据库管理种类(DBMS):是置身操作系统和用户之间的一层应用程序,科学的集体、存款和储蓄数据,高效的拿走和怜惜数据
    数据库系统(DBS):
    由数据库、数据库管理种类、应用程序和数据库管理员(或用户)
    组成的系统。
    数据库管理员: DBA

    一.壹.三 关周详据库
    用二维表保存数据的数据库
    表头 字段


    字段值

  1. 数据库介绍
    一.1 数据库简介
    一.一.1 数据管理技术的前行
    事在人为管理阶段:20世纪50时代后期此前

    文本管理阶段:20世纪的50时代末期到60年间中叶
    缺点:数据冗余
    多少的不标准
    数码里面包车型地铁联系弱
    数据库管理阶段:
    数据库技术诞生的三大标志性事件:
    1968年,IBM公司—> IMS
    1970年,DBTG发表了壹多元的告知—> 标准和规范
    壹九陆玖年,IBM的商讨员E.F.Codd 发布了1体系诗歌
    建议了关系模型
    特征:接纳复杂的结构化的数据模型
    低于的冗余度
    数据完整性
    数据库系统为用户提供了便利的接口
    支配成效:
    并发控制
    数据库的东山再起
    安全性
    系统越来越灵敏
    新闻处理格局不在以程序为着力,而是以数量为主旨

    1.一.2 和数据库相关的几个术语
    数据(data):数据库存款和储蓄的核心对象,包涵文字、图形、声音、录像等
    数据库(database):长时间积存在电脑内、有团体、可共享的大方多少的集合
    数据库管理连串(DBMS):是放在操作系统和用户之间的一层应用程序,科学的公司、存款和储蓄数据,高效的拿走和维护数据
    数据库系统(DBS):
    由数据库、数据库管理体系、应用程序和数据库管理员(或用户)
    组成的体系。
    数据库管理员: DBA

    一.1.3 关周全据库
    用二维表保存数据的数据库
    表头 字段


    字段值

贰.字段类型

CHAMurano 固定长度字符串 最大尺寸3000 bytes
VA讴歌ZDXCHA奥迪Q5贰 可变长度的字符串最大尺寸6000bytes可做索引的最大尺寸74九
NCHA奥德赛 根据字符集而定的定势长度字符串 最大长两千 bytes
NVA中华VCHAGL450二 依据字符集而定的可变长度字符串 最大尺寸6000 bytes
DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严峻测试,无千虫难点
LONG 超长字符串 最大尺寸2G(23一-一) 丰硕存款和储蓄大部头文章
RAW 固定长度的贰进制数据 最大尺寸2000 bytes 可存放多媒体图象声音等
LONG RAW 可变长度的二进制数据 最大尺寸二G 同上
BLOB 2进制数据 最大尺寸肆G
CLOB 字符数据 最大尺寸4G
NCLOB 依照字符集而定的字符数据 最大尺寸四G
BFILE 存放在数据库外的二进制数据 最大尺寸4G
ROWID 数据表中记录的绝无仅有行号 十 bytes
********.****.****格式,*为0或1
NROWID 二进制数据表中记录的唯1行号 最大尺寸伍仟 bytes
NUMBELacrosse(P,S) 数字类型 P为整数位,S为小数位
DESpiriorL(P,S) 数字类型 P为整数位,S为小数位
INTEGEKuga 整数类型 小的平头
FLOAT 浮点数类型 NUMBEXC90(3捌),双精度
REAL 实数类型 NUMBE奥德赛(6叁),精度越来越高
说明:
如:number(伍,2),则那个字段的最大值是9玖,99九,若是数值高于了位数限制就会被截取多余的位数。

如:number(伍,贰),但在壹行数据中的这些字段输入575.31陆,则着实保存到字段中的数值是575.3二。

如:number(叁,0),输入57五.316,真正保存的数目是575。

七个终端条件

/*这是永真条件*/   (数据库里可以有注释,这里是多行注释)
where  1 = 1 ; (用一个等号判断相不相等,因为这里是不存在赋值的,没有“= =”)
- -  这是永假条件(数据库里可以有注释,这里是单行注释,注释符和注释之间要有空格)
where  1 = 2 ;

 997755.com澳门葡京 1

一.贰 主流的关系型数据库产品
商业型
Oracle Oracle(甲骨文) 10g 11g 12c
DB2 IBM
sql server 微软
sybase
开源
mysql Oracle

壹.二 主流的关系型数据库产品
商业型
Oracle Oracle(甲骨文) 10g 11g 12c
DB2 IBM
sql server 微软
sybase
开源
mysql Oracle

3.取别名

1.二个字段可能表明式只好有四个别称
外号会自动处理成大写
select salary sal,salary*13 “Year Sal”
from s_emp;
二.sql中如何表达字符串
sql中的字符串使用 单引号表明
” ‘ ‘ ‘a’ ‘hello world’
select first_name from s_emp;
oracle复习整理。叁 字符串拼接符号 || (oracle)
select first_name||last_name name
from s_emp;

演示:列出各样职员和工人的id 和salary   供给出示符合salary等于1400的职工

select id, salary from s_emp where salary=1400

997755.com澳门葡京 2

1.3 sql语言
SQL(Structured Query Language): 结构化查询语言
SQL分为:
数据查询语言(DQL): select
用来查询数据中的数据 使用最常见、语法最灵敏
数码操作语言(DML): insert delete update
用来改变数据库中的数据
数码定义语句(DDL): create drop alter
用来创设、删除、修改数据库对象
事情控制语句(TCL): commit rollback savepoint
用来保险数据的1致性
数据控制语句(DCL): grant、revoke、create user
用来施行权限的予以和回收、创制用户等

1.3 sql语言
SQL(Structured Query Language): 结构化查询语言
SQL分为:
数量查询语言(DQL): select
用来询问数据中的数据 使用最广泛、语法最灵敏
数量操作语言(DML): insert delete update
用来改变数据库中的数据
数量定义语句(DDL): create drop alter
用来创立、删除、修改数据库对象
政工控制语句(TCL): commit rollback savepoint
用来保险数据的1致性
数据控制语句(DCL): grant、revoke、create user
用来实施权限的赋予和回收、成立用户等

四.空值的处理

空值处理函数 nvl(par壹,par二)
能够拍卖别的类型的多寡 但供给
par1和par二的类型要保持一致
本条函数 当par一为NULL时就赶回par贰
的值要是不为NULL就回来par一本身
NULL值要赶紧处理
select salary,
salary12(1+
nvl(commission_pct,100)/100)
from s_emp;
把各种职员和工人的 id first_name
manager_id呈现出来 尽管manager_id
是NULL就把manager_id 显示成-1
select id,first_name,
nvl(manager_id,-1)
from s_emp;

字符串条件的表述

一.四 远程登录服务器
1.4.1 开发工具
sql*plus
sqlplus:oracle提供,和数据库举行互动的工具
指令提示符下的工具
oracle sqldeveloper: 可视化学工业具

壹.肆 远程登录服务器
一.肆.1 开发工具
sql*plus
sqlplus:oracle提供,和数据库举行互相的工具
一声令下提醒符下的工具
oracle sqldeveloper: 可视化工具

伍.歪曲查询

通配符:
% 0-n个随机字符
_ 三个随机字符

  where  name like '李%';
  where  name like '%龙%'
  where  name like '_龙%'

演示:须要出示first_name 是Carmen的员工,列出id  first_name salary 

select id, first_name, salary from s_emp where first_name='Carmen'

997755.com澳门葡京 3

注意:早晚要加’ ‘代表那是字符串值

  1.4.2 远程登录
    第一步:远程登录服务器
        telnet  ip
        用户名:
        密码:

    第二步:使用sqlplus工具
      sqlplus
      输入用户名:
      输入密码:

    现场班:
    telnet 172.60.5.80     或172.60.5.81
    用户:oracle
    密码:   oracle

    sqlplus
    输入用户名: openlab
    输入密码: open123

    SQL>
    sqlplus命令:可以不以分号结尾
    sql语句: 必须以分号结尾(学习的内容)
  1.4.2 远程登录
    第一步:远程登录服务器
        telnet  ip
        用户名:
        密码:

    第二步:使用sqlplus工具
      sqlplus
      输入用户名:
      输入密码:

    现场班:
    telnet 172.60.5.80     或172.60.5.81
    用户:oracle
    密码:   oracle

    sqlplus
    输入用户名: openlab
    输入密码: open123

    SQL>
    sqlplus命令:可以不以分号结尾
    sql语句: 必须以分号结尾(学习的内容)

陆.数量排序

一.数码的排序
1.1 概念
按部就班一定标准 和 排序格局 对数据
进展排列。
1.2 语法
order by 排序标准 排序格局;
order by 排序标准 排序情势,
1.3
NULL值在排序中什么处理
NULL值在排序中遵循最大值处理

广阔的运算符

= 等于   != 不等于    >大于   < 小于    <= 小于等于   …………….

一.5 描述表结构
sqlplus命令:desc
desc 表名[;]
desc s_emp;

壹.5 描述表结构
sqlplus命令:desc
desc 表名[;]
desc s_emp;

7.单行函数

二.单行函数
2.1 概念
单行函数:针对sql语句影响的每1行
都举办处理并针对那1行再次来到3个
结果。sql语句影响多少行就回去
稍微个结实。
组函数:对sql语句影响的兼具行综合
处理 最终回到贰个结出。无论sql
语句影响多少行只回去几个结出。
(组函数会忽略空值)

 sql提供的运算符

Name Null? Type

Name Null? Type

八.多表查询连接类型

四.5 sql9九中规定的上下连接
上面五个分外
4.5.一 sql9玖的内接连:
from a表 join b表 on 连接条件;
from a表 inner join b表
on 连接条件;
列出每一个机构的名字和相应的地区名
s_dept s_region
select d.name,r.name
from s_dept d,s_region r
where d.region_id=r.id;
select d.name,r.name
from s_dept d join s_region r
on d.region_id=r.id;

宣布三个闭区间[a , b] 

where  字段  between a  and  b ;  (字段在闭区间a到b内)

a  b的一1不能错



九.多表查询计算

表stu
id name
1, Jack
2, Tom
3, Kity
4, nono

表exam
id grade
1, 56
2, 76
11, 89

内连接(显示两表相配的id)
select stu.id, exam.id, stu.name, exam.grade from stu inner join exam on
stu.id = exam.id
1 1 Jack 56
2 2 Tom 76

左连接(展现join左侧表的享有数据)
select stu.id, exam.id, stu.name, exam.grade from stu left join exam on
stu.id = exam.id
1 1 Jack 56
2 2 Tom 76
3 NULL Kity NULL
4 NULL nono NULL

右连接(展现join右侧表的持有数据)
select stu.id, exam.id, stu.name, exam.grade from stu right join exam on
stu.id = exam.id
1 1 Jack 56
2 2 Tom 76
NULL 11 NULL 89

内连接取交集
外连接(左连接,右连接)
左连接左边的全取
右连接左边的全取

演示:写程序查询,把s_emp表中id  first_name salary  显示;要求salary在[1450,2500 ] 中。

select id, first_name, salary from s_emp where salary between 1450 and 2500

997755.com澳门葡京 4

      注意:无法把2500和1450交替地点,编写翻译不会有错,但逻辑有错)

ID 职员和工人编号 NOT NULL NUMBE汉兰达(7)
LAST_NAME 姓 NOT NULL VARCHAR2(25)
FIRST_NAME 名 VARCHAR2(25)
USERID VARCHAR2(8)
START_DATE 入职日期 DATE
COMMENTS VARCHAR2(255)
MANAGER_ID 领导编号 NUMBE哈弗(七)
TITLE 职位 VARCHAR2(25)
DEPT_ID 部门编号 NUMBE君越(7)
SALARY 工资 NUMBER(11,2)
COMMISSION_PCT 提成 NUMBER(4,2)

ID 职员和工人编号 NOT NULL NUMBE奥迪Q伍(柒)
LAST_NAME 姓 NOT NULL VARCHAR2(25)
FIRST_NAME 名 VARCHAR2(25)
USERID VARCHAR2(8)
START_DATE 入职日期 DATE
COMMENTS VARCHAR2(255)
MANAGER_ID 领导编号 NUMBE福特Explorer(7)
TITLE 职位 VARCHAR2(25)
DEPT_ID 部门编号 NUMBE中华V(七)
SALARY 工资 NUMBER(11,2)
COMMISSION_PCT 提成 NUMBER(4,2)

十.SQl语句的推行顺序

三.陆 sql 语句的执行种种
select
from
where
group by
having
order by
依据单位号分组 总结每种部门的总人口
渴求出示部门人数大于贰的部门 还供给
依照人口举办排序。
select dept_id,count(id) ac
from s_emp
group by dept_id
having count(id)>2
order by ac;

各样是这样的:
from
where
group by
having
select
order by

where  字段  in(值1,值2,值3)

其一字段的值等于个中的贰个值(只要有贰个约等于就重返), 交流值的逐条可能有影响,也可能未有影响。若值的几率都1模1样就不曾影响(就按1个原理写(比如从小到大),那样不易于遗漏)。若不壹致,则把可能率高的值放在日前(人为的),那样查询效能高(因为各种数据都要挨个和给的值比较,只要有三个等同就赶回)

Name:表中的字段名
Null? 该字段是或不是同意为空
NOT NULL:分歧意为空
Type: 字段的数据类型
number(p,s) 数字类型
p: 有效数字的位数(从第3个非零数字开端)
1<=p<=38 默认38
s: 精度
-84<=s<=127
number —> number(38,0)
number(p) —-> number(p,0)
number(p,s)
varchar2(n) 变长字符串 n不能够省略 壹~4000bytes
char(n) 定长字符串 n暗许为壹 1~2000bytes

Name:表中的字段名
Null? 该字段是不是同意为空
NOT NULL:不允许为空
Type: 字段的数据类型
number(p,s) 数字类型
p: 有效数字的位数(从第三个非零数字开首)
1<=p<=38 默认38
s: 精度
-84<=s<=127
number —> number(38,0)
number(p) —-> number(p,0)
number(p,s)
varchar贰(n) 变长字符串 n无法省略 一~4000bytes
char(n) 定长字符串 n暗中同意为一 一~2000bytes

1壹.having group by 的用法和实际意义

因而采取GROUP BY 子句,可以让SUM 和 COUNT
那些函数对属于一组的数额起成效。当您钦定 GROUP BY region 时,
属于同七个region(地区)的一组数据将不得不回去一行值,也正是说,表中有着除region(地区)外的字段,只好通过
SUM, COUNT等聚合函数运算后回到贰个值。 
 HAVING子句能够让大家筛选成组后的各组数据,WHERE子句在集合前先筛选记录.也正是说效用在GROUP
BY 子句和HAVING子句前.  而
HAVING子句在集聚后对组记录进行筛选。  让大家依然通过具体的实例来掌握GROUP
BY 和 HAVING 子句,还使用第3节介绍的bbc表。
  SQL实例:  壹、展现种种地点的总人口数和总面积:
SELECT region, SUM(population), SUM(area)FROM bbcGROUP BY region 
 先以region把再次回到记录分成三个组,那就是GROUP
BY的字面意思。分完组后,然后用聚合函数对每组中的不相同字段(一或多条记下)作运算。

演示:写一个询问,把s_emp表中部门标号是3一要么3贰要么50 部门的职员和工人id first_name  dept_id显示出来

select idm first_name, dept_id from s_emp where dept_id in(31, 32, 50)

 997755.com澳门葡京 5

        date    日期
        date    日期

1二.DDL追加字段和删除字段修改表结构

alter table emp9520bdl
drop column salary; //删除salary字段
alter table emp9520bdl
add salary number;//增加salary字段

破绽百出查询  like(像)+ 通配符

数据Curry:

    • “%”为通配符,代表0 – n个随机字符
    •  “-”代表3个专断字符

e.g.  李四 李通古  李思  李世民 (查找出姓李的)

Where  name  like  ‘李%’;

e.g.  李小龙(Li xiaolong) 小龙女  龙猫  (查找出富有带龙的)

Where  name  like  ‘%龙%;

(找出中间带龙的)where  name like  ‘_龙%’;
  1. select语句
    二.一 几个概念
    选拔:选中部分行,全体列
    阴影:选中全体行,部分列
    表连接:必要的数量来源于于多张表
    2.二 select语句的子句
    骨干的查询语句: select..from
    where子句
    order by子句
    单行函数
    表连接
    组函数和分组
    子查询
  1. select语句
    二.1 几个概念
    慎选:选中部分行,全部列
    黑影:选中全体行,部分列
    表连接:须求的数额来源于于多张表
    二.二 select语句的子句
    焦点的查询语句: select..from
    where子句
    order by子句
    单行函数
    表连接
    组函数和分组
    子查询

演示:查询s_emp表中first_name,找出富有带a(小写a)的

select first_name from s_emp where first_name like '%a%'

997755.com澳门葡京 6

 

数据库中有一张表user_tables(数据字典,存的都是大写)存了全数表的音讯。例如s_emp  s_dept 等

desc user

997755.com澳门葡京 7

3.select..from语句
select 字段列表 from 表名;
三.一 列出表中多少个字段
select 字段名 from 表名;
— 列出装有职员和工人的薪俸
select salary from s_emp;

3.select..from语句
select 字段列表 from 表名;
三.一 列出表中贰个字段
select 字段名 from 表名;
— 列出具有职员和工人的工钱
select salary from s_emp;

演示:从user_tables中找出全体以‘S_’伊始的表名

注意:要对‘_’举行转义处理,用‘\_’表示下划线,再加escape  ‘ \
’  代表是‘\’ 前面包车型大巴始末实行转义处理

select table_name from user_tables where table_name like 'S\_%'

997755.com澳门葡京 8

三.二 列出表中的四个字段
select 字段名,字段名,…. from 表名;
— 列出职员和工人的号子、名字、职位、报酬
select id,first_name,title,salary from s_emp;

三.贰 列出表中的八个字段
select 字段名,字段名,…. from 表名;
— 列出职员和工人的号码、名字、职位、薪金
select id,first_name,title,salary from s_emp;

NULL值的判断

where  字段  is NULL ;

3.3 列出表中全部字段
  --
  select id,last_name,first_name,userid,..... from s_emp;
  -- 使用 * 代替所有字段
  select * from s_emp;

3.4 算数运算   一般指的是数字类型
  +  -  *   /  
  -- 列出员工的信息,包括编号、名字、工资、年收入
  12*salary + 1000
  select id,first_name,salary,12*salary+1000 from s_emp;

3.5 字段或表达式 命名 别名
  3.5.1 语法
   字段或表达式 [as] 别名
   select id,first_name as name,salary,
       12*salary+1000 yearsal  from s_emp;
  3.5.2 使用 "" 
    -- 屏蔽特殊字符或关键字等
    select id,first_name as name,salary,
       12*salary+1000 "year sal"  from s_emp;
    -- 大小写敏感
    select id,first_name as name,salary,
       12*salary+1000 "YearSal"  from s_emp;
3.3 列出表中全部字段
  --
  select id,last_name,first_name,userid,..... from s_emp;
  -- 使用 * 代替所有字段
  select * from s_emp;

3.4 算数运算   一般指的是数字类型
  +  -  *   /  
  -- 列出员工的信息,包括编号、名字、工资、年收入
  12*salary + 1000
  select id,first_name,salary,12*salary+1000 from s_emp;

3.5 字段或表达式 命名 别名
  3.5.1 语法
   字段或表达式 [as] 别名
   select id,first_name as name,salary,
       12*salary+1000 yearsal  from s_emp;
  3.5.2 使用 "" 
    -- 屏蔽特殊字符或关键字等
    select id,first_name as name,salary,
       12*salary+1000 "year sal"  from s_emp;
    -- 大小写敏感
    select id,first_name as name,salary,
       12*salary+1000 "YearSal"  from s_emp;

演示:把s_emp表中提成是十的职工的id  first_name commission_pct呈现出来

select id, first_name, commission_pct from s_emp where commission_pct=10

  997755.com澳门葡京 9

3.六 sql中的字符串
三.陆.一 字符串的象征方法
单引号:”
‘a’ ‘Hello world’
3.陆.二 字符串的拼凑
||
— 把职员和工人的first_name和last_name拼接起来
select id,first_name||last_name as name from s_emp;
— 把职工的first_name和last_name之间拼接二个 .
select id,first_name||’.’||last_name as name
from s_emp;
— 把职员和工人的first_name和last_name之间拼接多个 ‘
利用转义字符:’
select id,first_name||””||last_name as name
from s_emp;

叁.6 sql中的字符串
三.6.1 字符串的象征方法
单引号:”
‘a’ ‘Hello world’
3.六.2 字符串的拼凑
||
— 把职工的first_name和last_name拼接起来
select id,first_name||last_name as name from s_emp;
— 把员工的first_name和last_name之间拼接3个 .
select id,first_name||’.’||last_name as name
from s_emp;
— 把职工的first_name和last_name之间拼接三个 ‘
行使转义字符:’
select id,first_name||””||last_name as name
from s_emp;

演示:把s_emp表中提成不是拾的职工的id first_name  commission_pct突显出来。

select id, first_name, commission_pct from s_emp where commission_pct!=10

997755.com澳门葡京 10

按理说来说,①共有27人,不为十的人相应是拾柒个的,不过此地唯有3个。那是因为,基本的论断对空值是对事情未有什么益处的,必须引进is  NULL对控制举办判断所以要:

select id, first_name, commission_pct from s_emp where commoission_pct is NULL

997755.com澳门葡京 11

      当然也能够组成nvl,可是用is
NULL是规范用法。

3.七 NULL值的拍卖
— 总计职员和工人的年收入,思念提成
12salary + 12salarycommission_pct/100
12
salary(1+commission_pct/100)
— 上面语句的结果集是不当的
select id,first_name,title,
12
salary*(1+commission_pct/100) as yearsal
from s_emp;
NULL值到场运算的表明式的结果为空

叁.七 NULL值的处理
— 计算职员和工人的年收入,思量提成
12salary + 12salarycommission_pct/100
12
salary(1+commission_pct/100)
— 上边语句的结果集是似是而非的
select id,first_name,title,
12
salary*(1+commission_pct/100) as yearsal
from s_emp;
NULL值参预运算的表达式的结果为空

条件连接符号

  • and  逻辑与
  • or   逻辑或
  • not  非
  使用函数 nvl 处理NULL值
  nvl(par1,par2) : 当par1不为空,返回par1
                            放par1为空,返回par2
  nvl(12*salary*(1+commission_pct/100),12*salary)
  12*salary*(1+nvl(commission_pct,0)/100)

  select id,first_name,salary,
      12*salary*(1+nvl(commission_pct,0)/100) as yearsal
         from s_emp;
  使用函数 nvl 处理NULL值
  nvl(par1,par2) : 当par1不为空,返回par1
                            放par1为空,返回par2
  nvl(12*salary*(1+commission_pct/100),12*salary)
  12*salary*(1+nvl(commission_pct,0)/100)

  select id,first_name,salary,
      12*salary*(1+nvl(commission_pct,0)/100) as yearsal
         from s_emp;

演示:(一)写程序查询,把s_emp表中id  first_name salary  显示;要求salary在[1450,2500 ] 中。(between 。。。and。。。)

select id, first_name ,salary from s_emp where salary>=1450 and salary<=2500

997755.com澳门葡京 12

用那个尤其富有通用性,可以是开区间。

3.8 排重 distinct
— 列出职员和工人的职位
select distinct title from s_emp;
997755.com澳门葡京,– 多列排重
select distinct title,dept_id from s_emp;

3.8 排重 distinct
— 列出职员和工人的职分
select distinct title from s_emp;
— 多列排重
select distinct title,dept_id from s_emp;

(贰)写贰个询问,把s_emp表中部门标号是3一要么3二要么50 部门的职员和工人id first_name  dept_id展现出来(五.6.二里的in(。。,。。,。。))

select id, first_name, dept_id from s_emp where dept_id-31 or dept_id-32 or dept_id=50

997755.com澳门葡京 13

此间多个都以等价的,不设有顺序难题。

  • >  的相持面是  <=
  •  <  的周旋面是  >=
  •  =  的对峙面是  !=   ^=   < >  (都以不等于)
  •  between a  and  b  的周旋面是  not between  a  and  b
  •  in  的相持面是  not  in
  •  like  的周旋面是  not like
  •  is  null  的相持面是  is not  null(唯有最后三个不用理会空值,上边的都要专注空值)
  1. where子句
    select …
    from ..
    where 条件;
    4.1 作用
    听别人说规则对表中的数额进行筛选,挑选出符合条件的行
    4.2 数字类型的规格
    — 列出薪给高于1400的职工的音信
    select id,first_name,salary from s_emp
    where salary>1400;
    四.三 字符串类型的准绳
    — 列知名叫’Ben’的职工的新闻
    select id,first_name,salary from s_emp
    where first_name = ‘Ben’; — 有一行结果
    select id,first_name,salary from s_emp
    where first_name = ‘ben’; — 未有结果
    — sql中没有 ==
    — sql中不区分轻重缓急写,不过字符串的值是分别的
    四.四 比较运算符
    > < >= <= = !=(<> ^=)
    四.5 sql提供的运算符
    4.五.一 表示七个闭区间 [a,b]
    between a and b
    — 列出工资在[1100,1550] 之间的职工的新闻
    select id,first_name,salary from s_emp
    where salary between 1100 and 1550;

    四.伍.二 表示三个列表
    in(值1,值2,…)
    address in(‘北京’,’上海’,’广州’)
    — 列出单位编号为 3一,42,50的职工的消息
    select id,first_name,dept_id from s_emp
    where dept_id in(31,42,50);

    四.5.三 模糊查询
    like ‘包罗通配符的字符串’

      通配符:
      %: 任意长度的任意字符
      _:  一位任意字符
    
      StuName  like '李_%'
    
      -- 列出first_name首字母为'M'的员工的信息
      select id,first_name from s_emp
        where first_name like 'M%';
      -- 列出first_name第二个字母为'a'的员工的信息
      select id,first_name from s_emp
        where first_name like '_a%';
    
      user_tables: 数字字典 保存当前用户的所有表的信息
      desc user_tables;
      -- 列出user_tables中以'S_'开头的表的信息
      select table_name from user_tables
             where table_name like 'S_%';
      -- 使用转义字符  escape
      select table_name from user_tables
             where table_name like 'S\_%' escape '\';
    

    4.5.4 空值的判断
    is null

    -- 列出manager_id为空的员工的信息
    select id,first_name,title from s_emp
         where manager_id = null;
    select id,first_name,title from s_emp
         where manager_id != null;
       -- 使用=或!=判断null值,结果永远为假
    
     select id,first_name,title from s_emp
         where manager_id is null;
    
  1. where子句
    select …
    from ..
    where 条件;
    4.1 作用
    据说标准对表中的多少开始展览筛选,挑选出符合条件的行
    四.2 数字类型的基准
    — 列出薪给超过1400的职员和工人的音信
    select id,first_name,salary from s_emp
    where salary>1400;
    四.三 字符串类型的原则
    — 列著名叫’Ben’的职工的音讯
    select id,first_name,salary from s_emp
    where first_name = ‘Ben’; — 有一行结果
    select id,first_name,salary from s_emp
    where first_name = ‘ben’; — 未有结果
    — sql中没有 ==
    — sql中不区分轻重缓急写,可是字符串的值是分其余
    四.四 相比运算符
    > < >= <= = !=(<> ^=)
    4.伍 sql提供的运算符
    四.伍.1 表示多少个闭区间 [a,b]
    between a and b
    — 列出薪给在[1100,1550] 之间的员工的音讯
    select id,first_name,salary from s_emp
    where salary between 1100 and 1550;

    四.5.2 表示三个列表
    in(值1,值2,…)
    address in(‘北京’,’上海’,’广州’)
    — 列出机关编号为 31,4二,50的职工的音信
    select id,first_name,dept_id from s_emp
    where dept_id in(31,42,50);

    4.五.三 模糊查询
    like ‘包含通配符的字符串’

      通配符:
      %: 任意长度的任意字符
      _:  一位任意字符
    
      StuName  like '李_%'
    
      -- 列出first_name首字母为'M'的员工的信息
      select id,first_name from s_emp
        where first_name like 'M%';
      -- 列出first_name第二个字母为'a'的员工的信息
      select id,first_name from s_emp
        where first_name like '_a%';
    
      user_tables: 数字字典 保存当前用户的所有表的信息
      desc user_tables;
      -- 列出user_tables中以'S_'开头的表的信息
      select table_name from user_tables
             where table_name like 'S_%';
      -- 使用转义字符  escape
      select table_name from user_tables
             where table_name like 'S\_%' escape '\';
    

    4.5.四 空值的判断
    is null

    -- 列出manager_id为空的员工的信息
    select id,first_name,title from s_emp
         where manager_id = null;
    select id,first_name,title from s_emp
         where manager_id != null;
       -- 使用=或!=判断null值,结果永远为假
    
     select id,first_name,title from s_emp
         where manager_id is null;
    

 演示:找出manager_id不是空的职工,列出id  first_name manager_id

select id, first_name, manager_id from s_emp where manager_id is not null

997755.com澳门葡京 14

肆.陆 sql中的逻辑运算符
and or not
— 使用and改写 between and 案例
列出薪金在[1100,1550]里头的职工的音信
select id,first_name,salary from s_emp
where salary between 1100 and 1550;
select id,first_name,salary from s_emp
where salary>=1100 and salary<=1550;

四.陆 sql中的逻辑运算符
and or not
— 使用and改写 between and 案例
列出报酬在[1100,1550]里头的职工的音信
select id,first_name,salary from s_emp
where salary between 1100 and 1550;
select id,first_name,salary from s_emp
where salary>=1100 and salary<=1550;

标准化优先的标题  要事先的1对加括号

  -- 使用or改写 in 案例
      列出编号为31,42,50的部门的员工的信息
      select id,first_name,dept_id from s_emp
             where dept_id in(31,42,50);
      select id,first_name,dept_id from s_emp
             where dept_id=31 or dept_id=42 or dept_id=50;


   对立面:
   >                            <=
   <                            >=
   =                            !=(<> ^=)

   between and          not between and
   in           not in(注意NULL值)
   like         not like
   is null          is not null

   -- 列出有提成的员工的信息
   select id,first_name,commission_pct from s_emp
       where commission_pct is not null;
  -- 使用or改写 in 案例
      列出编号为31,42,50的部门的员工的信息
      select id,first_name,dept_id from s_emp
             where dept_id in(31,42,50);
      select id,first_name,dept_id from s_emp
             where dept_id=31 or dept_id=42 or dept_id=50;


   对立面:
   >                            <=
   <                            >=
   =                            !=(<> ^=)

   between and          not between and
   in           not in(注意NULL值)
   like         not like
   is null          is not null

   -- 列出有提成的员工的信息
   select id,first_name,commission_pct from s_emp
       where commission_pct is not null;

示范:(1)展现职员和工人salar  dept_id;

  1. order by子句
    5.一 总是出现在一条select语句的最终
    select 字段列表
    from 表名
    where 子句
    ……
    order by子句;
    5.2 语法
    order by 排序标准 排序方式
    排序格局:
    asc 升序 (自然顺序、字典顺序) 暗中同意排序格局
    desc 降序
  1. order by子句
    5.一 总是出未来一条select语句的末段
    select 字段列表
    from 表名
    where 子句
    ……
    order by子句;
    5.2 语法
    order by 排序标准 排序形式
    排序格局:
    asc 升序 (自然顺序、字典顺序) 默许排序方式
    desc 降序

    须求薪资高于一千且部门标号为4一的职工,恐怕单位标号为4贰的职员和工人  

select salary, dept_id from s_emp where salary>1000 and dept_id=41 or dept_id=42

997755.com澳门葡京 15

五.三 依据薪金降序排序,列出dept_id为3一,3贰,3叁的职工的音信
select id,first_name,salary,dept_id from s_emp
where dept_id in(31,32,33)
order by salary desc;

五.叁 根据工资降序排序,列出dept_id为3壹,3二,3三的员工的音信
select id,first_name,salary,dept_id from s_emp
where dept_id in(31,32,33)
order by salary desc;

(2)显示职员和工人salar  dept_id;

5.4 多列排序
  select id,first_name,salary from s_emp
      order by salary;

    order by 排序标准1 排序方式,排序标准2 排序方式
  select id,first_name,salary from s_emp
      order by salary,id desc;
    -- 多列排序时,每一个排序标准的排序方式是自己定义的

 5.5 排序时,默认按照最大值处理
   -- 根据manager_id排序,列出员工的信息
    select id,first_name,manager_id from s_emp
        order by manager_id desc;
5.4 多列排序
  select id,first_name,salary from s_emp
      order by salary;

    order by 排序标准1 排序方式,排序标准2 排序方式
  select id,first_name,salary from s_emp
      order by salary,id desc;
    -- 多列排序时,每一个排序标准的排序方式是自己定义的

 5.5 排序时,默认按照最大值处理
   -- 根据manager_id排序,列出员工的信息
    select id,first_name,manager_id from s_emp
        order by manager_id desc;

       需求机关标号为四一的职工,恐怕为4二的职员和工人里薪俸高于1000的

select salary, dept_id from s_emp where salary>1000 and (dept_id=41 or dept_id=42)

997755.com澳门葡京 16 

—————————————————————–总结
一.数据库介绍
sql语言
sqlplus的命令:desc
数据类型
2.select语句
3.select…from
4.where子句
比较运算符:> < >= <= = !=(<> ^=)
sql提供的运算符
between and
in
like
is null
sql中的逻辑运算符
and or not

—————————————————————–总结
一.数据库介绍
sql语言
sqlplus的命令:desc
数据类型
2.select语句
3.select…from
4.where子句
比较运算符:> < >= <= = !=(<> ^=)
sql提供的运算符
between and
in
like
is null
sql中的逻辑运算符
and or not

  1. order by子句
  1. order by子句


练习:

练习:

  1. 查看s_dept和s_region表的表结构
  2. 查询s_dept和s_region表中的数据
  3. 计量职员和工人的年收入,列出年收入当先一四千的职员和工人的消息,
    并对年收入实行降序排序。
  1. 查看s_dept和s_region表的表结构
  2. 查询s_dept和s_region表中的数据
  3. 测算职员和工人的年收入,列出年收入超过16000的职员和工人的音讯,
    并对年收入举办降序排序。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website