oracle学习笔记(数据字典和表空间)

oracle学习笔记(数据字典和表空间)

/*
oracle学习笔记(数据字典和表空间)
*/

--可以查到每一个连接到数据库实例中的session的信息
SELECT * FROM v$session;

/*
dual是一个虚拟表,用来构成select的语法规则,oracle保
证dual里面永远只有一条记录。我们可以用它来做很多事情,如下:
*/

--SYSDATE表示系统时间,dual表示伪表(虚拟表)
SELECT SYSDATE FROM dual;
--做运算
SELECT (6 + 6) * 2 FROM dual;
--做字符串的拼接
SELECT '江西省赣州市' || '于都县' FROM dual;
--获得一个随机数
SELECT dbms_random.random FROM dual;
--查看当前用户
SELECT USER FROM dual;
--用来调用系统函数
--获得当前系统时间
SELECT to_char(SYSDATE,'yyyy-mm-dd hh24:mi:SS') FROM dual;
--获得主机名
SELECT SYS_CONTEXT('USERENV','TERMINAL') FROM dual;
/*
注意:在oracle数据库中,select后面哪怕跟的是常量,也必须要加上from dual;
但是在mysql数据库中,select后面如果是常量的话,可以不用加from 表名
*/
--以下是oracle数据库中的写法,常量后面必须要加上FROM dual;否则会报错
SELECT '江西省赣州市于都县' FROM dual;
SELECT 8 + 10 FROM dual;
--以下是mysql数据库中的写法
SELECT '江西省赣州市于都县';
SELECT 8 + 10;
--
/*
SYS是系统最高权限的管理员
SYSTEM是默认的系统管理员
scott是oracle数据库中的一个示范用户
数据库中的所有数据字典表和视图都存储在sys模式中,sys用
户主要用来维护系统信息和管理实例
*/

/*
oracle系统表的相关信息详细描述了表的数量、表名、表的属主等。
这些关于数据库对象的信息以一些特殊的视图存放,这些特殊的视图就被称为系统表。
系统表的数据通常只能查看,不应直接修改
*/
--
SELECT * FROM Dba_Tables;
SELECT * FROM All_Tables;
SELECT * FROM User_Tables;
SELECT * FROM tabs;
--
SELECT * FROM Dba_Tab_Columns;
SELECT * FROM all_Tab_Columns;
SELECT * FROM user_Tab_Columns;

/*
数据字典:
在数据库创建的时候,oracle服务器会在数据文件里创建一些额外的对象结构。
数据字典表
动态性能表

数据字典是一套记录、验证和提供数据库访问信息的只读表和视图。
描述了数据库及其对象
包含2类对象
基表:
储存数据库的说明

数据字典视图:
基表信息的摘要

数据字典提供了如下信息:
数据库的逻辑和物理结构
对象的定义和空间分配
完整性约束
用户
角色
权限
审计
其他信息
数据字典视图具有3个主要用途
oralce服务器借助它查找关于如下对象的信息:
用户
方案对象
存储结构
执行DDL语句后,oracle服务器修改它
用户和DBA可以把它作为数据库的只读的信息参考

数据字典视图的分类
数据字典主要有3种静态视图组成,每种应用在不同的范围中
dba:所有方案中的对象 (数据库中的所有对象)
all: 用户所能访问的所有对象 (当前用户可以访问的对象)
user:在用户方案中的对象 (当前用户拥有的对象)
*/

--数据字典的例子
--数据库结构
SELECT * FROM Dba_Tablespaces;
SELECT * FROM Dba_Data_Files;
--方案对象
SELECT * FROM Dba_Tables;
SELECT * FROM Dba_Indexes;
SELECT * FROM Dba_Tab_Columns;
SELECT * FROM Dba_Constraints;
--概要信息
SELECT * FROM DICTIONARY;
SELECT * FROM dict_columns;
--空间分配
SELECT * FROM Dba_Segments;
SELECT * FROM Dba_Extents;

/*
动态性能表
动态性能表记录了当前数据库的活动
视图会随着数据库的运行而不断地更新
信息来自:
内存
控制文件
DBA用其监测和调整数据库
动态视图归sys用户拥有
不允许DML
*/

/*
动态性能表常用视图
V$session
V$version
V$tablespace
V$sga
V$datafile等等
*/
--
SELECT * FROM V$session;
SELECT * FROM V$version;
SELECT * FROM V$tablespace;
SELECT * FROM V$sga;
SELECT * FROM V$datafile;
--
/*
表空间的概念:一个或多个数据文件的逻辑集合
oracle是通过用户去管理数据。
我们要存储数据,必须要先建表空间,再建用户,再建对象(表、索引、视图等等)

表空间
system表空间:
在数据库创建时创建
包含数据字典
包含system回滚段

non-system表空间:
独立的段
简化空间管理
控制给用户分配的空间

临时表空间:
用于临时操作
不能包含任何永久对象
*/

--查询所有的表空间
SELECT DISTINCT  Tablespace_name FROM Dba_Free_Space;

--创建表空间test_tableSpace
--表空间的数据文件保存路径、大小
--是否自动扩展
CREATE TABLESPACE test_tableSpace
DATAFILE 'D:\app\Administrator\oradata\orcl\test_tableSpace.dbf'
SIZE 10M
AUTOEXTEND ON; --自动扩展
--AUTOEXTEND OFF; --不自动扩展

--查询所有的表空间
SELECT DISTINCT  Tablespace_name FROM Dba_Free_Space;

--删除表空间
DROP TABLESPACE test_tableSpace;
--删除表空间同时删除表空间的所在的物理文件
DROP TABLESPACE test_tableSpace INCLUDING CONTENTS AND Datafiles;

--查询所有的表空间
SELECT DISTINCT  Tablespace_name FROM Dba_Free_Space;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值