当前位置:文档之家› Oracle笔记

Oracle笔记

Oracle笔记
Oracle笔记

——第一天

oracle数据库安装上去了以后

就只有一个数据库实例

当你安装了数据库以后

oracle会自动的生成sys,system

sys叫做超级管理员权限是最大的

它会拥有一个角色sysdba

默认的密码是change_on_install

system叫做管理操作员,他会拥有一个

sysoper角色,没有createdatabase的权限

系统还会给你一个账户scott 密码叫tiger

1.第一个命令conn 通过命令连接数据库

语法是conn 账户名/密码as sysdba

2.show user查看当前的账户在使用当前的数据库

语法就是show user

3.断开数据库的连接

语法:disc; disconnect的简写

4.修改密码

语法:passw --password的简写

如果说你想要修改其他的密码,一定要以SYS/system这两个管理员得账户登录

5.退出这个命令窗口

exit

只要运行完一个命令后面一定要加;

6.运行或加载sql脚本的命令

@脚本的路径/start脚本的路径

7.编辑这个脚本

edit 脚本的路径

8.创建一个用户的语法

如果要创建一个用户的话必须要以sys或system的权限登录create user用户名identified by密码

如果用户名或密码都不记得了怎么办

可以以空用户登录

只要你创建了一个用户

这个用户是没有任何的权限的

所以必须授予一些权限给它

第一个权限

create session登录的权限

第二个权限

create table建表的权限

授予一个用户权限

只能是sys/system

9.修改用户密码

alter user用户名identified by密码

10.授予用户权限的语法

grant create session to zhangsan

11.删除一个用户

drop user用户名

如果说我们的用户下面有了表的话,不能删除的

如果要删除的话,必须在drop user用户名cascade

cascade级联

oracle建立的表都是基于用户的

select*from system_privilege_map order by name

oracle常用的系统权限

create table update insert delete select drop alter create session Oracle的常用的内置对象

对象的概念:对象都是来辅助对表的操作可以简化表的操作

function函数

procedure存储过程

pakeage 包合理的组织存储过程和函数的相当于一个容器

type类型 ORALCE中可以自定义类型

trigger触发器

table表

index索引

constraints约束

view视图

Sequenece 序列

users用户

roles角色

synonyms 同义词

一般在使用JDBC操作ORALCE数据库的时候

一般是使用ORACLE中的SCOTT用户登录的

SCOTT针对我们的的系统来说

一些常见的操作都可以满足

oracle 角色

一个角色中封装了多个系统权限和对象权限

多个系统权限和多个对象权限构成了一个角色

角色是相关权限的集合,我们使用角色的目的就是为了简化对权限的管理

角色分为预定义角色和自定义角色两种

预定义角色:系统帮我们已经做好的角色(oracle帮助我们做好的东西)

每一个预定义角色都用于执行一些特定的任务

ORACLE数据库常用的预定义角色

connect角色

connect角色具有一般应用开发人员需要的大部分权限,当建立了一个用户后,多数情况下,只要给用户授予connect角色就可以了

这个角色的权限有哪些?

create session

create table

create database link

create sequence

create cluster

alter session

resource角色

resource角色具有应用开发人员所需要的其他权限,比如说建立存储过程触发器

create cluster

create indextype

create table

create sequence

create type

create trigger

create procedure

dba角色

dba角色具有所有的系统权限,默认的dba的用户是sys和system,它具有

sys/system

所有的权利,除了启动和关闭数据库之外

select*from scott.emp

create user zhangsan identified by zhangsan

alter user zhangsan identified by123

grant create user to zhangsan

grant select on scott.emp to zhangsan with grant option

create session登陆的权限

create table建表的权限

create user lisi identified by lisi

grant create session to lisi

grant select on scott.emp to lisi

select*from scott.emp

select*from system_privilege_map order by name

insert into student select*from student

grant connect to zhangsan with admin option

create role java01

grant create session to java01 权限给予角色

drop user lisi

grant java01 to lisi 把角色给予用户

权限(系统权限和用户权限)角色用户--表

drop role java01

alter table score add score_avg int增加表字段

alter table score drop column score_avg 删除表字段

alter table score modify(score_avg varchar(20))修改表字段

rename score to socre 修改表的名字

--------------------------------------------------------------------------------

表空间的概念

在oracle中逻辑结构包括表空间,段,区,块,数据库是由表空间组成的

而表空间是由段组成的,段是由区组成的,区是由oracle块组成的

如果说用户直接登录,直接建表,那表是以散列的形式存放到表空间去的

建立自己的表空间

create tablespace data01

datafile'd:/data01.dbf'

size20m

drop user lisi

create user lisi identified by lisi

grant resource to lisi

default tablespace data01;

create table teacher(

tea_id int primary key,

tea_name varchar(20)

)

create table student(

stu_id int primary key,

stu_name varchar(20),

stu_sex varchar(5)check(stu_sex in('男','女')),

stu_age int check(stu_age>=0and stu_age<=150),

stu_address varchar(50)

)

alter table student add tea_id int

alter table student add constraints fk_teaid foreign key(tea_id) references teacher(tea_id)

create table score(

score_id int primary key,

socre_chinese int not null,

score_math int not null,

score_english int not null

)

alter table score add constraint fk_id foreign key(score_id) references student(stu_id)

insert into student values(7,'刘盛鹏','男',23,'江西南昌')

update student set stu_sex='女',stu_age=18where stu_name='刘盛鹏' delete from student where stu_name='刘盛鹏'

select*from score

insert into teacher values(1,'雷老师')

union

insert into teacher values(2,'赵老师')

select*from teacher

select*from student

update student set tea_id=1where stu_id in(5,6,8)

alter table score add score_avg int

alter table score drop column score_avg

alter table score modify(score_avg varchar(20))

rename socre to score

select*from student

select tablespace_name,table_name from user_tables where

table_name='STUDENT2'

insert into score values(9,100,0,100)

select*from score

问题?查询分数语文小于60 的同学的名字和家庭住址子查询

select stu_name,stu_address from student where stu_id in(select score_id from score where socre_chinese <60)

问题?查询分数语文小于60 的同学的授课老师

select tea_name from teacher where tea_id in(select tea_id from student where stu_id in(select score_id from score where socre_chinese <60))

问题?查询所有同学的授课老师,学生信息,学生成绩

select s.*,sc.*from student s left join score sc where

s.stu_id=sc.score_id

角色

权限

用户

表空间

基本的语句

子查询

修改

增加表的约束

——第二天

create table book_user(

user_id int primary key,

user_name varchar(20),

user_password varchar(20),

user_limit varchar(20)check(user_limit='student'or

user_limit='manager'),

)

truncate table book_user

insert into book_user

values(bookidentity.nextval,'10086','10086','manager')

/*序列是什么?序列相当于我们在sql servlet 中学的identity自增长在oracle中是没有自增长的关键字

它是使用自增长的序列化来实现自增长的*/

---自增长

create sequence bookidentity

increment by1--每一次增加的个数

start with1--从几开始

nomaxvalue--没有最大值

nocycle--一值累加

cache10--设置缓冲区大小

drop sequence bookidentity --删除一个序列

alter sequence bookidentity --修改

increment by1

start with1

nomaxvalue

nocycle

cache10

select*from book_user

/*

同义词:synonym

同义词的意思就是为了解决

比如我们在通过其他的用户查询其他用户的表、视图、索引的时候

我们必须要指定表的所有者,比如说

select * from lisi.student

我们创建一个同义词

就相当于给lisi.student取了一个别名

语法是这样的

create public synonym 别名 for 用户的表明

那样的话我们只需要

select * from 别名就可以了

这个别名就代表了user.table

同义词只有sys或system才能创建

*/

create public synonym bookuser for lisi.book_user

select*from bookuser

select*from dba_synonyms

索引index

约束

alter table add constraints fk ck pk df_ uq_

表空间的概念创建表空间段区块(块没有固定大小)

create tablespace data2

datafile'e:\ok.dbf'

size50m

业务需求

--脱机--

alter tablespace data2 offline

--联机--

alter tablespace data2 online

--只读--

alter tablespace data2 read only

--在删除表空间的时候,把表空间的对象全部删除

drop tablespace data2 including contexts and datafiles

--把硬盘上的数据文件也删除

alter tablespace data2 add datafile'e:ok.dbf'size50m

--扩展表空间

--表空间和表空间之间是有联系的

--他们之间的联系不会因为物理位置上的不同而丢失

alter tablespace data2 'e:ok.dbf'resize20m

--增加表空间的容量

alter tablespace data2 'e:ok.dbf'autoextend on next10m maxsize100m --设置表空间为自增长

host move'e:ok.dbf','d:ok.dbf'--物理上的移动表空间

--逻辑上移动表空间

alter tablespace data2 rename datafile'e:ok.dbf'to'd:ok.dbf'

用户和表空间之间的关系映射关系

用户的文件中存放了表在表空间的存放位置

如果说表的数据很多的话,超过了区,那样就会显示从第几区到第几区的第几块的数据是这个表的

如果数据很少的话,那么存放的信息就是从第几个区的第几个块到第几个块张三3第一个表空间的第一个段的第一个区的第一个块是我的表的数据第一个表空间的第一个段的第一个区到第几个区是我的表的数据--建立用户并赋予表空间

create user wangwu

identified by wangwu

default tablespace data01

----------------------------

alter user用户名quota unlimited on表空间;

或alter user用户名quota*M on表空间;

用户角色权限

一个用户有多个角色

预定义角色自定义角色

connect有应用开发人员的大部分权限

dba具有系统管理员的所有权限

resource开发人员需要的其他权限

create role ok2

grant create session to ok2 --将权限赋予角色

revoke create session from ok2 --回收权限

sys/system--用户才可以把权限赋予给角色

grant connect,resource to wangwu with admin option

with admin option--将角色继续传递下去

grant create session to wangwu with grant option

with grant option将权限传递下去

一个角色拥有多个权限

一个用户可以拥有多个权限

create index index_user on lisi.book_user(user_name)

--优点

查询速度快

利于数据库优化

增加数据库的访问有效性

--缺点

在更新数据的时候占用更多的内存空间时间

--注意

要很多数据才使用索引

不要把表中的所有字段都作为索引

把经常使用的字段设为索引

不要把逻辑字段设为索引

--视图

视图就是一张虚拟表,其内容和真实表的一样,视图包含带有名称的列和行的数据。但是视图并不在数据中以存储数据集的形式存在,视图是引用查询出来的数据,在内存中动态生成的

视图本身是不存在的,只有在使用的时候才存在

--视图和表的区别

1、表需要占用磁盘空间,视图不需要

2、视图不能添加索引(所以查询速度稍微有点慢)

3、使用视图可以简化发杂的查询

4、视图的利用利于提高系统的安全性

所以希望在查询的时候多使用视图

--视图的语法:

create view book

as

select*from lisi.book_user

--使用视图-特别是在复杂一点的查询的时候,建议使用视图

select*from book

--修改一个视图

creaet or replace这个语句会在我们的oralce中多次的出现

它的含义和sql server 中的if exits(select*from)drop一样

意思是如果存在的话就把他删掉

create or replace view book

as

select user_id from lisi.book_user

--删除视图

drop view book

——第三天

数据定义语言DDL 针对数据库的对象

(表、视图、索引、同义词、序列)的创建删除修改

数据操作语言DML 针对数据库中的表的增删查询分组排序...

事务控制语言TCL savepoint rallback

数据控制语言DCL 有关于角色权限用户这些的对象的创建、删除、修改因为DDL、DML、TCL都是建立在其之下的

--oracle支持的数据类型

--字符类

char定长最大2000个字符

比如char(10)赵丹一个汉字2个字符如果不够定长会以空格补全

varchar变长最大4000个字符

varchar(10)赵丹用这个数据类型可以节省空间

记住一个概念

比如说有一些字段,例如男、女已经固定好的

在做项目的时候,如果字段已经固定好的长度,建议使用char

clob字符型的大对象最大个4G 不建议使用

--数字型

number范围是-10的38次方到10的38次方可以表示整数,也可以表示小数number(5)表示是一个5位数的整数10000

number(5,2)表示五位的整数,2位的小数10000.00

--日期型

date包含年月日时分秒 oracle默认的格式是1-1月-1999

timestamp这个是oracle对date类型的扩展,可以精确到毫秒

--图片类型

blob二进制数据可以存放声音、图片最大可以存放4个G

一般来说,在做项目的时候是不会把视频、音频、图片放入数据库中,除非项目的安全性很高

如安全局部门,历史博物馆之类

select s.rowid from lisi.book_user s

rowid可以唯一来标识我们的某一行

select rownum,s.*from lisi.book_user s

select rownum,e.*from scott.emp e

--分页

select*from

(

select e.*,rownum rn

from(select*from scott.emp) a

where rownum<=10

)

where rn>=1

--插入列

alter table ok_user add ok_limit varchar(20)

--插入表数据

insert into ok_user select*from book_user select*from ok_user

--复制表

create table ok2_user as select*from book_user select*from ok2_user

distinct关键字是用于去除重复的列

只能修饰单个列

所以使用distinct查询的时候只能查询单个列

事物:多个sql语句,要么都执行,要么都不执行savepoint设置一个保存点

--oracle 函数

--字符函数

字符函数是oracle中最常见的函数

lower(字符)将字符串转化为小写

upper(字符)将字符串转化为大写

length(字符)求字符串的长度

substr(字符,m,n)取字符的长度,从m那开始,取n个replace(字符,字符)替换

select substr(ok_limit,2,3)from ok_user

--数学函数

cos,cosh,exp,ln,sin,sinh,log,sqrt,tan,tanh,acos

--常用数学函数

round四舍五入

floor(n)返回小于或是等于N的最大整数,向下取整

ceil(n)向上取整

--聚合函数

abs()返回绝对值

sum()

avg()

min()

max()

count()

--日期函数

sysdate返回当前系统的时间

--转化函数

to_char()

to_date()

select to_date('2011-11-10','yyyy-MM-dd')from table_name

-----------------------------------------------------------------------------------------

--存储过程

create or replace procedure sp_myproc

declare v_username book_https://www.doczj.com/doc/6113217132.html,ername%type;

v_username :='';

as

begin

select user_name into v_username from book_user where user_id

dbms_output.put_line(v_username);

end;

create or replace procedure sp_ok

v_username varchar(20);

begin

select user_name into v_username from book_user where user_name ='10086';

if v_username ='10086'

then

dbms_output.put_line('helloword');

else

dbms_output.put_line('helloword2');

end id;

end;

call sp_ok();

orcacle 中针对我们的sql的语法是很严格的

所有的语句

exec调用存储过程只能在命令运行

如果想在SQL窗口中调用存储过程call存储过程后加();

在oracle中不允许利用存储过程查询全部

end后面一定要加;在存储过程中begin后面写的每一句话都要加;

在存储过程中如果要使用select语句,那么一定要定义变量去接收参数

存储过程中的变量

一般是以v_开头

存储过程一般是以sp_开头

在存储过程中给变量赋值的语法是:=和我们SQL中的set @count一样dbms_output.put_line()和我们SQL中的print效果一样

%type和他的数据类型一样

select*from book_user

create or replace procedure sp_ok2

as

v_hello integer;

begin

select book_https://www.doczj.com/doc/6113217132.html,er_id into v_hello from book_user

dbms_output.put_line(v_hello);

end;

create table student(

stu_id int primary key,

stu_name varchar(20)not null,

stu_sumscore int not null

)

create sequence studentidentity

increment by1--每一次增加的个数

start with1--从几开始

nomaxvalue--没有最大值

nocycle--一值累加

cache10--设置缓冲区大小

insert into student values(studentidentity.nextval,'zhangsan6',460) select*from student

create or replace procedure sp_xinji(v_stu_id int)

as

v_num int;

v_name varchar(20);

begin

select stu_sumscore,stu_name into v_num,v_name from student where stu_id=v_stu_id;

case

when v_num=450

then dbms_output.put_line(v_name||'同学是非常优秀的');

when v_num>400

then dbms_output.put_line(v_name||'同学还需努力');

else

dbms_output.put_line(v_name||'不给毕业');

end case;

end;

drop procedure sp_hello

call sp_xinji(5)

create or replace procedure sp_hello

as

v_count integer:=1;

begin

loop

insert into student

values(studentidentity.nextval,'zhangsan',400);

v_count:=v_count+1;

dbms_output.put_line(v_count);

exit when v_count>100;

end loop;

end;

call sp_hello()

truncate table student

truncate sequence

像触发器存储过程表索引视图序列同义词角色表空间

在我们oracle中都是以对象的形式来组织的

我们创建用户,创建表,创建存储过程视图,索引

都是描述的对象和对象之间的关系

用户——表映射位置从属关系

存储过程和表之间的关系存储过程是为了简化表的操作

或者说是为了帮助我们处理更见复杂的对表的操作

索引和表之间的关系利于对表的查询

视图和表之间的关系简化对表的复杂查询操作

所有的对象都和表之间有着复杂的关系

可以说他们都是为了表而存在的

也为了表而服务的

触发器就是一个特殊的存储过程

存储过程是我们自己来调用的

触发器是我们在针对数据的增删查改的操作中自动运行的

用户可以创建用户

只要用户拥有了DBA的权限即可

当我们需要把这个角色给继承下去

with admin option

当我们需要把这个权限给继承下去

with grant option

create table ok(

ok_id int primary key,

ok_name varchar(10),

ok_money number(38,2)

)

alter table ok

insert into ok values(1,'张三',1000)

insert into ok values(2,'李四',1)

select*from ok

select(ok_name||'说')from ok ----连接字符串

select nvl(ok_name,'123')from ok----如果为空就将空的数据替换成所写的

create or replace procedure sp_ok

as

v_money number(38,2):=0.00;

begin

savepoint mark1;

update ok set ok_money=ok_money-999where ok_name='张三';

savepoint mark2;

update ok set ok_money=ok_money+999where ok_name='李四';

savepoint mark3;

select ok_money into v_money from ok where ok_name='张三';

if(v_money>0)

then commit;

else

rollback to make1;

end if;

end;

create table students(

stu_id int primary key,

stu_name varchar(20)not null,

stu_count number(5,2)not null

)

insert into students values(1,'wangjuan',59.99);

insert into students values(2,'zhongpingping',60.01);

insert into students values(3,'liwenhuang',38.38);

insert into students values(4,'zhangya',77.77);

insert into students values(5,'xushaoyang',88.88);

select*from students

create or replace procedure sp_ok2(v_name varchar)

as

v_count number(5,2):=0;

begin

select stu_count into v_count from students where stu_name=v_name;

case

when v_count>=70

then dbms_output.put_line('一等奖学金');

when(v_count>=60and v_count<70)

then dbms_output.put_line('还需努力');

else

dbms_output.put_line('请家长');

end case;

end;

drop procedure sp_ok2

--游标

--游标的概念

--游标就是一个指针,他可以指向我们的oracle数据库中的一行数据

--同时也可以把这行语句来拿出来,进行操作

--游标的使用过程

--1、声明一个游标

--2、打开游标

--3、提取数据

--4、关闭游标

--#游标是一种类型

--也是一种数据处理方式

select*from(

select s.*,rownum rm from(

select*from student) s

where rownum<=10

)where rm>0;

--存储过程分页

create or replace procedure sp_fenye

as

v_stu_cursor cursor is select*from students;--定义一个游标类型--这个游标类型是为了哪一个表服务的,同时这个游标可以去提取

--这个表的任意行的数据

v_stu_id int;--定义了三个变量,当我们通过游标把数据提取出来

v_stu_name varchar(20);--的时候,会临时存放到这三个变量中,

v_stu_count number(5,2);--因为我们这张表有三个字段,所以定义begin--了三个字段来进行接收

open v_stu_cursor;

if(v_stu_cursor%isopen)

then

dbms_output.put_line('打开了');

else

open v_stu_cursor;--确保游标再次打开,因为提取数据的前提

--就是让这个游标处于活动状态

end if;

loop

fetch v_stu_cursor into v_stu_id,v_stu_name,v_stu_count;

dbms_output.put_line('学号'||v_stu_id);

dbms_output.put_line('学生姓名'||v_stu_name);

dbms_output.put_line('学生成绩'||v_stu_count);

end loop;

--因为表中存在多行数据,为了确保我们可以提取到每一行的数据

--我们可以使用循环来不断的提取下去

--当游标指针指向的已经没有了数据(即在表的底部)游标会处于一个--停止状态,#此时游标并没有关闭。游标必须在程序中显示的关闭掉end;

create or replace procedure sp_okoo2(v_name out varchar,v_id int) as

begin

select stu_name into v_name from students where stu_id=v_id; end;

select*from students

declare vname varchar2(20);

begin

sp_okoo2(vname,2);

dbms_output.put_line(vname);

end;

-----------------------------------------------

--游标

--1、声明游标 2、打开游标 3、提取数据 4、关闭游标

declare v_student2 rowtype--rowtype 表示一行的任意数据都可以

declare cursor v_student is select*from student;--声明游标

begin

open v_student --打开游标

loop

fetch v_student into

v_student2.stu_id,v_student2.stu_name,v_student2.stu_count;

dbms_output.put_line(v_student2.stu_id,v_student2.stu_name,v_stude nt2.stu_count);

end loop;

close v_student;

end;

declare

p_id students.stu_id%type;

p_name students.stu_name%type;

p_count students.stu_count%type;

cursor v_student is select stu_id,stu_name,stu_count from students;

--游标也是一种数据类型,他必须先被声明,再使用

begin

open v_student;

loop

fetch v_student into p_id,p_name,p_count;

dbms_output.put_line(p_id||p_name||p_count);

if v_student%notfound then

exit;

end if;

end loop;

close v_student;

end;

--------------------------------------

--在存储过程中使用游标

--sys_refcursor 引用系统定义的游标

create or replace procedure sp_output(v_student out sys_refcursor) as

begin

open v_student for select*from student;

end;

--------------------------------------------------

--触发器

--触发器分为在之后触发和在之前触发

--for each row 针对于任意一行来说

create table count(

counts int not null

)

insert into count values(0)

--before after

truncate table students

create or replace trigger tr_student

before insert on students for each row

begin

update count set counts=counts+1;

end;

insert into students values(8,'XX2',60)

select*from students

select*from count

--在对students表进行添删查改一系列的操作的时候触发一个事件:new--在你插入或修改的时候可以通过:new来得到你任意行的数据:old--在你删除的时候,得到以删除的数据

create or replace trigger tr_student2

before insert on students

for each row

begin

dbms_output.put_line(:new.stu_name||'你真2!');

end;

---------

create or replace trigger tr_student3

before delete on students

for each row

begin

dbms_output.put_line(:old.stu_name||'被删了!');

end;

delete from students where stu_id=8

---------

create or replace trigger tr_student4

before delete or insert or update on students

for each row

begin

if deleting then

dbms_output.put_line(:old.stu_name||'又被删了!');

elsif updating then

dbms_output.put_line(:new.stu_name||'又被修改了!');

elsif inserting then

dbms_output.put_line(:new.stu_name||'又被插入了!');

end if;

end;

insert into students values(9,'XX3',60)

delete from students where stu_id=9

update students set stu_count=100where stu_id=1

select*from students

-------------------------------------------------

--包/函数

--程序包

--其实程序包就是一个容器,它可以更好的去组织我们各种资源

--包用于在逻辑上组合过程与函数,它包括了规范、包体两部分组成--1、包的规范和我们的接口是一样的

--2、包的体

--包的规范

create package pa_age

is

procedure sp_hello2(v_id int);

end;

--包体

create or replace package body pa_age

is

procedure sp_hello2(v_id int)

as

begin

update students set stu_count=59.99where stu_id=v_id; end;

end;

--调用包中的方法

call pa_age.sp_hello2(1)

select*from students

----------------------------

包在oracle中是用来合理的组织存储过程和函数的

一般包可以将存储过程和函数有效的组织起来

包一般分为包的定义规范和包体

包的定义规范只是定义了一系列的规范,并没有实现

一般来说

包的规范很像我们 Java中的接口

包的体像我们的实现类

在定义包体中

直接在is后面可以连上存储过程或函数的关键字

--------------------------------

函数

---我们学过的一些内置函数

---在oracle中允许我们去自定义函数

--------------------------------

create or replace function fu_seek(v_name varchar2)return number is

v_ok number;

begin

select stu_id into v_ok from students where stu_name=v_name;

return v_ok;

end;

----------------------------

--使用函数、测试函数

——使用基本步骤

-----1------

create tablespace data01--创建一个表空间

datafile'd:/oracle/data01.dbf'--路径

size20m --大小

-----2-----

create user lisi--用户名

identified by lisi--密码

default tablespace data01;--赋予默认表空间

------3---------------

--赋予权限

最好是富裕一个角色给用户

grant connect to lisi--程序员基本功能

grant resource to lisi--其他功能

还有grant dba to

----------

--赋予用户表空间

alter user lisi quota unlimited on data01;

或alter user用户名quota*M on表空间;

--修改用户默认表空间

alter user lisi default tablespace data01;

--查询用户当前的缺省表空间

SQL>select username,default_tablespace from user_users;

----------------------------------------------------------------------

1.查看默认使用的临时表空间

SQL>select property_value from database_properties

oracle常用命令及格式

oracle常用命令及格式 一:关于日志管理的 1.切换日志:sql> alter system switch logfile; 2.切换checkpoints:sql> alter system checkpoint; 3.增加日志组:sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size1m; 4.增加日志成员 sql> alter database add logfile member sql> '/disk3/log1b.rdo' to group 1, sql> '/disk4/log2b.rdo' to group 2; 5.改变日志文件名字或路径 sql> alter database rename file 'c:/oracle/oradata/oradb/re do01.log' sql> to 'c:/oracle/oradata/redo01.log'; (此处注意,那个文件路径的输入格式) 6.删除日志文件组:sql> alter database drop logfile group 3;

7.删除日志文件成员 sql> alter database drop logfile member 'c:/oracle/oradata/ redo01.log'; 8.清除日志文件内容 sql> alter database clear [unarchived] logfile 'c:/oracle/l og2a.rdo'; 二、关于表空间管理的 1.创建表空间 sql> create tablespace tablespace_name datafile 'c:\oracle\ oradata\file1.dbf' size100m, sql> 'c:\oracle\oradata\file2.dbf' size100mminimum extent 5 50k [logging/nologging] sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0) sql> [online/offline] [permanent/temporary] [extent_managem ent_clause]

(Oracle数据库管理)玩转实战教程学习笔记最全版

(O管理)玩转实战教程(韩顺平)学习笔记

韩顺平—玩转oracle视频教程笔记 一:Oracle认证,与其它数据库比较,安装 oracle的卸载 1.停止所有与ORACLE相关的服务。 2. 使用OUI(Oracle Universal Installer)卸载Oracle软件。 “开始”->“程序”->“Oracle-OraDb110g_home1|Oracle installation product|Universal installer. 3.删除注册表内容。运行regedit命令,删除下面内容:HKEY_LOCAL_MACHINE|SOFTWARE|ORACLE注册表键,删除此键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services,删除Services键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services|Eventlog|Application,删除此键下所有以oracle为首的键。 HKEY_CLASSES_ROOT,删除此键下所有以Ora,Oracle,Orcl,EnumOra 为前缀的键。 HKEY_CURRENT_USER|Software| Microsoft|Windows|CurrentVersion|Explorer|MenuOrder|Start Menu|Programs,删除此键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SOFTWARE|ODBC|ODBCINST.INI注册表键,删除了

Oracle SQLPlus 常用命令及解释

Oracle SQLPlus 常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句。可以从本地文件系统或Web服务器中调用脚本。可以为脚本中的变量传递值。在iSQL*Plus中只能从Web服务器中调用脚本。 2.@@ 执行位于指定脚本中的SQL*Plus语句。这个命令和@(“at”符号)命令功能差不多。在执行嵌套的命令文件时它很有用,因为它会在与调用它的命令文件相同的路径或url中查找指定的命令文件。在iSQL*Plus中只支持url形式。 3./ 执行保存在SQL缓冲区中的最近执行的SQL命令或PL/SQL块。在SQL*Plus命令行中,可在命令提示符或行号提示符使用斜线(/)。也可在iSQL*Plus的输入区中使用斜线(/)。斜线不会列出要执行的命令。 4.ACCEPT 可以修改既有变量,也可定义一个新变量并等待用户输入初始值,读取一行输入并保存到给出的用户变量中。ACCEPT在iSQL*Plus中不可用。 5.APPEND 把指定文本添加到SQL缓冲区中当前行的后面。如果text的最前面包含一个空格可在APPEND和text间输入两个空格。如果text的最后是一个分号,可在命令结尾输入两个分号(SQL*Plus会把单个的分号解释为一个命令结束符)。APPEND 在iSQL*Plus中不可用。 6.ARCHIVE LOG 查看和管理归档信息。启动或停止自动归档联机重做日志,手工(显示地)归档指定的重做日志,或者显示重做日志文件的信息。 7.ATTRIBUTE 为对象类型列的给定属性指定其显示特性,或者列出单个属性或所有属性的当前显示特性。 8.BREAK 分开重复列。指定报表中格式发生更改的位置和要执行的格式化动作(例如,在列值每次发生变化时跳过一行)。只输入BREAK而不包含任何子句可列出当前的BREAK定义。 9.BTITLE 在每个报表页的底部放置一个标题并对其格式化,或者列出当前BTITLE定义。

审计数据转换笔记

目录 一、Oracle课堂笔记 (3) 第一章:Oracle 9i数据库概述 (3) 第二章:Oracle 9i数据库的安装与卸载 (4) 第三章:Oracle 9i数据库的启动与关闭 (4) 第四章:创建数据库 (5) 第五章:配臵访问数据库 (6) 第六章:管理数据库表 (6) 第7章 Oracle数据库的导入导出 (7) 第8章 PL/SQL语言 (9) 实例一 (10) 实例二 (10) 二、SQL Server2000课堂笔记 (10) 第一章:关系数据库基础 (11) 第二章:SQL Server 2000 基础 (12) 第三章:数据库的创建与管理 (12) 第四章:T-SQL 语言基础 (12) 第五章:基本表的创建与管理 (14)

第七章:实现数据完整性 (14) 三、SQL Server2000习题库 (16) 第一章:书本例题(第六章) (16) 第二章:课后习题 (22) 第三章:课间练习 (32) 第四章:单科考试题 (33) 四、数据采集转换 (41) 第一章:课堂笔记 (41) 1、用excel自身的功能导入SQL Server数据 (41) 2、将SQL Server里的表导入AO系统 (42) 3、把设有密码的access的密码取消的方法 (42) 4、金蝶.ais文件变成.mdb文件的处理 (42) 5、SQL Server数据采集方法 (43) 6、业务数据的采集与分析 (44) Ⅰ业务数据一(旌县医院) (44) Ⅱ业务数据二(空调费) (46) 第二章:十一套数据 (47) 0标准数据(2003年) (48) 1真实数据(2004年) (49) 2通用数据(2007年) (50)

oracle笔记(3)

1.用insert语句进行行数据的迁移 Insert into 表名(列,列) select 列,列from emp where 条件 2.用update更新数据(使用子查询):希望员工scott的岗位,工资,补助与smith员工一样? update emp set (job,sal,comm)=(select job,sal,comm. From emp where ename=?SMITH?) where ename=?SCOTT?; 3.事务 (1)锁 (2)提交事务 (3)回退事务(一开始就做保存点(savepoint)) (4)事务的几个重要操作 1)设置保存点:savepoint a 2)取消部分事务:rollback to a 3)取消全部事务:rollback (5)只读事务:set transaction read only(当前用户能看到之前的操作,若其他用户进行更 新,该用户之后的操作都不能看到更新) (6)字符函数 (1)lower(char):将字符串转化为小写的格式 (2)upper(char): 将字符串转化为大写的格式 (3)length(char):返回字符串的长度 (4)substr(char,m,n):取字符串的子串,从m开始取,取n个 (5)例:以首字符大写的方式显示所有的员工的姓名: (1)完成首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写:select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并:select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp; (6)replace(char1,search_string,replace_string) (7)instr(char1,char2,[,n[,m]])—取子串在字符串的位置 (8)例:显示所有员工的姓名,用”我是A”替换所有”A”:select replace(ename,?A?,? 我是A?) from emp; (7)数学函数 (1)round(n,[m]):用于四舍五入 (2)trunc(n,[m]):用于截取数字 (3)mod(m,n):取模 (4)floor(n):返回<=n的最大整数 (5)ceil(n):返回>=n的最小整数 (6)例:显示在一个月为30天的情况所有员工的日薪金,忽略余数:select floor(sal/30),ename from emp; (8)日期函数 (1)sysdate (2)add_months(d,n) (3)last_day(d):返回指定日期所在月份的最后一天 例:返回在八个月前雇佣的员工(已经入职8个月多的员工):select * from emp where sysdate>add_months(hiredate,300); 例:对于每个员工,显示其加入公司的天数:select trunk(sysdate-hiredate) “入职天

Oracle基本语法

Oracle的历史 ?Oracle 公司( 甲骨文) 创始人: Larry Ellison 32岁,公司提供数据库服务. ?公司成立于1977 年, 83 年公司更名为Oracle ,原名为”软件开发实验室”. ?Oracle 数据库适用于大型企业 ?竞争对手 –微软的SQLServer –IBM 的DB2 ?目前的版本 – 2.0~7.0 , 8.0 , 8i , 9i , 10g Oracle的服务: 我的电脑右键选择管理--服务和应用程序—服务 -----是数据库或例程的系统标识符 ------是Oracle主目录名称 这几个服务之间的关系: 启动顺序:1、OracleTNSListener必须启动 2、OracleServer必须启动 3、OracleDBConsole启动依赖于OracleServer SqlPlus SqlPlus是Oracle任何版本都自带的数据库操作工具,使用它可以完成大部分的数据库操作。 SqlPlus可以“开始→程序→Oracle”启动,也可以命令行启动(互动) 1.命令行启动sqlPlus sqlplus 用户名/密码@orcl

或 sqlplus 用户名@orcl 如果用户是管理员要在sqlplus 用户名/密码@主机字符串as sysdba “/”是用户名和密码分隔符号 “@”是密码和数据库的分隔符号 “orcl”是数据库的名称,在安装时指定 常用命令(互动) connect 切换用户 show user 显示当前用户 set linesize 1000 设置行显示长度 set pagesize 1000 设置分页长度 desc dept 查看表结构 select table_name from user_tables 查询当前用户的表 / 运行上一条SQL语句 clear screen 清除屏幕 edit 编辑 spool d:/a 保存输出结果到某个位置 spool off 保存结束 quit 退出 list 查看最后一条语句 @ 文件名.sql 运行外部文件中的SQL语句

MLDN魔乐科技Oracle课堂笔记

MLDN魔乐科技_Oracle课堂笔记 1.sqlplusw命令 (窗口形式),sqlplusw不支持编辑,一般在编辑器(记事本)中编辑好了后拷贝进去执行,或用ed命令; 2.desc desc [tablename];查看表结构 3.show user 查看当前用户 4.select table_name from tabs 显示当前用户下的表名; 5.set linesize set linesize [number]; 6.set pagesize set pagesize [number];

7.ed ed命令用来从sqlplusw中打开编辑器来编辑文件(文本文件); 8.@ 执行sql文件@D:\a.txt;@d:\a;(a文件的扩展名为.sql) 9.conn conn username/pwd@实例名; 10.sql标准,其功能:DML(数据操作语言),DDL(数据定义语言),DCL(数据控制语言) 11.别名 Oracle中指定列别名;(不要指定为中文); 12.distinct 去除重复记录; 13.|| 字符串连接符; select "我的名字是:" || name from t_user; 14.NOT NULL/IS NULL 选择列值不为空的记录where collumname IS NOT NULL;相反IS NULL; 15.BETWEEN…AND… WHERE COLUMENAME BETWEEN...AND...; 等价于>=,<=,如果是在时间之前,则需将时间''起来;

16.大小写 oracle中查询值是大小写区分的,但关键字不区分; 17.In FieldName in (值1,值2,值3,...值n);NOT IN; 18.Like 在使用Like时常用的通配符:%,匹配任意长度内容,_,匹配一个长度内容; 例:select * from emp where ENAME Like '_M%';表示第二个字母为M的名字. 19.>,<,>=,<=,<>,!=用法 20.order by Order by语句,放在SQL语句最后;desc(从大到小)/asc(从小到大)(默认) 21.单行函数 字符/数值/日期/转换/通用函数; (1).字符:UPPER()变大写,LOWER()变小写,INITCAP()将单词第一个字母大写; 字符长度LENGTH(),字符串截取SUBSTR(),字符串替换REPLACE() 其中substr()的第二个参数即起始位置索引为0或1效果都是从第一个字符开始,负数是从右边开始; (2).数值:四舍五入ROUND(),截取TRUNC(),求模MOD(); ROUND(23.45,2),TRUNC(23.45,-1),MOD(10,3); (3).日期:MONTHS_BETWEEN(),两个日期之间的月数;MONTHS_BETWEEN(DATE1,DATE2) ADD_MONTHS(),下月的今天; NEXT_DAY(),下一个的今天日期; LAST_DAY(), 给定日期的最后一天日期; (4).转换:TO_CHAR(),TO_NUMBER(),TO_DA TE();

ORACLE笔记

1.Oracle 工具:sqlplus Sqlplus / as sysdba Shutdown immediate(关闭数据库) Startup(启动数据库) 注意:数据库开启才可以进行操作 Select username,account_status from dba_users;(查询数据库中所有的用户名称与用户状态) Alter user scott identified by tiger account unlock;(scott用户解锁) Sqlplus scott/tiger(使用SCOTT 密码为tiger登陆ORACLE数据库) Connect scott/tiger (在SQL>中直接使用SCOTT用户连接数据库) Show all;(看所有变量) Set sqlprompt “_user>”(设置sqlplus环境下面的提示符用自身用户显示) 注意:如要变量下次重启生效必须把变量写入 /u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/glogin.sql中 Host(回到系统) Help index(查看所有命令) Help+命令(类似于LINUX中的MAN,查看命令的格式与用法) Disconnect(关闭SQLPLUS工具但是不离开数据库) Describe emp(查看EMP表) Define(定义变量,常用与写脚本用) 如:DEFINE _EDITOR =”vi” (CHAR) (定义VI编辑器用于保存最后一条执行的SQL语句) Save /u01/app/oracle/aa.sql (保存SQL语句) Get /u01/app/oracle/aa.sql (调用保存的SQL语句) 2.select(select 查询语句是ORACLE中最常用的语句) DML语句包括(insert 写入,update改变,delect删除,merge两张表同步) 注意:merge常用在ETL(数据仓库)底下 DDL数据定义语句包括(create创建对象,alter修改,drop删除对象,rename改名,truncate 删除整个表) TCL事务处理语句(commit提交立刻生效,rollback回滚,savepoint保存点,savepoint(保存点) DCL权限语句(grant赋予权限,revoke(收回权限) ORACLE的表称之为堆表(keep table) SELECT (1) writing basic SQL select statemanes 1. selecting all columns SCOTT>select * from dept; SCOTT>select dname,deptno,loc from dept; Basic SELECT Statement SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;

oracle中常用函数大全

oracle中常用函数大全 1、数值型常用函数 函数返回值样例显示 ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 10 mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2 power(m,n) m的n次方select power(3,2) from dual; 9 round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.57 sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1 sqrt(n) n的平方根select sqrt(25) from dual ; 5 2、常用字符函数 initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecop lower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecop replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CD length(char) 求字符串的长度select length('ACD') from dual; 3 || 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH 3、日期型函数 sysdate当前日期和时间select sysdate from dual;

Oracle课堂笔记4

●Oracle 复杂表查询 ?数据分组:-max,min,avg,sum,count ?如何显示所有员工中最高工资和最低工资? select max(sal) from emp ; (有多个结果也只显示一个) select min(sal) from emp ; select avg(sal) from emp ; (有空值null则不参与运算) select sum(sal)/count(*) from emp ; (count计算行数) ?统计有多少员工? select count(*) from emp ;(字段亦可,空值不参与运算) ?显示工资最高的员工的名字和工作岗位? (我们可以使用子查询来完成1.先查询最大工资是多少2.查找谁的工资是最大工资) select ename , job from emp where sal = (select max(sal) from emp) ; (SQL语句默认从右往左执行) ?显示工资高于平均工资的员工信息? select ename , job from emp where sal > (select avg(sal) from emp) ; ?group by和having子句: group by对结果进行分组统计, having进行限制(过滤)分组显示结果,通常与group by 同时 出现。 ?如何显示每个部门的平均工资和最高工资?

select avg(sal),max(sal),deptno from emp group by deptno ; ?先是每个部门每个岗位的平均工资和最低工资? select avg(sal),max(sal) ,deptno ,job from emp group by deptno,job order by deptno ; ?显示部门平均工资低于2000的部门和平均工资? select avg(sal),deptno from emp group by deptno having avg(sal)<2000 ;(having不支持别名) ●注意事项: ? 1.分组函数(avg)只能出现在选择列表、having、order by 子句中。 ? 2.如果select中同时出现,顺序是:group by、having、 order by,顺序不能出错。 ? 3.在选择列中,如果有列,表达式,分组函数,那么这些 列和表达式必须有一个出现在group by中,否则会出错。 多表查询:在实际开发中不可避免存在对两张或多张表的复杂查询。 1.我们看看多表查询的原理: select * from emp,dept ; 2.如何实现多表查询: select emp.ename,emp.sal,dept.dname from emp,dept

oracle学习笔记

●PLSQL控制台输出语句 SET serveroutput ON; --打开控制台输出服务 dbms_output.put_line('values2='||var_val); --输出语句 ●PLSQL动态变量 var_str := '&input'; ●创建表空间和用户 --创建表空间 CREATE TABLESPACE "BCPBS" LOGGING DATAFILE 'D:\app\E430\oradata\orcl\BCPBS_01.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED, 'D:\app\E430\oradata\orcl\BCPBS_02.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; --建立用户 CREATE USER "BCPBS" PROFILE "DEFAULT" IDENTIFIED BY "bcpbs123" DEFAULT TABLESPACE "BCPBS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT "CONNECT" TO "BCPBS"; GRANT "DBA" TO "BCPBS"; GRANT "RESOURCE" TO "BCPBS"; ●删除表空间和用户 drop user bcpbs cascade ; drop tablespace BCPBS including contents and datafiles cascade constraints ; ●自定义函数 CREATE OR REPLACE FUNCTION fun_level_value(level_value number) RETURN number IS return_value number:=null; BEGIN CASE level_value WHEN 0 THEN return_value:='0'; WHEN 1 THEN return_value:='1'; WHEN 2 THEN return_value:='2'; WHEN 3 THEN return_value:='3'; WHEN 6 THEN return_value:='8'; ELSE

韩顺平2011玩转oracle10g视频教学课堂笔记(完整版)

顺平j2ee系列教程--玩转oracle10g学习笔记 引言: 数据保存问题? 可使用文件保存和数据库保存。 使用文件保存数据存在几个缺点: 1、文本的安全性问题; 2、文件不利于查询和对数据的管理; 3、文件不利于存放海量数据; 4、文件在程序中控制不方便。 为解决数据保存问题,专家们设计出更加利于管理数据的东东--数据库(本质就是一个软件),它能更有效的管理数据。数据库是衡量一个程序员水平的重要指标。 数据库 1、数据库的本质就是一款软件,这个软件专门用于管理和维护数据; 2、数据存放在数据库中。 数据库服务器、数据库和表的关系 所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库。 为了保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。 数据库服务器、数据库和表的关系如图所示:

为什么选择oracle--性能优越 概述:目前主流数据库包括 微软: sql server和access 瑞典MySql: AB公司mysql ibm公司: db2(处理海量) 美国Sybase公司: Sybase ibm公司: informix 美国oracle公司: oracle 做项目时应当如何选择数据库? 1、标的(项目预算); 2、功能的要求; 3、并发数(多少人用); 4、安全、稳定性。 5、操作系统(unix[solaris,freeBSD,aix,hp unix]/linux/window) oracle数据库的认证 oca(oracle certified associate)初级认证 ocp(oracle certified professional)中级认证 ocm(oracle certified master)高级认证 oracle10g安装步骤: 1、安装文件 2、把10201_database_win32.zip文件copy到没有中文的路径下 3、检查服务选项,确定本机没有安装过oracle数据库,如果有则卸载 4、将压缩包解压后,双击setup.exe文件进行安装。 说明:建议大家自己建立一个文件目录,比如d:/hsporacle/oracle,然后把数据库安装到

Oracle学习笔记

Oracle的四个主要用户 1.超级管理员sys/change_on_install 2.普通管理员system/manager 3.普通用户scott/tiger 4.大数据用户sh/sh 简单查询 1.查询表结构 DESC 表名 2.简单查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] (1)查询时也可以使用四则运算,如:SELECT (字段*x)+y FROM 表名 (2)可以使用“||”连接字段与字符串,如: select '工作与工资:' || job || sal 工作工资 from emp 执行结果: 3.限定查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] [WHERE 条件(s)] (1)Where字句后可以增加多个条件,最常见的条件就是最基本关系运算:>、<、>=、<=、!=(<>)、BE TWEEN…AND、LIKE、IN(指定范围)、IS NULL(为空)、AND(且)、OR(或)、NOT(非)。 (2)多个条件可以使用AND与OR连接。 例如:select * from emp where sal>1300 and sal<4000 (3)范围判断BE TWEEN…AND:BETWEEN 最小值 AND 最大值(大于等于最小值,小于等于最大值),BE TWEEN…AND 对数字、日期都可以使用!!! 例如:select * from emp where sal between 1300 and 4000 例如:select * from emp where hiredate between '01-1月-1981' and '31-12月-1981' (4)判断为空IS (NOT) NULL 例如:select * from emp where comm is null 例如:select * from emp where comm is not null 例如:select * from emp where not comm is null (5)指定范围的判断(NOT) IN 例如:select * from emp where empno in(7369,7566,7799)

oracle11g常用命令.

第一章:日志管理 1. forcing log switches sql> alter system switch logfile; 2. forcing checkpoints sql> alter system checkpoint; 3. adding online redo log groups sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo' size 1m; 4. adding online redo log members sql> alter database add logfile member sql> '/disk3/log1b.rdo' to group 1, sql> '/disk4/log2b.rdo' to group 2; 5. changes the name of the online redo logfile sql> alter database rename file 'c:/oracle/oradata/oradb/redo01.log' sql> to 'c:/oracle/oradata/redo01.log'; 6. drop online redo log groups sql> alter database drop logfile group 3; 7. drop online redo log members

sql> alter database drop logfile member 'c:/oracle/oradata/redo01.log'; 8.clearing online redo log files sql> alter database clear [unarchived] logfile 'c:/oracle/log2a.rdo'; https://www.doczj.com/doc/6113217132.html,ing logminer analyzing redo logfiles a. in the init.ora specify utl_file_dir = ' ' b. sql> execute dbms_logmnr_d.build('oradb.ora','c:\oracle\oradb\log'; c. sql> execute dbms_logmnr_add_logfile('c:\oracle\oradata\oradb\redo01.log', sql> dbms_logmnr.new; d. sql> execute dbms_logmnr.add_logfile('c:\oracle\oradata\oradb\redo02.log', sql> dbms_logmnr.addfile; e. sql> execute dbms_logmnr.start_logmnr(dictfilename=>'c:\oracle\oradb\log\oradb.ora '; f. sql> select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters sql> v$logmnr_logs; g. sql> execute dbms_logmnr.end_logmnr; 第二章:表空间管理 1. create tablespaces sql> create tablespace tablespace_name datafile 'c:\oracle\oradata\file1.dbf' size 100m,

oracle set命令大全

oracle set命令详解 SET命令参数详解 我好如容易录入的,希望对大家有帮助,如果有错误也请指正.有更好的也请分享. SQL*PLUS维护系统变量,也称SET变量,利用它可为SQL*PLUS交互建立一个特殊的环境,如:设 置NUMBER数据的显示宽度;设置每页的行数;设置列的宽度等。可用SET命令改变这些系统变 量,也可用SHOW命令列出它们. 使用set命令的语法如下: SET 系统变量值 其中系统变量及其可选值如下: ARRAY[SIZE] {20(默认值)|n} AUTO[COMMIT] {OFF(默认值)|ON|IMM[EDIATE]} BLO[CKTERMINATOR] {.(默认值)|C} CMDS[EP] {;|C|OFF(默认值)|ON} COM[PATIBILITY] {V5|V6|V7|NATIVE(默认值)} CON[CAT] {.(默认值)|C|OFF|ON(默认值)} COPYC[OMMIT] {0(默认值)|n} CRT crt DEF[INE] {&|C|OFF|ON(默认值)} ECHO {OFF|ON} EMBEDDED {OFF(默认值)|ON} ESC[APE] { (默认值)|C|OFF(默认值)|ON} FEED[BACK] {6(默认值)|n|OFF|ON} FLU[SH] {OFF|ON(默认值)} HEA[DING] {OFF|ON(默认值)} HEADS[EP] {|(默认值)|C|OFF|ON(默认值)} LIN[ESIZE] {80(默认值)|n} LONG {80(默认值)|n} LONGC[HUNKSIZE] {80(默认值)|n} MAXD[ATA] n NEWP[AGE] {1(默认值)|n} NULL text NUMF[ORMAT] 格式 NUM[WIDTH] {10(默认值)|n}

PL_SQL命令的使用大全

SQL*PLUS命令的使用大全[zt] Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。 下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 6.显示一个表的结构 SQL> desc table_name 7. COL命令: 主要格式化列的显示形式。 该命令有许多选项,具体如下: COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR] FOLD_A[FTER] FOLD_B[EFORE] FOR[MA T] format HEA[DING] text JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]} LIKE { expr|alias} NEWL[INE] NEW_V[ALUE] variable NOPRI[NT]|PRI[NT] NUL[L] text OLD_V[ALUE] variable ON|OFF WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED] 1). 改变缺省的列标题

oracle命令行大全

SQL*PLUS命令的使用大全 Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus 语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。 下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 6.显示一个表的结构 SQL> desc table_name 7. COL命令: 主要格式化列的显示形式。 该命令有许多选项,具体如下: COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR] FOLD_A[FTER] FOLD_B[EFORE] FOR[MA T] format

oracle常用命令大全和环境变量路径

Oracle 命令大全 底部为环境变量配置路径。 1 运行SQLPLUS工具 sqlplus 2 以OS的默认身份连接 / as sysdba 3 显示当前用户名 show user 4 直接进入SQLPLUS命令提示符 sqlplus /nolog 5 在命令提示符以OS身份连接 connect / as sysdba 6 以SYSTEM的身份连接 connect system/xxxxxxx@服务名 7 显示当然用户有哪些表 select * from tab; 8 显示有用户名和帐户的状态 select username,account_status from dba_users; 9 将SCOTT帐号解锁(加锁) alter user scott account unlock(lock); 10 以SCOTT的身份连接并且查看所属表 connect scott/tiger select * from tab; 11 查看EMP的表结构及记录内容 desc emp select empno,ename from emp; 12 以OS的身份登看SGA,共享池,CACHE的信息 connect / as sysdba show sga select name,value/1024/1024 from v$sga; show parameter shared_pool_size select value/1024/1024 from v$parameter where name ='shared_pool_size';

show parameter db_cache_size select value/1024/1024 from v$parameter where name ='db_cache_size'; 13 查看所有含有SIZE的信息 show parameter size bitmap_merge_area_size integer 1048576 create_bitmap_area_size integer 8388608 db_16k_cache_size big integer 0 db_2k_cache_size big integer 0 db_32k_cache_size big integer 0 db_4k_cache_size big integer 0 db_8k_cache_size big integer 0 db_block_size integer 4096 db_cache_size big integer 33554432 db_keep_cache_size big integer 0 db_recycle_cache_size big integer 0 NAME TYPE V ALUE ------------------------------------ ----------- ------------- global_context_pool_size string hash_area_size integer 1048576 java_max_sessionspace_size integer 0 java_pool_size big integer 33554432 large_pool_size big integer 8388608 max_dump_file_size string UNLIMITED object_cache_max_size_percent integer 10 object_cache_optimal_size integer 102400 olap_page_pool_size integer 33554432 oracle_trace_collection_size integer 5242880 parallel_execution_message_size integer 2148 NAME TYPE V ALUE ------------------------------------ ----------- ------------- sga_max_size big integer 143727516 shared_pool_reserved_size big integer 2516582 shared_pool_size big integer 50331648 sort_area_retained_size integer 0 sort_area_size integer 524288 workarea_size_policy string AUTO 14 显示SGA的信息 select * from v$sgastat; POOL NAME BYTES

相关主题
文本预览
相关文档 最新文档