关于Oracle数据库
Oracle数据库将相关信息分组到称为模式的逻辑结构中。逻辑结构称为模式对象。通过提供用户名和密码连接到数据库时,可以指定架构并指示您是其所有者。在Oracle数据库中,用户连接到的架构的用户名和名称是相同的。
关于架构对象
Oracle数据库中的每个对象只属于一个架构,并且该架构具有唯一的名称。
架构可以包含的一些对象包括:
· Tables(表)---表是Oracle数据库中数据存储的基本单元。表保存所有用户可访问的数据。每个表都包含表示单个数据记录的行。行由表示记录字段的列组成。
· Indexes(索引)--- 索引是可选对象,可以提高从表中检索数据的性能。索引是在表的一列或多列上创建的,并在数据库中自动维护。
· Views(视图)--- 您可以创建一个视图,该视图将来自多个不同表的信息合并到一个演示文稿中。视图可以依赖于来自表和其他视图的信息。
· Sequences(序列)--- 当表的所有记录必须是不同的时侯,可以使用序列为数字列生成一个唯一整数的序列列表,每个数字列表示一条记录的ID。
· Synonyms(同义词)--- 同义词是模式对象的别名。为了安全和方便,可以使用同义词;例如,隐藏对象的所有权或简化SQL语句。
· Stored subprograms(存储子程序)--- 存储子程序(也称为模式级子程序)是存储在数据库中的过程和函数。可以从访问数据库的客户端应用程序调用它们。
触发器是存储的子程序,当特定表或视图中发生指定事件时,数据库会自动运行这些子程序。触发器可以限制对特定数据的访问并执行日志记录。
· Packages(包)--- 包是一组相关的子程序,以及它们使用的显式游标和变量,作为一个单元存储在数据库中,以便继续使用。与存储的子程序一样,可以从访问数据库的客户端应用程序调用包子程序。
通常,应用程序使用的对象属于同一架构。
关于Oracle数据库访问
只能通过客户端程序(如SQL*Plus或SQL Developer)访问Oracle数据库。客户机程序与Oracle数据库的接口是结构化查询语言(SQL)。Oracle为SQL提供了一个扩展名为Procedural Language/SQL(PL/SQL)。
关于SQL*Plus
SQL*Plus(发音为sequel Plus)是一个交互式的批量查询工具,在每次安装Oracle数据库时都会安装它。它有一个命令行用户界面,在连接到数据库时充当客户端。
SQL*Plus有自己的命令和环境。在SQL*Plus环境中,可以输入并运行SQL*Plus命令、SQL语句、PL/SQL语句和操作系统命令来执行以下任务:
--- 格式化、计算、存储和打印查询结果
--- 检查表和对象定义
--- 开发和运行批处理脚本
--- 执行数据库管理
您可以使用SQL*Plus以交互方式生成报告,以批处理方式生成报告,并将结果输出到文本文件、屏幕或HTML文件,以便在Internet上浏览。可以使用HTML输出工具动态生成报告。
关于SQL Develoer
SQL Developer(发音为sequel Developer)是SQL*Plus的图形版本,用Java编写,可在默认的Oracle数据库安装中免费下载。
SQL Developer用户界面包括一个连接框架、工具(带菜单)和一个工作表。在工作表中,您可以输入和运行SQL语句、PL/SQL语句和SQL*Plus命令。您可以执行一些任务,例如,在工作表中或使用“连接”框架和工具创建表。
关于Structured Query Language (SQL)
结构化查询语言(Structured Query Language,SQL)是一种基于集合的高级计算机语言,所有程序和用户都可以使用它访问Oracle数据库中的数据。
SQL是一种声明性的或非过程性的语言;也就是说,它描述了该做什么,而不是如何做。指定所需的结果集(例如,当前员工的姓名),但不指定如何获取结果集。
关于Procedural Language/SQL (PL/SQL)
Procedural Language/SQL (PL/SQL)(发音为P L sequel)是对SQL的本地Oracle数据库扩展。它通过添加过程元素(如条件控件和循环)来弥合声明性和命令性程序控件之间的差距。
在PL/SQL中,可以声明常量和变量、过程和函数、这些类型的类型和变量以及触发器。您可以处理异常(运行时错误)。您可以创建存储在数据库中供使用任何Oracle数据库编程接口的应用程序重用的PL/SQL单元过程、函数、包、类型和触发器。
PL/SQL源程序的基本单元是块,它将相关的声明和语句分组。块具有可选的声明性部分、必需的可执行部分和可选的异常处理部分。
具体可查看官方文档:https://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_intro.htm#TDDDG12000