oracle数据库表空间,用户权限,分区表创建基础知识(一)

  1. 创建表空间,逻辑存储结构,oracle表名不区分大小写,表空间的分类,永久表空间,临时表空间,undo表空间

 

  • --一般创建表空间应以系统管理员权限sys创建

 

  • --创建表空间
               create tablespace tablespace_test1 datafile 'file.dbf' size 10m;
  • --创建临时表空间

         create temporary tablespace tablespace_test2 tempfile 'tempfile.dbf' size 10m;

  • --查看表空间文件信息

        SQL> select file_name from dba_temp_files where tablespace_name='TABLESPACE_TEST2';

                    FILE_NAME
                    --------------------------------------------------------------------------------
                   D:\APP\18349\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEMPFILE.DBF

                   SQL> select file_name from dba_data_files where tablespace_name ='TABLESPACE_TEST1';

                   FILE_NAME
                    --------------------------------------------------------------------------------
                   D:\APP\18349\PRODUCT\11.2.0\DBHOME_1\DATABASE\FILE.DBF

  1. -oracle用户管理
  • --创建用户,sys管理员用户-

create user Libaobao identified by 222818 default tablespace TABLESPACE_TEST1 temporary tablespace TABLESPACE_TEST2;

  • --查看所有用户情况

select username from dba_users;

  • --赋予用户连接权限

grant connect to Libaobao;

  • --用新建的用户登录

conn Libaobao/222818;
conn Libaobao/222818 @orcl

  • --修改用户密码

alter user Libaobao identified by L222818;

  • --sys管理员用户登录  conn sys/222818 as sysdba

    alter user Libaobao account lock;
    --解锁新建用户
    alter user Libaobao account unlock;
  • --锁定新建用户
  • --删除该新建用户
  • drop user Libaobao cascade;
  • --在删除用户前必须回收权限,才能进行相关用户的删除,且必须断开连接
  • revoke connect from Libaobao;
  • drop user Libaobao cascade;
  • --查看该数据库中的所有表
  • select table_name from all_tables;
  • select * from dual;
  • --当前用户没有该数据库的创建,删除,修改等权限
  • grant create table to Libaobao;
  • --授予创建权限后创建表成功
  • create table TestT(id int,name varchar2(10));
  • --在创建用户后,如果创建了表,管理员用户是不可见的
  • conn sys/222818 @orcl as sysdba;
  • grant connect,resource,dba to Libaobao;
  • conn Libaobao/222818 @orcl;
  • insert into Testt values(1001,'小明');
  • select * from testt;
  • --但是sys dba管理员用户不能看到该Libaobao用户下的数据表并进行相关操作。

    create role libaobaorole1;
  • --创建角色
  • grant connect,resource,dba to libaobaorole1;
  • grant libaobaorole1 to Libaobao;
  • --删除角色
  • drop role libaobaorole1;
  • --表空间管理

    select tablespace_name from dba_tablespaces;
    select tablespace_name from user_tablespaces;
  • --查看用户的表空间,相关数据字典:dba_tablespaces,user_tablespaces
  • SQL> select tablespace_name from dba_tablespaces;
  • TABLESPACE_NAME
  • ------------------------------
  • SYSTEM
  • SYSAUX
  • UNDOTBS1
  • TEMP
  • USERS
  • EXAMPLE
  • TABLESPACE_TEST1
  • TABLESPACE_TEST2
  • 8 rows selected
  • SQL> select tablespace_name from user_tablespaces;
  • TABLESPACE_NAME
  • ------------------------------
  • SYSTEM
  • SYSAUX
  • UNDOTBS1
  • TEMP
  • USERS
  • EXAMPLE
  • TABLESPACE_TEST1
  • TABLESPACE_TEST2
  • 8 rows selected
  • --普通用户没有权限查看dba_tablespaces


  • SQL> select default_tablespace,temporary_tablespace from dba_users where username='SYSTEM';
  • --dba_users查看数据库所有用户的用户信息,user_users用来查看当前用户的用户信息
  • DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
  • ------------------------------ ------------------------------
  • SYSTEM                         TEMP
  • SQL> select username,default_tablespace,temporary_tablespace from dba_users;
  • USERNAME                       DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
  • ------------------------------ ------------------------------ ------------------------------
  • MGMT_VIEW                      SYSTEM                         TEMP
  • SYS                            SYSTEM                         TEMP
  • SYSTEM                         SYSTEM                         TEMP
  • DBSNMP                         SYSAUX                         TEMP
  • SYSMAN                         SYSAUX                         TEMP
  • SCOTT                          USERS                          TEMP
  • LIBAOBAO                       USERS                          TEMP
  • OUTLN                          SYSTEM                         TEMP
  • FLOWS_FILES                    SYSAUX                         TEMP
  • MDSYS                          SYSAUX                         TEMP
  • ORDSYS                         SYSAUX                         TEMP
  • EXFSYS                         SYSAUX                         TEMP
  • WMSYS                          SYSAUX                         TEMP
  • APPQOSSYS                      SYSAUX                         TEMP
  • APEX_030200                    SYSAUX                         TEMP
  • OWBSYS_AUDIT                   SYSAUX                         TEMP
  • ORDDATA                        SYSAUX                         TEMP
  • CTXSYS                         SYSAUX                         TEMP
  • ANONYMOUS                      SYSAUX                         TEMP
  • XDB                            SYSAUX                         TEMP
  • USERNAME                       DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
  • ------------------------------ ------------------------------ ------------------------------
  • ORDPLUGINS                     SYSAUX                         TEMP
  • OWBSYS                         SYSAUX                         TEMP
  • SI_INFORMTN_SCHEMA             SYSAUX                         TEMP
  • OLAPSYS                        SYSAUX                         TEMP
  • ORACLE_OCM                     USERS                          TEMP
  • XS$NULL                        USERS                          TEMP
  • BI                             USERS                          TEMP
  • PM                             USERS                          TEMP
  • MDDATA                         USERS                          TEMP
  • IX                             USERS                          TEMP
  • SH                             USERS                          TEMP
  • DIP                            USERS                          TEMP
  • OE                             USERS                          TEMP
  • APEX_PUBLIC_USER               USERS                          TEMP
  • HR                             USERS                          TEMP
  • SPATIAL_CSW_ADMIN_USR          USERS                          TEMP
  • SPATIAL_WFS_ADMIN_USR          USERS                          TEMP
  • 37 rows selected
  • SQL> select username,default_tablespace,temporary_tablespace from user_users;
  • USERNAME                       DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
  • ------------------------------ ------------------------------ ------------------------------
  • SYS                            SYSTEM                         TEMP
  • --修改用户的默认或临时表空间,该表空间是我们在上面创建的
  • alter user Libaobao default tablespace TABLESPACE_TEST1 temporary tablespace TABLESPACE_TEST2;
  • --查看是否修改成功
  • select default_tablespace,temporary_tablespace from dba_users where username='LIBAOBAO';
  • --修改表空间,修改表空间的状态(联机和脱机状态)
  • alter tablespace TABLESPACE_TEST1 offline;--更改为脱机状态,将不可访问
  • alter tablespace TABLESPACE_TEST1 online;--联机状态
  • --查看表空间状态
  • select status from dba_tablespaces where tablespace_name='TABLESPACE_TEST1';
  • SQL> select status from dba_tablespaces where tablespace_name='TABLESPACE_TEST1';
  • STATUS
  • ---------
  • ONLINE
  • ----------------------------------------------------------------------------------------------

    alter tablespace TABLESPACE_TEST1 read only;--只读状态
    alter tablespace TABLESPACE_TEST1 read write;--可读写状态
  • --修改表空间状态2,只读或可读写状态,只读状态dba用户都无法进行数据写入,也无法修改数据
  • --查看表空间状态
  • select status from dba_tablespaces where tablespace_name='TABLESPACE_TEST1';
  • --向表空间增加数据文件
  • alter tablespace TABLESPACE_TEST1 add datafile 'file1.dbf' size 10m;
  • --查看表空间数据文件
  • select file_name from dba_data_files where tablespace_name='TABLESPACE_TEST1';
  • SQL> select file_name from dba_data_files where tablespace_name='TABLESPACE_TEST1';
  • FILE_NAME
  • --------------------------------------------------------------------------------
  • D:\APP\18349\PRODUCT\11.2.0\DBHOME_1\DATABASE\FILE.DBF
  • D:\APP\18349\PRODUCT\11.2.0\DBHOME_1\DATABASE\FILE1.DBF
  • --删除数据文件(特别注意,我们不能删除表空间中的第一个文件,如果需要删除的话,我们需要把整个表空间删除掉)
  • SQL> alter tablespace TABLESPACE_TEST1 drop datafile 'FILE1.DBF';
  • Tablespace altered
  • SQL> select file_name from dba_data_files where tablespace_name='TABLESPACE_TEST1';
  • FILE_NAME
  • --------------------------------------------------------------------------------
  • D:\APP\18349\PRODUCT\11.2.0\DBHOME_1\DATABASE\FILE.DBF
  • --删除表空间
  • drop tablespace TABLESPACE_TEST1;--只删除表空间而不删除数据文件
  • drop tablespace TABLESPACE_TEST1 including contents;--删除表空间的同时删除数据文件
  • --sql developer tools的使用
  • ORACLE表分区简单示例

  • /*--range分区--*/
  • --主键和分区没多大联系
  • create table sale(
  •              public_id varchar(10),
  •              sail_count number(10,2)
  •        )partition by range(sail_count)(
  •                  partition p1 values less than(1000),  
  •                  partition p2 values less than(2000),
  •                  partition p3 values less than(3000)    
  •        );
  • --查看所有表的分区情况
  • select * from user_tab_partitions;
  • select * from sale partition(p1);--查询某一个分区
  • --添加分区
  • alter table sale add partition p4 values less than(4000);
  • insert into sale values('l1001',3500);
  • select * from sale partition(p4);
  • --删除分区
  • alter table sale drop partition p3;
  • --下面两条sql语句联合使用才能使得数据和分区得到修改
  • alter table sale enable row movement;
  • update sale set sail_count=100 where public_id='l1001';
  •  
  • /*分区索引*/
  • create index idx_count on  sale(sail_count) local;
  • select * from user_ind_partitions;--查看分区索引
  • --创建全局前缀索引
  • create index idx_counts on sale(sail_count) global
  •        partition by range(sail_count)(
  •         partition p5 values less than(5000),
  •         partition p6 values less than(maxvalue)
  •        );
  •        
  • --全局索引
  • create index idx_scount on sale(sail_count) global;--一般不建议建全局索引,性能不会提高太多
  • --hash分区--平均分数据,不能指定值大小--
  • create table my_emp(
  •        emp_id varchar(10),
  •        emp_num number(10,2)
  • )partition by hash(emp_num)(
  •            partition p1,
  •            partition p2
  • );
  • select * from user_tab_partitions;
  • --List列表分区
  • create table persistity(
  •        id varchar2(10),
  •        name varchar2(10),
  •        city varchar2(15)
  • )partition by List(city)(
  •            partition east values('shanghai','shenzhen'),
  •            partition west values('xian')
  • );
  • select * from user_tab_partitions;
  • select * from persistity partition(east);
  • --复合分区range和hash range和list等组合,一般不常用
  • /*--range分区--*/
  • --主键和分区没多大联系
  • create table sale(
  •              public_id varchar(10),
  •              sail_count number(10,2)
  •        )partition by range(sail_count)(
  •                  partition p1 values less than(1000),  
  •                  partition p2 values less than(2000),
  •                  partition p3 values less than(3000)    
  •        );
  • --查看所有表的分区情况
  • select * from user_tab_partitions;
  • select * from sale partition(p1);--查询某一个分区
  • --添加分区
  • alter table sale add partition p4 values less than(4000);
  • insert into sale values('l1001',3500);
  • select * from sale partition(p4);
  • --删除分区
  • alter table sale drop partition p3;
  • --下面两条sql语句联合使用才能使得数据和分区得到修改
  • alter table sale enable row movement;
  • update sale set sail_count=100 where public_id='l1001';
  •  
  • /*分区索引*/
  • create index idx_count on  sale(sail_count) local;
  • select * from user_ind_partitions;--查看分区索引
  • --创建全局前缀索引
  • create index idx_counts on sale(sail_count) global
  •        partition by range(sail_count)(
  •         partition p5 values less than(5000),
  •         partition p6 values less than(maxvalue)
  •        );
  •        
  • --全局索引
  • create index idx_scount on sale(sail_count) global;--一般不建议建全局索引,性能不会提高太多
  • --hash分区--平均分数据,不能指定值大小--
  • create table my_emp(
  •        emp_id varchar(10),
  •        emp_num number(10,2)
  • )partition by hash(emp_num)(
  •            partition p1,
  •            partition p2
  • );
  • select * from user_tab_partitions;
  • --List列表分区
  • create table persistity(
  •        id varchar2(10),
  •        name varchar2(10),
  •        city varchar2(15)
  • )partition by List(city)(
  •            partition east values('shanghai','shenzhen'),
  •            partition west values('xian')
  • );
  • select * from user_tab_partitions;
  • select * from persistity partition(east);
  • --复合分区range和hash range和list等组合,一般不常用
     

猜你喜欢

转载自blog.csdn.net/yangyang222222222/article/details/83543433