- 创建表空间,逻辑存储结构,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
- -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等组合,一般不常用