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

【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.层级树状图

在这里插入图片描述


http://www.kler.cn/a/578062.html

相关文章:

  • Linux中的进程优先级与设置方法
  • 可视化编辑器选择
  • Vulnhub-Node
  • C++ 模版★★★
  • Android Coil总结
  • c#事件案例与分析
  • 2025年Linux 安全与运维指南
  • 机试题——微服务群组
  • React基础之useCallback
  • LeetCode刷题实战:删除字符串中的所有相邻重复项(栈的经典应用)
  • 2025-03-07 学习记录--C/C++-PTA 习题8-1 拆分实数的整数与小数部分
  • 哪些培训课程适合学习PostgreSQL中级认证知识?
  • CS144 Lab Checkpoint 6: building an IP router
  • 华为欧拉系统 Tomcat 安装详解
  • linux 内网下载 yum 依赖问题
  • ‌CentOS 7.9 安装 Docker 步骤
  • leetcode454 四数相加
  • flutter的debounce_throttle插件使用
  • 进程、线程、锁面试前复习(尽力局)
  • Myslq表的内外连接