oracle用表创建新表,oracle创建表空间,用户,表等常用操作

创建表空间:

--创建表空间:

create tablespace test_tablespace

datafile 'E:\oracleDB\test.dbf'

size 500m;

--创建用户:

create user test

identified by test

default tablespace test_tablespace;

--给用户赋权限:

grant dba to test;

如果建立好用户之后.  不想给用户太多权限.  就可以这样写.

--创建用户

create user test

identified by test

default tablespace test_tablespace;

--让用户可以差看表等数据.

ALTER USER test QUOTA UNLIMITED ON test_tablespace;

--给用户赋两个基本权限.

GRANT CONNECT, RESOURCE TO test;

建立好了用户, 肯定就可能要删除用户:

--删除用户

drop user test cascade;

修改密码:

alter user system identified by manager;

修改用户名:

修改用户名时必须, 使用sysdba的连接登录才能修改用户名.  如果使用JDBC连接, 就必须要这样写才能使用sysdba连接.

Class.forName("驱动名");

Properties conProps = new Properties();

conProps.put("user", "用户名");

conProps.put("password", "密码");

conProps.put("defaultRowPrefetch", "15");

conProps.put("internal_logon", "sysdba");

conn = DriverManager.getConnection("连接URL", conProps);  SQL修改语句.

--老用户名一定是大写的. 因为oracle的数据库里保存的都是大写的. 所以新用户名也因该大写.

update user$ set name = '新用户名' where name = '老用户名';

--刷新数据库.

alter system checkpoint;

alter system flush shared_pool;

--修改了用户名之后, 密码也失效了. 所以必须修改一下密码. 此处是没有引号的.

alter user 用户名 identified by 密码;

创建表:

create table TEST(

TEST_ID number(10) PRIMARY KEY, --建立主键.

TEST_NAME varchar2(20) default 'XXXX' not null, --建立默认值. 字段不能为空.

);

comment on table TEST is '测试表'; --对表的描述.

comment on column TEST.TEST_NAME is '用户名'; --对字段的描述.

创建序列:

create sequence SEQ_TEST_ID --序列ID

minvalue 1 --最小序列

maxvalue 9999999999999999 --最大序列

start with 1 --开始

increment by 1 --增长大小

cache 8; --高速缓存

新增语句:

INSERT INTO 表名称 VALUES (值1, 值2,....)

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

删除语句:

DELETE FROM 表名称 WHERE 列名称 = 值

DELETE FROM Person WHERE LastName = 'Wilson'

查询语句:

SELECT 列名称 FROM 表名称

select userName, userPwd from test

where test.id = 0;修改语句:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'

查询MD5

--语句查询.

select Utl_Raw.Cast_To_Raw(sys.dbms_obfuscation_toolkit.md5(input_string => 'userPwd'))

from dual

GUID:

select sys_guid() from dual

查询数据库用户:

select * from dba_users; --查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system

select * from all_users; --查看你能管理的所有用户!

select * from user_users; --查看当前用户信息 !

查询数据库表:

select table_name from user_tables;

多条件判断的sql:

select

oper.opid,

oper.user_name,

oper.user_host,

case

when oper.oper_type = 1 then 'System Manager'

else oper.oper_type = 2 then 'USER Manager'

end opertype, --别名

case

when oper.oper_object_type = 1 then 'User'

when oper.oper_object_type = 2 then 'Role'

when oper.oper_object_type = 3 then 'Broker'

when oper.oper_object_type = 4 then 'QM Manager'

when oper.oper_object_type = 5 then 'User Group'

when oper.oper_object_type = 6 then 'Msg Flow'

when oper.oper_object_type = 7 then 'Queue'

end objecttype --别名.

from esb_log_user_oper oper;

ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA.

USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息

ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上

其他用户创建的对象但该用户有权访问的信息

DBA_*:有关整个数据库中对象的信息

(这里的*可以为TABLES,INDEXES,OBJECTS,USERS等。)

1、查看所有用户

select * from dba_user;

select * from all_users;

select * from user_users;

2、查看用户系统权限

select * from dba_sys_privs;

select * from all_sys_privs;

select * from user_sys_privs;

3、查看用户对象权限

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

4、查看所有角色

select * from dba_roles;

5、查看用户所拥有的角色

select * from dba_role_privs;

select * from user_role_privs;

6、查看当前用户的缺省表空间

select username,default_tablespace from user_users;

7、查看某个角色的具体权限

如grant connect,resource,create session,create view to TEST;

8、查看RESOURCE具有那些权限

用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';

获取用户有的表的列名:

SELECT * from USER_TAB_COLUMNS t;

查看用户对哪些表的列有操作权限:

SELECT * FROM user_col_privs t;

用户对某些表列进行添加权限. 注意, select权限是没有列权限的. select是通过视图来控制. 而没有使用权限.

既: grant select(列名) on 表明 to 用户   会报错.

grant update(列名) on 表明 to 用户 而使用Update则不会报错.

获取当前登录用户:

select user from dual;

将表的权限授予全体用户:

--public表示是所有的用户,这里的all权限不包括drop

grant all on product to public;

union/union all运算:将查询的返回组合成一个结果, union all不过滤重复。

[sql]  view plain copy

SELECTproduct_idFROMorder_items

UNION

SELECTproduct_idFROMinventories;

SELECTlocation_idFROMlocations

UNIONALL

SELECTlocation_idFROMdepartments;

intersect运算:返回查询结果中相同的部分。

[sql]  view plain copy

SELECTproduct_idFROMinventories

INTERSECT

SELECTproduct_idFROMorder_items;

minus运算:返回在第一个查询结果中与第二个查询结果不相同的那部分行记录。

[sql]  view plain copy

SELECTproduct_idFROMinventories

MINUS

oracle回收站, 设置开关:

alter session set recyclebin=off;

alter system set recyclebin=off;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值