oracle上课笔记 表空间 索引

l.切换数据库的临时表空间为temp!/ 切换数据库的undo表空间为 undotbs0l
2:创建两个简单表A,B。AB表有相关联的列并在关联列上创建索引。
3:创建一个事务级临时表或者会话级临时表并测试在什么情况下临时表里的数据会消失
4:创建一个小表表空间A。一个大表表空间B.并创建一个用户B!默认表空间为B。

(1)

  1. 登录到数据库服务器上的数据库实例。
  2. 打开一个命令行界面,例如使用 SQL*Plus 或 SQL Developer。
  3. 以 SYSDBA 身份连接到数据库实例:
    sqlplus / as sysdba
    
  4. 查看当前数据库的临时表空间和UNDO表空间的名称:
    SELECT property_name, property_value
    FROM database_properties
    WHERE property_name IN ('DEFAULT_TEMP_TABLESPACE', 'DEFAULT_PERMANENT_TABLESPACE');
    
    在查询结果中,您将看到当前的临时表空间和UNDO表空间的名称。
  5. 切换临时表空间为temp1:
    ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp1;
    
                                          这将将默认的临时表空间更改为temp1。
  6. 切换UNDO表空间为undo01:
  7. ALTER SYSTEM SET UNDO_TABLESPACE = undo01;
    
    这将将系统级的UNDO表空间更改为undotbs01。
  8. 重新启动数据库实例以使更改生效:
    SHUTDOWN IMMEDIATE;
    STARTUP;
    
    这将关闭数据库实例并重新启动它。

查看UNDO表空间的路径

SELECT tablespace_name, file_name
FROM dba_data_files
WHERE tablespace_name = 'UNDO';

创建临时表空间temp1

CREATE TEMPORARY TABLESPACE temp1
TEMPFILE '/u01/app/oracle/oradata/orcl/temp1.dbf' SIZE 100M
AUTOEXTEND ON
NEXT 50M MAXSIZE 2G;

 

创建undo表空间

CREATE UNDO TABLESPACE undo1
DATAFILE '/u01/app/oracle/oradata/orcl/undo0.dbf' SIZE 100M
AUTOEXTEND ON
RETENTION NOGUARANTEE;

(2)

创建表 A:

CREATE TABLE A (
   A_ID NUMBER(10),
   A_NAME VARCHAR2(50),
   CONSTRAINT PK_A PRIMARY KEY (A_ID)
);

以上 SQL 语句创建了一个名为 A 的表,其中包含一个名为 A_ID 的数字列和一个名为 A_NAME 的字符列。在 A_ID 列上创建了名为 PK_A 的主键约束。

创建表 B:

CREATE TABLE B (
   B_ID NUMBER(10),
   B_NAME VARCHAR2(50),
   A_ID NUMBER(10),
   CONSTRAINT PK_B PRIMARY KEY (B_ID),
   CONSTRAINT FK_B_A FOREIGN KEY (A_ID) REFERENCES A(A_ID)
);

以上 SQL 语句创建了一个名为 B 的表,其中包括一个名为 B_ID 的数字列、一个名为 B_NAME 的字符列和一个名为 A_ID 的数字列。在 B_ID 列上创建了名为 PK_B 的主键约束,在 A_ID 列上创建了名为 FK_B_A 的外键约束,该约束引用表 A 中的 A_ID 列。

在关联列 A_ID 上创建索引:

CREATE INDEX IDX_B_A ON B (A_ID);

以上 SQL 语句在 B 表的 A_ID 列上创建了名为 IDX_B_A 的索引。

创建表

创建索引

(3)

创建会话级临时表:

CREATE GLOBAL TEMPORARY TABLE session_temp
(
   id   NUMBER,
   name VARCHAR2(50)
)
ON COMMIT PRESERVE ROWS;

会话级临时表的数据在当前会话连接关闭之前都会保留。

创建事务级临时表:

CREATE GLOBAL TEMPORARY TABLE transaction_temp
(
   id   NUMBER,
   name VARCHAR2(50)
)
ON COMMIT DELETE ROWS;

事务级临时表的数据在提交事务之后会被自动清除。

临时表中的数据会在以下情况下消失:

  1. 会话级临时表:在关闭当前会话连接时。
  2. 事务级临时表:在事务提交时。

(4)

创建小表空间 A:

CREATE TABLESPACE A
DATAFILE '/u01/app/oracle/oradata/orcl/A.dbf' SIZE 10M;

以上 SQL 语句创建了一个名为 A 的小表空间,指定了数据库文件的路径和大小。

创建大表空间 B:

CREATE TABLESPACE B
DATAFILE '/u01/app/oracle/oradata/orcl/B.dbf' SIZE 1G;

以上 SQL 语句创建了一个名为 B 的大表空间,指定了数据库文件的路径和大小。

创建用户 B 并设置默认表空间为 B:

CREATE USER B IDENTIFIED BY 123456 DEFAULT TABLESPACE B;

以上 SQL 语句创建了一个名为 B 的用户,并设置其默认表空间为 B。请将 “123456” 替换为实际的用户密码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值