ORACLE学习笔记

简介:

2006/10/8

ORACLE学习笔记

====================
***ORACLE学习笔记***
====================
????????????? by?  boyi55
------------------------------


===================
默认用户密码
--------
***system:manager***
***sys:change_on_install***
***scott:tiger***
***ose$http$admin:创建时随机生成***
***dbsnmp:dbsnmp***
***outln:outln***
***aurora$orb$unaut:创建时随机生成***
---------
创建账户:
create user fengjicai identified by "038134" account unlock;
---------
修改账户口令:
alter user username identified by password;
---------
修改已锁定的账户口令:
alter user username identified by password account unlock;
---------
锁定账户:
alter user username account lock;
---------
解锁账户:
alter user username account unlock;
---------
授予权限:
grant sysdba to fengjicai;
---------
收回权限:
revoke sysdba from fengjicai;
---------
创建口令文件:
orapwd file=filename password=password entrles=max users;
---------
更改数据库名:
alter database rename global_name



==========
表操作
-----
数据类型
---
varchar2(size)
char(size)
number(p,s)
date
long
clob
raw and long raw
blob
bfile
rowid
timestamp
interval year to month
interval dat to second
--------------------
***用子查询创建表***
--------------------
create table tt3
as
select * from scott.emp;
-------------
***修改表***
-------------
**增加列**
----------
alter table  boyi55
add (fname varchar2(20) default 'unknown',
address varchar2(30) null);
----------
**修改列**
----------
alter table  boyi55
modify (fname varchar2(30));
----------
**删除列**
----------
alter table  boyi55
drop column fname;
----------
**表改名**
----------
rename tt3 to tt2
--把表tt3改为表tt2
----------
**清空表**
----------
truncate table  boyi55--不可回溯
delete table  boyi55--可以回溯
----------
**表注释**
----------
comment on table  boyi55
is 'These are  boyi55 information';
=================
***constraints***
=================
create table test1
(id int not null,
lname varchar(20),
fname varchar(20),
constraint uk_test1_1 unique(lname,fname);
----------
alter table  boyi55
drop constaint pk_boyi;
--------
alter table  boyi55
disable/enable constraint pk_boyi;
--------
alter table  boyi55
drop (pk) cascade constraints;
----------
select constraint_name,column_name
from user_cons_columns
----------
==========
***修改视图***
==========
create or replace view testview1
as
select * from  boyi55
----------
create force view testview
as
select * from ttt;--创建基于未存在的表ttt上的视图
----------
create view testview
as
select stor_id,sum(qty) as qty from sales
group by stor_id
--sum(qty)一定要指定别名。
-------------
update testview
set qty=10
where stor_id=6380
-----------
create or replace view boyi
as
select * from  boyi55
where id>10
with check option
--with read only;
------------
select * from (select stor_id,qty from sales)as tt
===============
在数据库运行过程中把数据库切换为只读模式
alter database open read only;
---------
从只读模式切换回读写模式
alter database open read write;
---------
强行启动数据库
startup force;
--如果在强行启动时,数据库已经有一个实例正在运行,oracle将首先关闭该实例,然后再重新为这个数据库启动一个新的实例。
------
以不连接数据库方式启动SQL*PLUS;
sqlplus /nolog
------
数据库实例在启动时必须读取一个初始化参数文件,oracle需要从初始化参数文件中获得有关实例的参数配置信息。如果在执行startup语句时没有指定PFILE参数,oracle首先读取默认位置的服务器端初始化参数文件(SPFILE<SID>.ora),如果没有找到默认的服务器端安化参数文件,oracle将继续读取默认位置的文本安化参数文件(init<SID>.ora).
------
使用非默认的文本初始化参数文件启动实例:
startup pfile= d:/oracle/ora90/database/temp/init01.ora
--------
使用非默认的服务器端初始化参数文件启动实例:
a.创建文本初始化参数文件:
? d:/oracle/ora90/database/temp/spf_init.ora
内容为:
? spfile=d:/oracle/ora90/database/test_spfile.ora
b.执行:startup pfile=d:/oracle/ora90/database/temp/spf_init.ora
--------
启动实例但不加裁数据库
--任何人都 无法访问数据库。一般只有在进行创建数据库,重建控制文件等操作时才彩该模式。
startup nomount
---------
启动实例并加裁数据库,但不打开数据库。在这种启动模式下只有DBA才能访问数据库。但是只能执行一些有限的管理操作。普通用户此时不能访问数据库。
startup mount
---------
正常启动:
a.非受限状态:所有用户都可以访问数据库
startup
切换到受限状态
?alter system enable restricted session;
b.受限状态:只有DBA才能访问数据库
startup restrict
恢复为非受限状态:
alter system disable restricted session;
--------
为实例加裁数据库
alter database mount;
--------
从加裁状态进入打开状态
alter database open;
----------
正常关闭方式
shutdown normal
下次启动数据库不需要任何恢复
--------
立即关闭方式
shutdown immediate
----------
终止关闭方式
shutdown abort
下一次启动数据库时需要进行恢复
----------
事务关闭方式 
shutdown transactional
阻止任何用户建立新的连接和新的事务。
---------
***进入静默状态***
alter system quiesce restricted;
---------
退出静默状态
alter system unquiesce;
----------
查询静默状态
select * from v$instance;
-----------
***进入挂起状态***
alter system suspend;
----------
退出挂起状态
alter system resume;
------------
查询挂起状态
select database_status from v$instance
---------
加收表。索引等对象中未使用的区
alter table table_name deallocate unused;
---------
****获取回退段规则****
-----
规则1--实例必须至少获取一个回退段,如果仅有一个实例访问数据库,将为化分配SYSTEM回退段。如果同时有多个实例访问同一个数据库,除了将SYSTEM回退段作为各个实例的公用回退段来使用外。还必须至少为每个实例再分配一个非SYSTEM回退段。如果 非SYSTEM回退段的数目不足。实例将无法启动。
-----
规则2--实例所需回退段的总数计算方式
ceil(transactions/transactions_per_rollback_segment)
-----
规则3--在获取了SYSTEM回退段后,下一步,实例将试图获取由初始化参数ROLLBACK—SEGMENTS参数所指定的私有回退段。这个分配是强制性的,即使ROLLBACK—SEGMENTS参数所指定的私有回退段数目超过了规则2中计算出的所需回退段数目,实例仍然会获取所有指定的私有回退段。
-----
规则4--如果在规则3中实例已经获取的私有回退段数目等于或大于在规则2中计算出的所需回退段数目,分配过程至此为止。否则,实例将浓度申请公有回退段,以补偿所差的数目
--------
将撤销记录保留时间改为20分钟:
alter system set undo_retention=1200;
------
创建表,主键,同时为索引指定了表空间
create table students
(student_id varchar2(10),
student_name varchar2(30),
college_major varchar2(15),
status varchar2(20))
tablespace feng;


alter table students
add constraint pk_students primary key(student_id)
using index tablespace student_index;
----------
set serveroutput on--设置把缓冲区内容打印到屏幕
execute dbms_output.enable(1000000);--设置缓冲区大小,默认为:20000
dmbs_output.put_line('hello');--屏幕输出hello
--------------
create table temp(n number constraint pk_temp primary key);
begin 
insert into temp values(1);
insert into temp value*(1);
**ception
when others then
? dbms_output.put_line('Error code:'||sqlcode||'***');
dbms_output.put_line('Error message:'||sqlerrm||'****');
end;
---------------------
grant execute on dbms_output to public;--scott和所有以后创建的账户在PL/SQL中都可以调用DBMS_OUTPUT
create public synonym dbms_output for sys.dbms_output;--为public 创建同义词。
--给public直接调用DBMS_OUTPUT的能力。
--只执行第一条则scott要的语句要写成
sys.dbms_output.put_line('hello');
--两条都执行则scott的语句可写成
dbms_output.put_line('hello');
--------------------------
修改默认权限:
alter user scott default role connect,resource;
把权限较少的角色hr授权给hr_admin:
grant hr to hr_admin;
使角色生效:
set role hr_admin;









本文转自 boyi55 51CTO博客,原文链接:http://blog.51cto.com/boyi55/26950,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析2
oracle基本笔记整理及案例分析2
13 0
|
2月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析1
oracle基本笔记整理及案例分析1
18 0
|
2月前
|
SQL Oracle 关系型数据库
oracle笔记整理2
oracle笔记整理2
11 0
|
2月前
|
SQL Oracle 关系型数据库
oracle基本笔记整理
oracle基本笔记整理
13 0
|
3月前
|
Oracle 关系型数据库 数据处理
某教程学习笔记(一):10、oracle数据库注入
某教程学习笔记(一):10、oracle数据库注入
19 0
|
9月前
|
SQL Oracle 关系型数据库
Oracle笔记1
Oracle笔记1
101 0
|
12月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析2
oracle基本笔记整理及案例分析2
59 0
|
12月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析1
oracle基本笔记整理及案例分析1
78 0
|
12月前
|
SQL Oracle 关系型数据库
oracle基本笔记整理
oracle基本笔记整理
55 0
|
12月前
|
存储 SQL 监控
实践笔记:Oracle-表按天分区
实践笔记:Oracle-表按天分区
133 0

推荐镜像

更多