欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Oracle 基础概念及操作实战

Oracle 基础概念及操作实战

2025/6/7 3:36:59 来源:https://blog.csdn.net/weixin_49224830/article/details/145906808  浏览:    关键词:Oracle 基础概念及操作实战

数据库管理

点击查看→Oracle OCP 19C课程介绍

点击查看→MySQL 8.0 OCP 认证介绍

点击查看→达梦认证管理员(DCA)

点击查看→DAMA中国数据治理认证 | CDGA / CDGP

Oracle 基础概念大揭秘

(一)数据库与实例

在 Oracle 的世界里,数据库和实例是两个至关重要却又极易混淆的概念。简单来说,数据库是数据的物理存储集合,它就像是一个巨大的仓库,里面存放着各种各样的数据文件 、控制文件和重做日志文件等,这些文件实实在在地存储在磁盘上,是数据的永久居所。而实例则是一组内存结构和后台进程的集合,它更像是一个勤劳的搬运工,负责在内存和磁盘之间传递数据,为用户提供对数据库的访问服务。

它们之间的关系紧密而又独特。在单实例环境下,一个数据库对应一个实例,就像一把钥匙开一把锁,实例是访问数据库的唯一通道 。而在集群环境(RAC)中,一个数据库可以被多个实例同时访问,这就好比一个大型仓库有多个入口,多个搬运工可以同时工作,大大提高了数据的处理效率。当我们启动 Oracle 时,首先会创建实例,实例会读取参数文件,在内存中分配空间,启动后台进程,然后去装载和打开数据库,这样我们就可以对数据库中的数据进行操作了。

(二)表空间与数据文件

表空间是 Oracle 数据库中的一个重要逻辑概念,它就像是一个大书架,我们可以把不同类型的数据分类存放在不同的书架区域。每个表空间可以包含一个或多个数据文件,数据文件则是实实在在存储数据的物理文件,相当于书架上的一个个格子,真正存放着数据的 “书籍”。

(三)用户与权限

在 Oracle 数据库中,用户是访问数据库的入口,就像不同的人进入图书馆,每个人都有自己的身份和权限。我们可以使用CREATE USER语句来创建用户,比如CREATE USER testuser IDENTIFIED BY testpassword; ,这样就创建了一个名为testuser,密码为testpassword的用户。

但仅仅创建用户还不够,我们还需要为用户分配相应的权限,用户才能进行各种操作。权限就像是图书馆的借阅卡权限,不同的权限允许用户进行不同的操作。Oracle 中有一些预定义的角色,如connect、resource、dba ,每个角色都拥有不同的权限集合。connect角色主要用于建立数据库连接,拥有创建会话的基本权限;resource角色则侧重于赋予用户创建数据库对象的权限,如创建表、序列、过程等;而dba角色则拥有最高权限,几乎可以进行所有的数据库管理操作,包括创建用户、分配权限、管理表空间等。我们可以使用GRANT语句为用户授予角色或权限,例如GRANT connect, resource TO testuser;这样testuser用户就拥有了connect和resource角色的权限。

(四)基本数据类型

Oracle 支持多种数据类型,以满足不同的数据存储需求。常见的数据类型有VARCHAR2、NUMBER、DATE等。

VARCHAR2用于存储可变长度的字符串,就像一个可以伸缩的袋子,根据实际存储的字符串长度来占用空间,最大长度可达 4000 字节,非常适合存储姓名、地址等长度不固定的文本信息。。

NUMBER类型则用于存储数值,可以是整数也可以是小数,并且可以指定精度和刻度。比如NUMBER(5, 2) 表示可以存储总位数为 5 位,小数位数为 2 位的数值,范围从 -999.99 到 999.99 ,常用于存储金额、数量等数值数据。

DATE类型用于存储日期和时间,它按照固定的格式存储,精确到秒,如2024-10-01 12:30:00 ,方便我们进行日期相关的计算和处理,比如记录订单的创建时间、用户的注册时间等。了解这些基本数据类型的特点和使用场景,是进行数据库表设计和数据存储的基础。

Oracle 基本操作实战

(一)创建表空间

创建表空间是在 Oracle 数据库中规划数据存储的重要一步。下面是创建表空间的 SQL 语句示例:

CREATE TABLESPACE example_tablespace
DATAFILE 'D:\oracle\data\example_tablespace.dbf'
SIZE 200M
AUTOEXTEND ON
NEXT 20M
MAXSIZE UNLIMITED;

在这个语句中:

  • CREATE TABLESPACE 是创建表空间的关键字,后面跟着你要创建的表空间名称,这里是 example_tablespace ,你可以根据实际需求取一个有意义的名字。

  • DATAFILE 用于指定数据文件的路径和名称,数据文件是实际存储数据的物理文件,这里指定为 D:\oracle\data\example_tablespace.dbf ,你需要根据数据库的安装路径和存储规划来设置合适的路径。

  • SIZE 定义了数据文件的初始大小,这里设置为 200M,表示初始大小为 200 兆字节。

  • AUTOEXTEND ON 表示数据文件可以自动扩展,当数据量增长超过初始大小时,数据文件会自动增大。

  • NEXT 指定每次自动扩展的增量,这里是 20M,即每次扩展 20 兆字节。

  • MAXSIZE UNLIMITED 表示数据文件的最大大小不受限制,理论上可以无限增长,不过在实际应用中,需要根据磁盘空间和性能考虑来合理设置。通过这样的设置,我们就创建了一个具有自动扩展能力的表空间,为后续的数据存储提供了空间。

(二)创建用户

创建用户是为了让不同的使用者能够以各自的身份访问数据库,并对其进行相应的操作。在 Oracle 中,创建用户并指定表空间和密码的 SQL 语句如下:

CREATE USER test_user
IDENTIFIED BY test_password
DEFAULT TABLESPACE example_tablespace;

这里:

  • CREATE USER 是创建用户的关键字,后面跟着要创建的用户名,例如 test_user ,用户名应遵循一定的命名规则,且具有唯一性。

  • IDENTIFIED BY 用于指定用户的密码,这里设置为 test_password ,请务必设置一个强密码,以增强数据库的安全性。

  • DEFAULT TABLESPACE 用来指定用户的默认表空间,这里指定为前面创建的 example_tablespace ,这意味着该用户创建的数据库对象(如表、索引等)如果没有特别指定表空间,将默认存储在这个表空间中。通过这样的语句,我们就成功创建了一个用户,并为其指定了默认表空间和密码。

(三)用户授权与权限管理

在 Oracle 中,授权和收回权限是管理用户对数据库操作能力的关键操作。授权可以让用户拥有执行特定操作的权限,而收回权限则可以限制用户的操作范围。

授权使用 GRANT 语句,例如,要授予 test_user 用户对 example_table 表的查询、插入和更新权限,可以使用以下语句:

GRANT SELECT, INSERT, UPDATE ON example_table TO test_user;

如果要授予用户某个角色,如 connect 和 resource 角色,可以这样写:

GRANT connect, resource TO test_user;

connect 角色赋予用户连接数据库的基本权限,resource 角色则允许用户创建数据库对象,如表、序列等。

当需要收回用户的权限时,使用 REVOKE 语句。例如,要收回 test_user 用户对 example_table 表的删除权限,可以执行:

REVOKE DELETE ON example_table FROM test_user;

如果要收回用户的某个角色,可以使用:

REVOKE connect FROM test_user;

通过合理地使用授权和收回权限操作,可以确保数据库的安全性和数据的完整性,让不同用户只能进行其被允许的操作。

(四)表的创建与管理

创建表是构建数据库结构的基础操作。在 Oracle 中,创建表的基本语法如下:

CREATE TABLE example_table (
id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
age NUMBER(3),
address VARCHAR2(200)
);

在这个例子中:

  • CREATE TABLE 是创建表的关键字,后面跟着表名 example_table 。

  • 括号内定义了表的列,每列包含列名、数据类型和约束条件。例如,id 列的数据类型是 NUMBER(10) ,表示最多可以存储 10 位数字,并且设置了 PRIMARY KEY 约束,即主键约束,确保 id 列的值在表中是唯一且不能为空的。

  • name 列的数据类型是 VARCHAR2(50) ,表示可变长度的字符串,最大长度为 50 个字符,同时设置了 NOT NULL 约束,意味着该列不能为空。

  • age 列的数据类型是 NUMBER(3) ,表示最多可以存储 3 位数字。

  • address 列的数据类型是 VARCHAR2(200) ,用于存储地址信息。

在创建表时,还可以设置其他约束,如唯一约束(UNIQUE)、检查约束(CHECK)、外键约束(FOREIGN KEY)等。例如,为 age 列添加检查约束,确保年龄在合理范围内:

CREATE TABLE example_table (
id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
age NUMBER(3) CHECK (age BETWEEN 0 AND 120),
address VARCHAR2(200)
);

当需要修改表的结构时,可以使用 ALTER TABLE 语句。比如,添加一列 phone_number :

ALTER TABLE example_table ADD phone_number VARCHAR2(20);

修改列的数据类型,将 age 列的数据类型改为 NUMBER(4) :

ALTER TABLE example_table MODIFY age NUMBER(4);

如果要删除表,可以使用 DROP TABLE 语句:

DROP TABLE example_table;

在执行删除操作时要谨慎,因为删除表会永久删除表及其所有数据。

(五)数据操作

在表创建好之后,就可以对表中的数据进行操作了。常用的数据操作包括插入、更新、删除和查询。

插入数据使用 INSERT INTO 语句,例如向 example_table 表中插入一条记录:

INSERT INTO example_table (id, name, age, address)
VALUES (1, '张三', 25, '北京市朝阳区');

如果要插入多条记录,可以使用多条 INSERT INTO 语句,或者使用子查询来批量插入。

更新数据使用 UPDATE 语句,例如将 id 为 1 的记录的年龄更新为 26:

UPDATE example_table
SET age = 26
WHERE id = 1;

删除数据使用 DELETE FROM 语句,例如删除 id 为 1 的记录:

DELETE FROM example_table
WHERE id = 1;

查询数据是最常用的数据操作之一,使用 SELECT 语句。例如,查询 example_table 表中的所有记录:

SELECT * FROM example_table;

如果只查询特定的列,如查询 name 和 age 列:

SELECT name, age FROM example_table;

还可以使用条件查询,如查询年龄大于 20 的记录:

SELECT * FROM example_table
WHERE age > 20;

通过这些基本的数据操作语句,我们可以灵活地对数据库中的数据进行增、删、改、查操作,满足各种业务需求。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词