oracle要建立表要首先建立表空間,當然預設是有表空間的。而mysql建立表時,會自動建立表空間,myisam會自動建三個文 件.MYD,.MYI,.frm。innodb呢,如果沒有配置獨立表空間的話,預設表空間ibdata1,oracle使用者權限根着表空間走的,而 mysql不是,mysql伺服器端安裝好後,會自動帶上一個mysql資料庫,使用者的權限是記錄在mysql這個資料庫的表中。在這方面二種資料庫設計 的理念不同。
1,建立臨時表空間
檢視複制列印?
SQL> create temporary tablespace test_temp
2 tempfile '/opt/ora10/oradata/test/test_tmp.dbf'
3 size 32m
4 autoextend on
5 next 32m maxsize 148m
6 extent management local;
Tablespace created.
2,建立表空間
SQL> create tablespace test_data
2 logging
3 datafile '/opt/ora10/oradata/test/test_data.dbf'
4 size 32m
5 autoextend on
6 next 32m maxsize 148m
7 extent management local;
3,建立表使用者,并表空間配置設定給使用者
SQL> create user tank identified by tank
2 default tablespace test_data
3 temporary tablespace test_temp;
User created.
4,檢視建立的表空間
SQL> select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
2 from dba_tablespaces t, dba_data_files d where
3 t.tablespace_name = d.tablespace_name group by t.tablespace_name;
TABLESPACE_NAME TS_SIZE
------------------------------ ----------
SYSAUX 240
UNDOTBS1 25
TEST_DATA 32
USERS 5
SYSTEM 480
5,檢視臨時表空間
SQL> select sum(bytes)/1024/1024 "temp size(M)" from dba_temp_files where tablespace_name='TEST_TMP';
temp size(M)
------------
6,将表空間的部分操作權限配置設定給使用者
SQL> grant connect,resource to tank;
Grant succeeded.
7,resource這是一個權限組,有這個組就不要一個一個加了。
SQL> select GRANTEE,PRIVILEGE from DBA_SYS_PRIVS where GRANTEE ='RESOURCE';
GRANTEE PRIVILEGE
------------------------------ ----------------------------------------
RESOURCE CREATE TRIGGER
RESOURCE CREATE SEQUENCE
RESOURCE CREATE TYPE
RESOURCE CREATE PROCEDURE
RESOURCE CREATE CLUSTER
RESOURCE CREATE OPERATOR
RESOURCE CREATE INDEXTYPE
RESOURCE CREATE TABLE
8 rows selected.
以下操作我都是能以tank這個使用者進行操作的
9,建立表
create table test(
id number(10) not null primary key,
name varchar(2) null ,
city number(1) null
);
10,建立臨時表
CREATE GLOBAL TEMPORARY TABLE test1 (
11,檢視表
SQL> select distinct table_name from user_tables;
TABLE_NAME
------------------------------
TEST
TEST1
//或者
SQL> select table_name from dba_tables where owner='TANK';
TEST1