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; Tablespace created.
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 ( id number(10) not null primary key, name varchar(2) null , city number(1) null );
11,查看表
SQL> select distinct table_name from user_tables; TABLE_NAME ------------------------------ TEST TEST1 //或者 SQL> select table_name from dba_tables where owner='TANK'; TABLE_NAME ------------------------------ TEST TEST1
注意大小写
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/oracle/1315.html