当前位置: 首页 > news >正文

【Oracle学习笔记】1.数据库组成对象

在Oracle数据库中,数据库对象是用于存储、管理和操作数据的基本构建块。以下是Oracle数据库中常见的对象类型及其简要说明:

1. 表(Table)

● 定义:表是存储数据的基本结构,由行(记录)和列(字段)组成。
● 作用:用于存储实际数据。
● 示例:

CREATE TABLE employees (
    employee_id NUMBER PRIMARY KEY,
    first_name VARCHAR2(50),
    last_name VARCHAR2(50)
);

2. 视图(View)

● 定义:视图是基于一个或多个表的逻辑查询结果集,不存储实际数据。
● 作用:简化复杂查询、提供数据安全性、实现数据抽象。
● 示例:

CREATE VIEW employee_summary AS
SELECT first_name, last_name FROM employees;

3. 索引(Index)

● 定义:索引是对表中一列或多列的值进行排序的数据结构,用于加快数据检索速度。
● 作用:提高查询性能。
● 示例:

CREATE INDEX idx_employee_name ON employees(last_name);

4. 序列(Sequence)

● 定义:序列是用于生成唯一数字值的对象,通常用于主键列。
● 作用:自动生成唯一值。
● 示例:

CREATE SEQUENCE employee_seq
START WITH 1
INCREMENT BY 1;

5. 同义词(Synonym)

● 定义:同义词是数据库对象的别名,用于简化对象访问。
● 作用:简化对象引用,提高代码可读性。
● 示例:

CREATE SYNONYM emp FOR employees;

6. 存储过程(Stored Procedure)

● 定义:存储过程是一组预编译的SQL语句,存储在数据库中。
● 作用:实现复杂的业务逻辑,提高代码复用性。
● 示例:

CREATE PROCEDURE add_employee (
    p_first_name VARCHAR2,
    p_last_name VARCHAR2
) AS
BEGIN
    INSERT INTO employees (first_name, last_name)
    VALUES (p_first_name, p_last_name);
END;

7. 函数(Function)

● 定义:函数是返回单个值的存储程序,可以接受参数。
● 作用:封装计算逻辑,返回结果。
● 示例:

CREATE FUNCTION get_employee_count RETURN NUMBER AS
    v_count NUMBER;
BEGIN
    SELECT COUNT(*) INTO v_count FROM employees;
    RETURN v_count;
END;

8. 触发器(Trigger)

● 定义:触发器是与表关联的存储程序,在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行。
● 作用:实现数据完整性、审计、自动化任务。
● 示例:

CREATE TRIGGER before_employee_insert
BEFORE INSERT ON employees
FOR EACH ROW
BEGIN
    :NEW.hire_date := SYSDATE;
END;

9. 包(Package)

● 定义:包是存储过程、函数、变量等的集合,用于模块化编程。
● 作用:提高代码组织性和复用性。
● 示例:

CREATE PACKAGE employee_pkg AS
    PROCEDURE add_employee(p_first_name VARCHAR2, p_last_name VARCHAR2);
    FUNCTION get_employee_count RETURN NUMBER;
END employee_pkg;

10. 物化视图(Materialized View)

● 定义:物化视图是存储实际数据的视图,定期刷新。
● 作用:提高复杂查询的性能。
● 示例:

CREATE MATERIALIZED VIEW employee_summary_mv AS
SELECT first_name, last_name FROM employees;

11. 表空间(Tablespace)

● 定义:表空间是数据库存储的逻辑划分,包含数据文件。
● 作用:管理物理存储。
● 示例:

CREATE TABLESPACE my_tablespace
DATAFILE 'my_datafile.dbf' SIZE 100M;

12. 用户(User)

● 定义:用户是访问数据库的实体,拥有模式(Schema)。
● 作用:管理数据库访问权限。
● 示例:

CREATE USER my_user IDENTIFIED BY my_password;

13. 角色(Role)

● 定义:角色是一组权限的集合,可以分配给用户。
● 作用:简化权限管理。
● 示例:

CREATE ROLE my_role;
GRANT SELECT ON employees TO my_role;

14. 约束(Constraint)

● 定义:约束是用于限制表中数据的规则,如主键、外键、唯一性等。
● 作用:保证数据完整性。
● 示例:

ALTER TABLE employees ADD CONSTRAINT pk_employee PRIMARY KEY (employee_id);

15. 数据库链接(Database Link)

● 定义:数据库链接用于访问远程数据库。
● 作用:实现分布式数据库访问。
● 示例:

CREATE DATABASE LINK remote_db
CONNECT TO remote_user IDENTIFIED BY password
USING 'remote_db_service';

16.层级树状图

在这里插入图片描述

相关文章:

  • 前端开发10大框架深度解析
  • 前端基础之组件
  • CentOS 7 安装 Redis6.2.6
  • Docker的常用镜像
  • Linxu几种登陆方式介绍
  • 基于SSM+MySQL的二手书籍交易系统
  • 【零基础到精通Java合集】第二十集:Java内存模型-堆、栈、方法区
  • 【AI Guide】AI面试攻略只用看这一篇就够了!力争做全网最全的AI面试攻略——大模型(四十五)模型评估
  • 《数据治理破局:DataWorks中AI驱动流程的自修复之道》
  • Jadx Gui 的详细介绍、安装指南、使用方法及配置说明
  • 力扣 Hot 100 刷题记录 - 搜索二维矩阵 II
  • VisActor/VTable - 自定义图标
  • 【大模型技术】LlamaFactory 的原理解析与应用
  • 专门为高速连续扫描设计的TDI工业相机
  • MATLAB仿真:涡旋光束光强和相位分布同时展示
  • golang深度学习-性能分析
  • Julia安装与Jupyter内核配置
  • 多线程-JUC
  • vue中Axios的封装和API接口的管理(待根据实际项目front进行分析)
  • Leetcode 57: 插入区间
  • 海航回应“男团粉丝为追星堵住机舱通道”:已紧急阻止
  • “拼好假”的年轻人,今年有哪些旅游新玩法?
  • 4月证券私募产品备案量创23个月新高,股票策略占比超六成
  • 华为鸿蒙电脑正式亮相,应用生态系统能否挑战Windows?
  • 融创中国:今年前4个月销售额约112亿元
  • 巴基斯坦称约50名印度士兵在克什米尔实控线丧生