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