[Oracle]知识点

简介: 本文主要介绍了Oracle数据库的相关知识点,包括数据类型、视图的使用及注意事项,并提供了详细的示例和扩展阅读链接。内容涵盖char族数据类型、number(a, b)数据类型、视图的创建与管理等,适合初学者和进阶用户参考学习。

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://developer.aliyun.com/article/1634558
出自【进步*于辰的博客

1、知识点扩展

  1. 细节与使用经验
  2. 约束
  3. 索引
  4. 内置函数
  5. 伪列

    5、数据类型

    5.1 char族

    Oracle中char族数据类型与MySQL中相同,大家可查阅博文《[MySQL]知识点》的第3项,在此不作赘述。

    5.2 number(a, b)

    参考笔记一,P20.13。

此数据类型为数字,可存储小数。其中,a 是数字位数(包括小数),b 是精确小数位数。

规则:

  1. b > 0,表示精确b位小数,并四舍五入;
  2. b < 0,表示精确到小数点左b位,并四舍五入,故只能存储整数。如:number(5, 3),可存储五位数整数,个位和十位都为0
  3. b = 0,则只能存储整数;
  4. a < b,则只能存储-1 ~ 00 ~ 1的小数,且小数点右b - a位及其后都必须是0(前后四舍五入都要满足),即精确b位小数。

    7、视图(view

    推荐一篇博文《Oracle视图详解》(转发)。
    参考笔记一,P22.24、P23.15~17。

    7.1 介绍

    view可认为是一种绑定了SQL语句的原表“副本”,故当查询视图时,都会重新执行一次SQL语句查询原表,且修改视图记录等同于修改原表记录。

不过,若视图记录是由原表记录经处理后生成,即SQL语句中包含“数据处理”子句或条件时,不允许变动视图记录。“数据处理”子句或条件有:

  1. group函数;
  2. group by;
  3. distinct;
  4. 使用表达式定义的字段;
  5. 伪列rownum
  6. 原表在视图中未选择(未select)的字段的所有数据为非空且无默认值。

当然,并非只要SQL语句中包含了这6个子句或条件,就无法对视图进行全部DML。规则如下:

  1. 删除视图记录。要求SQL语句中不能包含前3个子句或条件。
  2. 修改视图记录。要求SQL语句中不能包含前5个子句或条件。
  3. 新增视图记录。要求SQL语句中不能包含所有子句或条件。

我们也可以干脆在SQL语句末添加with read only子句禁用视图DML。

7.2 数据字典

--当前用户旗下所有视图--
user_views
--显示视图中哪些字段允许DML--
user_updatable_columns

7.3 一个问题

假若SQL语句是:

create view v_emp_1(id, name, sal)
as
select emp_id, emp_name, sal
from emps
where dept_no = 10;

这里dept_no是外键,该视图记录为员工表中隶属部门10的所有员工信息。

现在,我把10改成20。前言道,查询视图是对原表的再次查询,这样修改后,该视图记录就变为部门20的所有员工信息。可是,view是原表的“副本”,既然创建视图时部门编号为10,说明当时我设定该视图的作用是用于快速查询部门10的所有员工信息,那么又怎能允许后续随意修改查询条件(dept_no = 10)。

因此,可以在SQL语句末添加with check option constraint 约束名子句,设置一个约束限制这种修改。

7.4 示例

创建:

create or replace view v as 
select '123' as data from dual union all 
select 'abc' from dual union all 
select '123abc' from dual union all 
select 'abc123' from dual union all 
select '1a2b3c' from dual union all 
select '1a2b3c#' from dual union all 
select '3$' from dual union all 
select '#a4' from dual union all 
select 'a  2 ' from dual ;

数据:
在这里插入图片描述

最后

本文中的例子是为了方便大家理解和阐述知识点而简单举出的,旨在阐明知识点,并不一定有实用性,仅是抛砖引玉。

本文持续更新中。。。

相关文章
|
6月前
|
SQL 存储 Oracle
老程序员分享:Oracle易忘知识点记录
老程序员分享:Oracle易忘知识点记录
|
存储 SQL Oracle
oracle知识点总结
oracle数据可系统是美国oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器或B/S体系结构的数据库之一,oracle数据库时目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完善的数据库管理功能,是关系型数据库,比mysql更为庞大,在现行的关系型数据库中排名第一(oracle、mysql、SqlServer),时间是最为精确的。
102 0
|
SQL 存储 Oracle
不得不会的Oracle数据库知识点(二)
不得不会的Oracle数据库知识点(二)
|
SQL Oracle 关系型数据库
不得不会的Oracle数据库知识点(三)
不得不会的Oracle数据库知识点(三)
|
Oracle 关系型数据库 数据库
不得不会的Oracle数据库知识点(一)
不得不会的Oracle数据库知识点(一)
|
SQL 存储 Oracle
不得不会的Oracle数据库知识点(四)
不得不会的Oracle数据库知识点(四)
|
Oracle 关系型数据库 数据库
Oracle相关知识点关键词
oracle导出建表语句        oracle删除表语句 oracle 锁表语句 oracle语句创建表 oracle 表分析语句 oracle 备份表语句 oracle查看表的语句 ...
2177 0
|
SQL Oracle 关系型数据库
【体系结构】有关Oracle SCN知识点的整理--补充内容
【体系结构】有关Oracle SCN知识点的整理--补充内容   小麦苗自己整理的内容参考:【体系结构】有关Oracle SCN知识点的整理  http://blog.itpub.net/26736162/viewspace-2126407/ DBA入门之认识Oracle SCN(System Change Number) 1. SCN的定义 SCN(System Change Number),也就是通常所说的系统改变号,是数据库中非常重要的一个数据结构。
2349 0
|
Oracle 关系型数据库
【体系结构】有关Oracle SCN知识点的整理
                                                                                                                            ...
789 0
|
Oracle 关系型数据库 SQL
Oracle 相关知识点
1、为Oracle表中的类型为DATE的TIME字段,向后加13天,SQL语句如下: update st_bridge_waterlevel set TIME=to_date(to_char...
1442 0