用sqlplus建立表相关纪要

打开sqlplus。
登陆的时候输入帐户密码:system/p*****

好像,需要选择以什么角色进入,忘记了。
显示当前数据库的sid:
 select name from v$database;

结果是和我在enterprise manager console里面得到的一样:zaka.

show user 显示出当前连接的用户。

select username,default_tablespace from user_users;
这里就可以显示当前用户和当前用户默认的表空间,结果都是system,正常。

select * from user_sys_privs;
select * from user_tables;显示当前用户下的所有表。

select * from tab;这个语句才是真的显示所有表,上个语句显示的太多了无法看清。

更换用户是用: connect scott/tiger as sysdba;

现在做个测试,建立一个表用enterrise manager console,但是不同的是system帐户,在不同的表空间下建立,也就是说不在system空间下建立,不在默认的实例下建立。
再建立一个表直接用sqlplus最简单的建立,看其默认的参数在那里。
再就是用sqlplus在指定的地方建立指定的表。

create table test1(
test_id integer not null);
由于登陆的帐户密码是在scott下面,所以表test1出现在scott 方案下面表空间system.

问题来了,这个方案,是否是每个帐户使用一个默认的方案?

做了一个小测试
切换到system的帐户下面区。
create table test1(test_id integer not null);
同样建立表成功。并且索引也不冲突。
但是在enterprise mn console里面发现其默认的方案不是system,而是sys.

问题来了,怎么查询当前用户下的默认的方案?

查询了半天无法找到原因,可能是问题太过于弱智了,网络不屑于回答。
so ,我自己建立一个帐户测试一下。
建立了一个f**/p**

重新用foujo的帐号登陆,sqlplus运行create table test1发现有问题,
提示无权使用users表空间,
这个users表空间意思就是你建立一个帐户,自己建立一个帐户的时候系统默认,可能是sqlplus默认
的使用表空间。
所以就有以上错误。

so,
返回到enterprise console在安全性>用户下面找到foujoe的帐户,
修改里面的限额选项卡
选中users,限额大小修改为无限制。
最后create test1成功,
所使用的默认方案是foujoe,这个方案是系统自己在建立foujo帐户的时候自己自动生成的。
说明一个问题,我猜测的啊:不能在同一个方案下面生成同名的表
可以在同一个表空间下有同样的表名字,包括那些个索引啊。
所以说,索引等obj是由方案来区分的。
done.

最后test了半天把foujoe这个帐户给弄乱了。
需要删除。
在安全性选项下面选择移除的时候提示foujoe仍然在connect,所以只好到例程>会话 里面找到foujoe的connection.
kill 掉。
然后才能删除。

我一开始建立的表在system这个帐户下面。
所以想移动到我自己建立的帐户方案下。
不过找到一个方法就是 在source table 端执行类似创建就可以搞定问题。
done.

现在发现一个问题。
在oracle中,一切皆对象,index也是一个对象,就是索引,主键一般作为索引。
如果主键是数字那么主键对象名字就以table开头,后面跟一串乱码。
如果主键是字符串那么就一sys打头,这个好像是oracle的规矩吧。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值