我的编程空间,编程开发者的网络收藏夹
学习永远不晚

01. Oracle(基础语法)

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

01. Oracle(基础语法)

01. Oracle(基础语法)

1. 函数

1.1 大小写转换函数
函数 描述
LOWER() 全小写
UPPER() 全大写
INITCAP() 首字母大写
1.2 字符串操作函数
函数 描述
concat() 拼接字符串
substr(字段,startIndex,endIndex) 截取字符串
length() 字符串长度
instr(字段,"字符") 指定字符出现的位置索引
trim() 取出指定字符前后的空格
1.3 数字操作函数
函数 描述
round(参数,保留几位) 向上取整
trunc(参数,保留几位) 直接取整,不四舍五入
mod(x,y) x除以y的余数
1.4 日期函数
函数 描述
add_months(date,n) 在日期date上加上一个n月
lastday(date) 返回指定日期当前月的最后一天
round(date,[fmt]) 返回一个一fmt为格式的四舍五入
trunc(date,[fmt]) 不对日期进行舍入,直接进行截取
extract(fmt from date) 提取日期中的特定部分
sysdate 返回当前系统时间
  • fmt:
    • YEAR: 摄入某年的1月1日,几千半年舍去,后半年作为下一个月
    • MONTH: 摄入到某年的1日,即前月舍去,后半月作为下一个月
    • DDD: 默认,月中的某一天,最靠近的天,前半天舍去,后半天作为第二天
    • DAY: 舍入到最近的周的周日,即上半周舍去,下半周作为下一周周日
    • 注意:
      • YEAR,MONTH,DAY可以为DATE类型匹配
      • HOUR,MINUTE,SECOND必须与TIMESTAMP类型匹配
      • HOUR匹配的结果没有加上时区,因此在中国运行的结果小8小时
1.5 转换函数
函数 描述
to_char(date | number,[ fmt ]) 把日期或字符串转为特定的字符串
to_date(x,[ fmt ]) 把一个字符串以fmt转换成一个日期类型
to_number(x,[ fmt ]) 把一个字符串以fmt格式转换成一个数字
  • 日期格式化元素:
    • YYYY: 4位数表示的年份
    • YEAR: 英文描述的年份
    • MM: 2位数表示的月份
    • MONTH: 英文描述的月份
    • MON: 三个字母的英文描述月份简称
    • DD: 2位数表示的日期
    • DAY: 英文表示的星期几
    • DY: 三个字母的英文描述的星期几的简称
    • HH24:MI:SS : 时分秒的格式化
    • DDspth: 英文描述的月中第几天
    • fm: 格式化关键字,可选
1.6 其他单行函数
函数 描述
nvl(x,value) 如果x为空,返回value,否则返回x
nvl2(x,value1,value2) 如果x为空,返回value1,否则返回value2
1.7 聚合函数
函数 描述
avg() 平局值
sum() 求和
min() 最大值
max() 最小值
count() 计数
1.8 条件表达式
  • case...when...then...else...end: 相当于 if...else if...else

    -- 写法一: 直接跟字段
    case 字段 when 值1 then 结果1
    	when 值2 then 结果2
    		else 结果三 end
    -- 写法二: 跟判断语句
    case when 条件判断1 then 结果1
    	when 条件判断2 then 结果2
    		else 结果3 end
    
  • decode:

     decode(字段1,"值1",结果1,"值2",结果2,结果3)
    

2. 视图

  • 定义:
    • 当我们多次使用同一个复杂复杂语句进行查询时,我们不想每次都写很复杂的语句,就可以创建视图
  • 优点:
    • 提供了另一种级别的表安全性
    • 隐藏了数据的复杂性
    • 简化了SQL命令
    • 隔离基表的改变
  • 语法:
    • 创建视图:
      • CREATE ViEW 视图名 AS sql查询语句
    • 删除视图:
      • DORP VIEW 视图名
    • 修改视图:
      • UPDATE VIEW 视图名 WHERE 条件
    • 查询视图:
      • SELECT * FROM 视图名

3. 集合操作

方法 描述
UNION 取出重复记录
UNION ALL 保留重复记录
INTERSECT 取交集
MINUS 取差集
  • 语法:

    • select语句 集合操作方法 select语句

4. 连接查询

  • (+): oracle特有方式,未被标记的一方会被作为基表
    -- 相当于左外连接
    select * from a,b where a.id = b.id(+)
    -- 相当于右外连接
    select * from a,b where a.id(+) = b.id
    

5. 排序操作

  • 将结果集中的null放在最前或最后: nulls first/nulls last
    • null 默认
    • 书写在order by 之后

6. 序列操作

  • 相当于MySql中的自动增长序列

    • 完整写法:

      • create sequence 序列名
      • start with 5 ---从5开始
      • increment by 2 ---每次增长2
      • maxvalue 20 ---最大值20
      • cycle ---可循环
      • cache 5 ---缓存5
    • 创建序列:

      • create sequence 序列名
    • 查询序列:

      • select * from emp
        • 当前值: currval
        • 下一个值: nextval
    • 删除序列:

      • drop sequence 序列名

7. 索引

  • 提高检索的速度

    • 大数据才创建索引,为经常用到的列创建索引
    • 索引不要超过四层
    • 主键自带索引
    -- 创建索引:
       create index 索引名 on 表名(列)
    -- 删除索引:
       drop index 索引名
    

8. 窗口函数

  • 可以简单理解为分组后的展示所有数据

    row_number()over( partition by "分区字段" order by "分组字段" asc/desc ) 
    

9. sql 练习

drop table emp;
create table emp(
       eid number,
       ename varchar2(224),
       birthday date,
       salary float,
       did number
)

insert into emp values(1,"jack",to_date("2000-1-30 16:20:31","yyyy-mm-dd hh24:mi:ss"),3000.0,2);
insert into emp values(2,"rose",to_date("1999-5-1 17:00:00","yyyy-mm-dd hh24:mi:ss"),5000.0,3);
insert into emp values(3,"admin",to_date("2000-10-1 00:56:59","yyyy-mm-dd hh24:mi:ss"),4000.0,4);
insert into emp values(4,"zhangsan",to_date("1998-1-1 12:30:00","yyyy-mm-dd hh24:mi:ss"),4500.0,1);
insert into emp values(5,"lisi",to_date("1900-4-1 14:07:20","yyyy-mm-dd hh24:mi:ss"),55000.0,null);

drop table dept;
create table dept(
       did number,
       dname varchar2(225)
)
insert into dept values(1,"管理");
insert into dept values(2,"运维");
insert into dept values(3,"人事");
insert into dept values(4,"开发");

-- 字符串处理函数
--  转换大写 upper
select upper("aaa") from emp;

--  转换小写 lower
select lower("AAA") from emp;

--  首字母大写 initcap
select initcap("hello word!!!") from emp;

--  字符串截取 substr
select substr("helloword!!!",0,5) from emp;

--  字符串替换 replace
select replace("helloword!!!","!","?") from emp;

--  字符串长度 length
select length("helloword!!!") from emp;

--   指定字符出现的位置 instr
select instr("hellowword!!!","h") from emp;


--  数值函数
--  四舍五入 round
select round(15.66,-2) from emp;    -- 0
select round(15.66,-1) from emp;    -- 20
select round(15.66,0) from emp;     -- 16
select round(15.66,1) from emp;     -- 15.7
select round(15.66,2) from emp;     -- 15.66

-- 截取 trunc
select trunc(15.66,-2) from emp;    -- 0
select trunc(15.66,-1) from emp;    -- 10
select trunc(15.66,0) from emp;     -- 15
select trunc(15.66,1) from emp;     -- 15.6
select trunc(15.66,2) from emp;     -- 15.66

--  取余数 mod
select mod(20,3) from emp;


--  日期函数
--  查询系统时间 sysdate
select sysdate from emp;

--  查询今年多少岁
select ename,(sysdate - birthday)/365 from emp;

--  查询过了多少月  months_between
select ename,months_between(sysdate,birthday) from emp;

--  查询三个月后的日期 add_months
select ename,birthday,add_months(birthday,3) from emp;

--  转换函数 
--  把当前时间转换成指定格式的字符串  to_char  fm/去零
select to_char(sysdate,"yyyyfm/mm/dd hh24:mi:ss") from emp;
--  将数字转换成字符串
select to_char(99) from emp;

-- 显示成年月日
select to_char(sysdate,"yyyy") || "年" || to_char(sysdate,"mm") || "月" || to_char(sysdate,"dd") || "日" from emp;

--  把字符串转换成日期类型 to_date
select to_date("1999-10-1 15:24:31","yyyy/mm/dd hh24:mi:ss") from emp;

--  将字符串转换成数字 to_number
select to_number("99") from emp;

--  通用函数
--  空值处理函数 nvl /如果为null,返回指定字符
select nvl(ename,"无") from emp;

--  空值处理函数 nv2 /如果buweinull,返回指定字符1/为null,返回指定字符2
select nvl2(ename,"有","无") from emp;


--  条件表达式
--  将指定内容转换成"xxx" decode
select decode(ename,"admin","管理员","其他") from emp;
--  其他方式 case when then end
select case ename when "admin" then "管理员" else "其他" end from emp;

--  查询工资最高的三个人
--  rownum: 给结果集加上一个序列号
select rownum,e.* from (select * from emp order by salary desc) e where rownum <= 3;
select * from (select rownum r,e1.* from (select * from emp order by salary desc) e1 ) e2 
where e2.r > 3 and e2.r <= 6;



--  集合函数
--  交集 intersect/相当于and
select * from emp where ename = "admin"
intersect
select * from emp where salary = 4000.0;

--  并集 union/相当于or
select * from emp where ename = "admin"
union
select * from emp where salary = 5000;

--  差集 minus/第一个结果集减去第二个结果集
select * from emp where ename = "admin"
minus
select * from emp where salary = 4000;


--  exists/如果存在返回true/反之false
--  找出哪一个没有部门信息
select * from emp where exists(select * from dept where emp.did = dept.did)
select * from emp where not exists(select * from dept where emp.did = dept.did)


--  序列  相当于mysql中的自动增长序列,操作失败也会增长

-- 创建序列
create sequence emp_seq;

--  查询序列
select emp_seq.nextval from emp;

--  删除序列
drop sequence emp_seq;


-- 索引

--  创建索引
create index index_ename on emp(ename)

--  删除索引
drop index index_ename;

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

01. Oracle(基础语法)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

01. Oracle(基础语法)

1. 函数1.1 大小写转换函数函数描述LOWER()全小写UPPER()全大写INITCAP()首字母大写1.2 字符串操作函数函数描述concat()拼接字符串substr(字段,startIndex,endIndex)截取字符串length()字符串长度
01. Oracle(基础语法)
2022-03-14

Mysql基础01-语法

数据库数据的存储:将数据放到表中,表再放到库中。一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。表由列组成,我们也称为字段。每个字段描述了它所含有的数据的意义表由列组成,我们也称为字段。每个字段描述了它所含有的数据的意义表中的数据是
Mysql基础01-语法
2021-08-31

Day-01 Python基础

一、Python介绍  Python是一门解释型,弱类型,高级开发编程语言;可广泛应用于众多领域,如:网页开发,数据分析,爬虫等众多领域。  目前Python主要应用领域:云计算、web开发、科学运算、人工智能、系统运维、金融。  Pyth
2023-01-30

01、数据库基础篇

1. 什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系
01、数据库基础篇
2021-07-30

python学习笔记01-基础

数据类型:(1)整数(2)浮点数整数和浮点数在计算机内部存储的方式是不同的(3)字符串字符\本身也要转义,所以\表示的字符就是\Python还允许用r''表示''内部的字符串默认不转义(4)布尔值在Python中,可以直接用True、Fal
2023-01-31

01月25日【Python3 基础知识】

4.1 读写文件 4.2 文件方法 4.3 python2的乱码问题 4.4 python对passwd文件进行排序 4.1 读写文件访问 模式说 明r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。w打开一个文件
2023-01-31

01月23日【Python3 基础知识】

3.1 if/while/for 3.2 解决数学难题 3.3 Python实例 3.1 if/while/for'''#if 判断条件: 执行语句elif 判断条件: 执行语句else: 执行语句#while 判断
2023-01-31

01月26日【Python3 基础知识】

5.1 九宫格 5.2 函数入门 5.3 判断某天为某年的第几天 5.1 九宫格import randomx = 0l = [1,2,3,4,5,6,7,8,9]print("*************")while len(l) !
2023-01-31

oracle基础语法的示例分析

这篇文章主要介绍了oracle基础语法的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Oracle数据库的初步学习数据库的安装及其配置,使用默认选项进行安装即可ora
2023-06-15

Python基础篇-Python基础语法

为什么学习pythonhttp://www.apelearn.com/bbs/thread-7739-1-1.html Python的安装 getconf LONG_BIT     查看系统版本多少位 rpm -q python uname
2023-01-31

01月24日【Python3 基础知识】

3.4 统计字符串 3.5 乘法口诀 3.4 统计字符串# 统计字符串给类型符号个数s = n = f = 0st = input("随意输入字符:")for i in st: if i.isalpha(): s +
2023-01-31

01月18日【Python3 基础知识】

1.1 Python的安装1.2 pycharm安装1.3 pycharm快捷键1.4 pycharm其他设置1.1 Python的安装Python的重要性python 流行程度近几年内已经挤进前五名,慢慢已经成为一个开发者或运维必须掌握的
2023-01-31

01月19日【Python3 基础知识】

2.1 数据类型 2.2 字符串 2.3 list操作 2.1 数据类型# Ptyhon运算符'''数字运算符: + - * / %关系运算符: a == b a>b a= <=赋值运算符: a = b
2023-01-31

01月22日【Python3 基础知识】

2.4 计算器 2.5 tuple操作 2.6 dict 2.7 其他常用操作 2.4 计算器def add(string): total = 0 numbers = [] numbers += string.sp
2023-01-31

01月29日【Python3 基础知识】

5.4 参数匿名函数字典排序 5.5 生成式和生成器 5.6 装饰器的作用 5.4 参数匿名函数字典排序# *元组;**字典def add(*args): total = 0 for i in args: t
2023-01-31

python语法基础

注释在python中,注释是以任何存在于#右侧的文字,其主要作用是写给程序读者看的笔记。例如单行注释>>print("hello world") #这是一个注释多行注释使用一对''''''这是注释这是注释这是注释'''Python2的中文编
2023-01-31

编程热搜

目录