oracle 创建表空间,表,以及用户
oracle要创建表要首先创建表空间,当然默认是有表空间的。而mysql创建表时,会自动创建表空间,myisam会自动建三个文件.MYD,.MYI,.frm。innodb呢,如果没有配置独立表空间的话,默认表空间ibdata1,oracle用户权限根着表空间走的,而mysql不是,mysql服务端安装好后,会自动带上一个mysql数据库,用户的权限是记录在mysql这个数据库的表中。在这方面二种数据库设计的理念不同。
1,创建临时表空间
1.SQL> create temporary tablespace test_temp
2. 2 tempfile '/opt/ora10/oradata/test/test_tmp.dbf'
3. 3 size 32m
4. 4 autoextend on
5. 5 next 32m maxsize 148m
6. 6 extent management local;
7.
8.Tablespace created.
Tablespace created.2,创建表空间
1.SQL> create tablespace test_data
2. 2 logging
3. 3 datafile '/opt/ora10/oradata/test/test_data.dbf'
4. 4 size 32m
5. 5 autoextend on
6. 6 next 32m maxsize 148m
7. 7 extent management local;
8.
9.Tablespace created.
Tablespace created.3,创建表用户,并表空间分配给用户
1.SQL> create user tank identified by tank
2. 2 default tablespace test_data
3. 3 temporary tablespace test_temp;
4.
5.User created.
User created.4,查看创建的表空间
1.SQL> select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
2. 2 from dba_tablespaces t, dba_data_files d where
3. 3 t.tablespace_name = d.tablespace_name group by t.tablespace_name;
4.
5.TABLESPACE_NAME TS_SIZE
6.------------------------------ ----------
7.SYSAUX 240
8.UNDOTBS1 25
9.TEST_DATA 32
10.USERS 5
11.SYSTEM 480
5,查看临时表空间
1.SQL> select sum(bytes)/1024/1024 "temp size(M)" from dba_temp_files where tablespace_name='TEST_TMP';
2.
3.temp size(M)
4.------------
6,将表空间的部分操作权限分配给用户
1.SQL> grant connect,resource to tank;
2.
3.Grant succeeded.
7,resource这是一个权限组,有这个组就不要一个一个加了。
1.SQL> select GRANTEE,PRIVILEGE from DBA_SYS_PRIVS where GRANTEE ='RESOURCE';
2.
3.GRANTEE PRIVILEGE
4.------------------------------ ----------------------------------------
5.RESOURCE CREATE TRIGGER
6.RESOURCE CREATE SEQUENCE
7.RESOURCE CREATE TYPE
8.RESOURCE CREATE PROCEDURE
9.RESOURCE CREATE CLUSTER
10.RESOURCE CREATE OPERATOR
11.RESOURCE CREATE INDEXTYPE
12.RESOURCE CREATE TABLE
13.
14.8 rows selected.
以下操作我都是能以tank这个用户进行操作的
9,创建表
1.create table test(
2.id number(10) not null primary key,
3.name varchar(2) null ,
4.city number(1) null
5.);
10,创建临时表
1.CREATE GLOBAL TEMPORARY TABLE test1 (
2.id number(10) not null primary key,
3.name varchar(2) null ,
4.city number(1) null
5.);
11,查看表
1.SQL> select distinct table_name from user_tables;
2.
3.TABLE_NAME
4.------------------------------
5.TEST
6.TEST1
7.
8.//或者
9.SQL> select table_name from dba_tables where owner='TANK';
10.
11.TABLE_NAME
12.------------------------------
13.TEST
14.TEST1