oracle操作笔记

来源:互联网 发布:不锈钢行情走势软件 编辑:程序博客网 时间:2024/05/20 23:34

一、创建数据库

1、创建用户

SQL> create user username identified by password;username:用户名password:密码

 

2、创建临时表空间

create temporary tablespace templ_tablespaceNmae  tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 10m  autoextend on  next 10m maxsize 50mtempl_tablespaceNmae:命名临时表空间名称路径、数据大小自定义

3、创建命名空间

create tablespace tablespaceName  nologging  datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' size 10m  autoextend on  next 10m maxsize 100m如果需要日志,将nologging 改为logging;tablespaceName:命名空间名称;路径、数据大小自定义

4、将空间分配给用户
SQL> alter user username default tablespace tablespaceName;username:用户名tablespaceName:命名空间名称
5、给用户授权

SQL> grant create session,create table,unlimited tablespace to username;username:用户名
6、连接数据库

SQL> conn username/password;连接数据库

二、忘记密码时修改方式

1、用安装ORACLE的用户登录:sqlplus / as sysdba;
2、修改用户密码:

alter user system identified by password;这里是将用户名为system的用户密码修改为password一次类推可以用此方法修改别的用户名密码:alter user sys identified by password;
3、连接数据库connect sys/password


三、oracle使用技巧

1、复制并创建一张表

create table test1 as (select * from test)创建test1表,并完全复制test表


2、创建序列

CREATE SEQUENCE [user.]sequence_name
[increment by n]
[start with n]
[maxvalue n | nomaxvalue]
[minvalue n | nominvalue];
INCREMENT BY: 指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。
START WITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。
MAXVALUE:指定序列可生成的最大值。
NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。
MINVALUE:指定序列的最小值。
NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。
举例:
create sequence SEQ_IDincrement by 1start with 1maxvalue 999999999;
查询序列的语句:
select SEQ_ID.NEXTVAL from dual


3、更改序列

ALTERSEQUENCE [user.]sequence_name
[INCREMENT BY n]
[MAXVALUE n| NOMAXVALUE ]
[MINVALUE n | NOMINVALUE];
修改序列可以:
 修改未来序列值的增量。
 设置或撤消最小值或最大值。
 转变缓冲序列的数目。
 指定序列号是否是有序。

4、删除序列

DROP SEQUENCE [user.]sequence_name;
从数据库中删除一序列。

5、数据库时间字段值与当前数据库时间对比
select * from Table T where to_char(T.date,'yyyy-MM-dd') > to_char(sysdate,'yyyy-MM-dd');
SELECT to_char(to_date('T.date','yyyy-mm-dd HH24:mi'),'yyyy-mm-dd HH24:mi') FROM table T; --T.date = 2002-08-26 14:22

6、查询出表中字段值重复数据

select Table1.* from Table1 right join ( select ID1, ID2 From Table1 Group by ID1, ID2 having Count(ID1) > 1 and Count(ID2) > 1 ) T on Table1.id1 = T.id1 and Table1.id2 = T.id2 


7、分页查询

SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM table_name) A WHERE ROWNUM <= 40)WHERE RN >= 21

8、查询出表中字段值非重复数据

select Table1.* from Table1 right join ( select ID1, ID2 From Table1 Group by ID1, ID2 having Count(ID1) > 1 and Count(ID2) > 1 ) T on Table1.id1 = T.id1 and Table1.id2 = T.id2 
select Table1.* from Table1 right join ( select ID1, ID2 From Table1 Group by ID1, ID2 having Count(ID1) = 1 and Count(ID2) = 1 ) T on Table1.id1 = T.id1 and Table1.id2 = T.id2

这个语句与第六条语句的区别在于把大于号改成等号


9、删除用户

drop user username;
如果报无法删除当前连接用户,执行以下语句查找sid,和serial#编码:

select username,sid,serial# from v$session;
找到对应的sid及serial#号码,在下面语句中对号入座,删除用户连接:

alter system kill session'532,4562'; 
然后再执行删除用于语句。


10、移除用户权限

revoke CREATE USER,ALTER USER,DROP USER from syj --取消syj用户权限和对象特权












8、查询出表中字段值非重复数据

select Table1.* from Table1 right join ( select ID1, ID2 From Table1 Group by ID1, ID2 having Count(ID1) > 1 and Count(ID2) > 1 ) T on Table1.id1 = T.id1 and Table1.id2 = T.id2 
select Table1.* from Table1 right join ( select ID1, ID2 From Table1 Group by ID1, ID2 having Count(ID1) = 1 and Count(ID2) = 1 ) T on Table1.id1 = T.id1 and Table1.id2 = T.id2

这个语句与第六条语句的区别在于把大于号改成等号

原创粉丝点击