iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >01. Oracle(基础语法)
  • 549
分享到

01. Oracle(基础语法)

01.Oracle(基础语法) 2022-03-14 20:03:53 549人浏览 无得
摘要

1. 函数 1.1 大小写转换函数 函数 描述 LOWER() 全小写 UPPER() 全大写 INITCAP() 首字母大写 1.2 字符串操作函数 函数 描述 concat() 拼接字

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;
您可能感兴趣的文档:

--结束END--

本文标题: 01. Oracle(基础语法)

本文链接: https://www.lsjlt.com/news/5680.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Day-01 Python基础
    一、Python介绍   Python是一门解释型,弱类型,高级开发编程语言;可广泛应用于众多领域,如:网页开发,数据分析,爬虫等众多领域。   目前Python主要应用领域:云计算、web开发、科学运算、人工智能、系统运维、金融。   ...
    99+
    2023-01-30
    基础 Day Python
  • oracle基础语法详解
    Oracle数据库的初步学习 数据库的安装及其配置,使用默认选项进行安装即可 oracle的几种常见客户端 Web端:https://localhost:5500/em(浏览器...
    99+
    2024-04-02
  • python学习笔记01-基础
    数据类型:(1)整数(2)浮点数整数和浮点数在计算机内部存储的方式是不同的(3)字符串字符\本身也要转义,所以\表示的字符就是\Python还允许用r''表示''内部的字符串默认不转义(4)布尔值在Python中,可以直接用True、F...
    99+
    2023-01-31
    学习笔记 基础 python
  • 01月25日【Python3 基础知识】
    4.1 读写文件 4.2 文件方法 4.3 python2的乱码问题 4.4 python对passwd文件进行排序 4.1 读写文件 访问 模式 说 明 r 以只读方式打开文件。文件的指针将会放在文件的开头...
    99+
    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 += s...
    99+
    2023-01-31
    基础知识
  • 01月19日【Python3 基础知识】
    2.1 数据类型 2.2 字符串 2.3 list操作 2.1 数据类型 # Ptyhon运算符 ''' 数字运算符: + - * / % 关系运算符: a == b a>b a<b a!=b >= ...
    99+
    2023-01-31
    基础知识
  • 01月29日【Python3 基础知识】
    5.4 参数匿名函数字典排序 5.5 生成式和生成器 5.6 装饰器的作用 5.4 参数匿名函数字典排序 # *元组;**字典 def add(*args): total = 0 for i in args: ...
    99+
    2023-01-31
    基础知识
  • 01月24日【Python3 基础知识】
    3.4 统计字符串 3.5 乘法口诀 3.4 统计字符串 # 统计字符串给类型符号个数 s = n = f = 0 st = input("随意输入字符:") for i in st: if i.isalpha(): ...
    99+
    2023-01-31
    基础知识
  • 01月26日【Python3 基础知识】
    5.1 九宫格 5.2 函数入门 5.3 判断某天为某年的第几天 5.1 九宫格 import random x = 0 l = [1,2,3,4,5,6,7,8,9] print("*************") while...
    99+
    2023-01-31
    基础知识
  • oracle基础语法的示例分析
    这篇文章主要介绍了oracle基础语法的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Oracle数据库的初步学习数据库的安装及其配置,使用默认选项进行安装即可ora...
    99+
    2023-06-15
  • 01月18日【Python3 基础知识】
    1.1 Python的安装1.2 pycharm安装1.3 pycharm快捷键1.4 pycharm其他设置 1.1 Python的安装 Python的重要性 python 流行程度 近几年内已经挤进前五名,慢慢已经成为一个开发者或运...
    99+
    2023-01-31
    基础知识
  • 01月23日【Python3 基础知识】
    3.1 if/while/for 3.2 解决数学难题 3.3 Python实例 3.1 if/while/for ''' # if 判断条件: 执行语句 elif 判断条件: 执行语句 else: 执...
    99+
    2023-01-31
    基础知识
  • Python基础篇-Python基础语法
    为什么学习pythonhttp://www.apelearn.com/bbs/thread-7739-1-1.html Python的安装 getconf LONG_BIT     查看系统版本多少位 rpm -q python uname...
    99+
    2023-01-31
    基础 语法 Python
  • python语法基础
    注释 在python中,注释是以任何存在于#右侧的文字,其主要作用是写给程序读者看的笔记。 例如 单行注释 >>print("hello world") #这是一个注释 多行注释使用一对''' ''' 这是注释 这是注释 这...
    99+
    2023-01-31
    语法 基础 python
  • Java 基础语法
    目录1、基本语法2、标识符(合法的变量名)3、关键字(保留字)4、注释5、Java 包5.1 package 语句5.2 import 语句6、源文件声明规则前言: Java 是一...
    99+
    2024-04-02
  • python3------基础语法
    1 注释 1.1 以#号开头的注释(单行注释) 1.2 以""" 注释内容 """ (多行注释) 1.3 以 ''' 注释内容''' (多行注释)2 行与缩进   python代码块通过缩进对齐表达代码逻辑而不是使用大括号;   缩进表达一...
    99+
    2023-01-31
    语法 基础
  • python3 基础语法
    python相关文章请移步简书:http://www.jianshu.com/u/a72d0d3b2176 ...
    99+
    2023-01-31
    语法 基础
  • Java基础语法
    文章目录 1. Java概述1.1 Java语言发展史1.2 Java语言跨平台原理1.3 JRE和JDK1.4 JDK的下载和安装1.4.1 下载1.4.2 安装1.4.3 JDK的安装目录介绍 2. 第一个演示程序2....
    99+
    2023-08-19
    intellij-idea java
  • python基础语法
    保留字也叫做关键字,不能把它们用在任何标识符名称,可以使用以下命令来查看python的保留字 1 import keyword 2 print(keyword.kwlist) int、float、complex 1 # i...
    99+
    2023-01-30
    语法 基础 python
  • PHP语法基础
    学习目标/Target       掌握PHP标记、标识符、输出语句的使用,能够熟练编写简单的PHP程序       熟悉注释和关键字的使用,能够在程序中正确使用注释和关键字      掌握变量、常量和表达式的使用,能够在程序中正确使...
    99+
    2023-10-07
    服务器 开发语言 php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作