• 模式对象管理(表,表空间,表分区等)


    1.创建表:
    create table '表名'(列名1 数据类型,列名2 数据类型,...) tablespace '表空间' storage(
    initial 1M --指定初始区的大小
    next 2m --指定下一个区的大小
    minextents 2 --指定最少要分配多少区
    maxextents 14 --指定区的最大数量
    );

    2.删除表:drop table '表名'

    3.查询数据库所有的表:select * from dba_tables;--可以查到表的主用户,属于哪个表空间

    4.把表重一个表空间移到另外一个表空间(A移动B):alter table A move tablespace B;、

    5.查找表属于 哪个表空间:select * from user_tables where table_name = '表名';--什么用户登录sqlplus就查询哪个用户下的表

    6.如何知道表table_a的结构:
    方法一:SQL>desc TB_TRAN_CD
    方法二:select * from all_tab_columns where table_name = 'TB_TRAN_CD';

    7.根据现有的表克隆出一个新表(根据A表克隆出一个B表):
    create table B as select * from A where 1=0;--1=0标数只克隆结果不克隆数据

    8.表分析:
    方法一:analyze table tb_int_tx_log compute statistics 90 percent;--抽样统计(抽样90%),抽样统计的速度快,但是不太准确
    方法二:analyze table ta_int_tx_log compute statistics;--完全统计花费的时间比较长,但是比较准确
    方式三:exec dbms_satts.gather_table_stats('cpab','tb_int_tx_log');--使用包dbms_stats对用户cpab的表tb_int_tx_log进行统计分析

    9.得到创建表的sql:
    select dbms_metadata.get_ddl('TABLE','表名','用户名') FROM DUAL;--得到创建表的sql语句(需要有dba权限)。
    select dbms_metadata.get_ddl('TABLESPACE','表空间名') FROM DUAL;--得到创建表空间的sql语句(需要有dba权限)。
    select dbms_metadata.get_ddl('USER','FUND') from  dual;--得到创建用户的sql语句。
    select dbms_metadata.get_granted_ddl('ROLE_GRANT','FUND') from dual;--得到授权的sql语句,授权后会在user_role_privs视图中显示。
    select dbms_metadata.get_ddl('INDEXE','索引名') from  dual;--得到创建索引的sql语句

    10.改变表列的定义:ALTER TABLE ...MODIFY...命令改变列的属性
    alter TABLE tablename MODIFY(column1 varchar2(400));--改变column1列的长度和数据类型
    alter TABLE tablename MODIFY(column2 DEFAULT 'xzh');--改变column2列的默认值
    alter TABLE tablename ADD(column3 NUMBER(7,2));--往表tablename中添加一列column3
    alter TABLE tablename RENAME COLUMN column1 to columnbak1;--把表tablename中的column1列的名字改为columnbak1
    alter TABLE tablename DROP COLUMN columnbak1;--删除单列columnbak1
    alter TABLE tablename DROP (columnbak1,column2);--删除多列
    alter TABLE tablename SET UNUSED (column1,column2);--将表中的column1和column2列标识为不可用
    alter TABLE tablename DROP UNUSED COLUMNS;--删除表中被标数不可用的列

    11.数据字典dba_extents(区),dba_segments(段)

    12.数据字典dba_extents(区),dba_segments(段) --查看博客园:https://www.cnblogs.com/HiJacky/p/5492181.html
    一个table的数据存放在block中,每次create table时,oracle以extent为单位分配空间,该table占用的空间为segment,segment由extent组成,extent由block组成
    对于ASSM的管理segment
    13.表空间(tableSpace) 段(segment) 盘区(extents) 块(block) 关系
    Oracle表空间(tableSpace)、段 (segment)、盘区(extent)、块(block),这些都是Oracle用来保存数据库对象的分配单元。
    14.v$PARAMETER:查看所有参数
    show parameter spfile
    15.数据库文件(数据文件,控制文件,数据库信息)信息查询
    select * from v$datafile;--查询数据文件
    select * from v$controlfile;--查询控制文件,有两个控制文件control01.ctl和control02.ctl(备份的),当control01.ctl破坏了,会从备份中拷贝过去
    select * from v$database;--查询数据库信息
    16.给用户赋予sysdba权限:
    以SYS用户进入Oracle
    SQL> grant sysdba to username;
    17.查询数据库中有哪些索引:
    select * from dba_indexes where owner = 'FUND';--查询FUND用户拥有哪些索引
    18.查询数据库中有哪些视图:
    select * from dba_views where  owner = 'FUND';--查询FUND用户拥有哪些视图
    19.查看数据库中有哪些存储过程:
    select * from dba_procedures owner = 'FUND';--查询FUND用户拥有哪些存储过程
    20.查看数据库中有哪些触发器:
    select * from dba_triggers where owner = 'FUND';--查询FUND用户拥有哪些触发器
    21.查看数据库中有哪些序列号
    select * from dba_sequences where sequence_owner = 'FUND';--查询FUND用户拥有哪些序列号
    22.查询数据库中所有的表:
    select * from dba_tables where owner = 'FUND';--查询FUND用户拥有哪些表

  • 相关阅读:
    次小生成树(SST)
    传纸条(scrip)
    动态规划练习5
    动态规划练习4
    整数的lqp拆分
    [HNOI2002]跳蚤
    BZOJ1803: Spoj1487 Query on a tree III
    51nod-1526: 分配笔名
    51nod-1615: 跳跃的杰克
    BZOJ2588: Spoj 10628. Count on a tree
  • 原文地址:https://www.cnblogs.com/zhabayi/p/8191176.html
Copyright © 2020-2023  润新知