Oracle学习笔记4.docx

上传人:b****4 文档编号:5465235 上传时间:2022-12-16 格式:DOCX 页数:15 大小:19.86KB
下载 相关 举报
Oracle学习笔记4.docx_第1页
第1页 / 共15页
Oracle学习笔记4.docx_第2页
第2页 / 共15页
Oracle学习笔记4.docx_第3页
第3页 / 共15页
Oracle学习笔记4.docx_第4页
第4页 / 共15页
Oracle学习笔记4.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Oracle学习笔记4.docx

《Oracle学习笔记4.docx》由会员分享,可在线阅读,更多相关《Oracle学习笔记4.docx(15页珍藏版)》请在冰豆网上搜索。

Oracle学习笔记4.docx

Oracle学习笔记4

接oracle-学习笔记-3

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

 

9.查看Oracle的datafile地址,查看表空间地址

setlines1000pages1000

columnfile_nameformatA70

columntablespace_nameformatA30

columnstatusfora15

selectstatus,file_name,tablespace_name,bytes/1024/1024"Size(M)",AUTOEXTENSIBLEfromdba_data_files

unionall

selectstatus,file_name,tablespace_name,bytes/1024/1024"Size(M)",AUTOEXTENSIBLEfromdba_temp_files

orderbytablespace_name,file_name;

selecttablespace_name,

      file_id,

      file_name,

        round(bytes/(1024*1024),0)total_space  

 fromdba_data_files  

 orderbytablespace_name;

 

10.改变表空间某个数据文件大小

ALTERDATABASE DATAFILE'/oracle/oradata/yqmora92/ts_yqm.dbf'RESIZE 150M;

alterdatabasedatafile'd:

\oracle\product\10.2.0\oradata\test1\test6k.dbf'autoextendonnext50mmaxsize200m;

查看用户表空间的限额

  select*fromuser_ts_quotas;

  max_bytes字段就是了

  -1是代表没有限制,其它值多少就是多少了.

不对用户做表空间限额控制:

  GRANTUNLIMITEDTABLESPACETO***(用户);

  这种方式是全局性的.

  或者

  alteruser***(用户名)quotaunlimitedon***(表空间);

  这种方式是针对特定的表空间的.

  可以分配自然也可以回收了:

  revokeunlimitedtablespacefrom***(用户)

  或者

  alteruser***quota0on***

 

11.1主键约束实体完整性

createtablenn(n1varchar2(10)notnull,n2char(10));

insertintonnvalues('abc','def');

altertablennaddconstraintpk_nnprimarykey(n1);

SQL>showuser

USER为"SCOTT"

SQL>createtablenn(n1varchar2(10)notnull,n2char(10));

表已创建。

SQL>insertintonnvalues('abc','def');

已创建1行。

SQL>insertintonnvalues('abc','def');

已创建1行。

SQL>rollback;

回退完成。

SQL>altertablennaddconstraintpk_nnprimarykey(n1);

表已更改。

SQL>insertintonnvalues('abc','def');

已创建1行。

SQL>insertintonnvalues('abc','def');

insertintonnvalues('abc','def')

*

第1行出现错误:

ORA-00001:

违反唯一约束条件(SCOTT.PK_NN)

 

11.2外键约束 参照完整性

SQL>createtablemm(m1char(10),m2varchar2(10),n1varchar2(10));

表已创建。

SQL>altertablemmaddconstraintfk_mnforeignkey(n1)referencesnn(n1);

表已更改。

SQL>insertintommvalues('aav','dd','ds');

insertintommvalues('aav','dd','ds')

*

第1行出现错误:

ORA-02291:

违反完整约束条件(SCOTT.FK_MN)-未找到父项关键字

SQL>insertintommvalues('aav','dd','abc');

已创建1行。

SQL>commit;

提交完成。

11.3check约束

SQL>select*frome;

      EIDENAME     SEX        DID

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

       10aaa       男          25

       15aa        b           25

        1赵1       男           1

        2钱1       女           2

        3孙1       女           3

        3李1       男           4

        3周1       女           5

        4周2       女

已选择8行。

SQL>updateesetsex='男'whereeid=15;

已更新1行。

SQL>commit;

提交完成。

SQL>altertableeaddconstraintck_e_sexcheck(sex='男'orsex='女');

表已更改。

SQL>updateesetsex='aa'whereeid=15;

updateesetsex='aa'whereeid=15

*

第1行出现错误:

ORA-02290:

违反检查约束条件(SCOTT.CK_E_SEX)

SQL>select*frome;

      EIDENAME     SEX        DID

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

       10aaa       男          25

       15aa        男          25

        1赵1       男           1

        2钱1       女           2

        3孙1       女           3

        3李1       男           4

        3周1       女           5

        4周2       女

已选择8行。

11.4查看约束

SQL>selectconstraint_name,constraint_typefromuser_constraintswheretable_name='MM';

CONSTRAINT_NAME               C

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

FK_MN                         R

SQL>selectconstraint_name,constraint_typefromuser_constraintswheretable_name='E';

CONSTRAINT_NAME               C

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

CK_E_SEX                      C

SQL>selectconstraint_name,constraint_typefromuser_constraintswheretable_name='NN';

CONSTRAINT_NAME               C

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

SYS_C005167                   C

PK_NN                         P

 

12.表索引

表没建索引之前是按堆存放数据的。

在表的经常查询的列上建立索引

SQL>createindexmy_mm_idxonmm(m1);

索引已创建。

SQL>select*frommmwherem1='aav';

M1        M2        N1

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

aav       dd        abc

12.1位图索引

为了解决表里面数据很多,但是唯一值很少的情况,例如:

有一万条记录,sex列只有两个不同的值:

男和女

SQL>createbitmapindexbit_eone(sex);

索引已创建。

Oracle中NVARCHAR2与VARCHAR2的区别

VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容。

VARCHAR在Oracle中不建议使用。

具体到NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于:

NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则

1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。

2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。

 

13.SQLLoader

先创建两个文件:

loader.txt内容:

abc,xyz

avf,ddd

des,ggf

cont.ctl内容:

loaddata

infile'E:

\WorkPlace\OracleWork\loader.txt'

append

intotablescott.mm(

m1position(1:

3)char,

m2position(5:

7)char)

 

打开一个cmd窗口,执行:

E:

\>sqlldrscott/tigercontrol=E:

\WorkPlace\OracleWork\cont.ctldata=E:

\WorkPlace\OracleWork\loader.txt

SQL*Loader:

Release10.2.0.1.0-Productionon星期二12月1417:

32:

392010

Copyright(c)1982,2005,Oracle. Allrightsreserved.

达到提交点-逻辑记录计数2

达到提交点-逻辑记录计数3

进入sql/plus

查看:

SQL>select*frommm;

M1        M2        N1

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

aav       dd        abc

ddd       ss        abc

abc       xyz

avf       ddd

des       ggf

已经添加了3条记录。

 

以上是处理规则数据,下面处理不规则数据:

loader.txt内容:

abcddd,xyz

avff,dfddd

d,ggfd

cont.ctl内容:

loaddata

infile'E:

\WorkPlace\OracleWork\loader1.txt'

append

intotablescott.mm(

m1terminatedby',',

m2terminatedby',')

打开一个cmd窗口,执行:

E:

\>sqlldrscott/tigercontrol=E:

\WorkPlace\OracleWork\cont1.ctldata=E:

\WorkPlace\OracleWork\loader1.txt

SQL*Loader:

Release10.2.0.1.0-Productionon星期二12月1418:

11:

402010

Copyright(c)1982,2005,Oracle. Allrightsreserved.

达到提交点-逻辑记录计数2

达到提交点-逻辑记录计数3

 

进入sql/plus

查看:

SQL>select*frommm;

M1        M2        N1

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

aav       dd        abc

ddd       ss        abc

abc       xyz

avf       ddd

des       ggf

abcddd    xyz

avff      dfddd

d         ggfd

已选择8行。

14.OEM配置使用

15.数据库的备份与恢复

逻辑备份,逻辑恢复

物理备份,物理恢复

导出

F:

\>expscott/tiger@ora

Export:

Release10.2.0.1.0-Productionon星期二12月1420:

47:

222010

Copyright(c)1982,2005,Oracle. Allrightsreserved.

连接到:

OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Production

WiththePartitioning,OLAPandDataMiningoptions

输入数组提取缓冲区大小:

4096>5000

 导出文件:

EXPDAT.DMP>c:

\mybak.dmp

(2)U(用户),或(3)T(表):

(2)U>t

导出表数据(yes/no):

yes>yes

压缩区(yes/no):

yes>yes

已导出ZHS16GBK字符集和AL16UTF16NCHAR字符集

即将导出指定的表通过常规路径...

要导出的表(T)或分区(T:

P):

(按RETURN退出)>e

..正在导出表                              E导出了          8行

要导出的表(T)或分区(T:

P):

(按RETURN退出)>

导出成功终止,但出现警告。

F:

\>expscott/tiger@ora

Export:

Release10.2.0.1.0-Productionon星期二12月1420:

48:

482010

Copyright(c)1982,2005,Oracle. Allrightsreserved.

连接到:

OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Production

WiththePartitioning,OLAPandDataMiningoptions

输入数组提取缓冲区大小:

4096>5000

 导出文件:

EXPDAT.DMP>c:

\scott.dmp

(2)U(用户),或(3)T(表):

(2)U>u

导出权限(yes/no):

yes>yes

导出表数据(yes/no):

yes>yes

压缩区(yes/no):

yes>yes

已导出ZHS16GBK字符集和AL16UTF16NCHAR字符集

.正在导出pre-schema过程对象和操作

.正在导出用户SCOTT的外部函数库名

.导出PUBLIC类型同义词

.正在导出专用类型同义词

.正在导出用户SCOTT的对象类型定义

即将导出SCOTT的对象...

.正在导出数据库链接

.正在导出序号

.正在导出簇定义

.即将导出SCOTT的表通过常规路径...

..正在导出表                             AA导出了         10行

..正在导出表                            ABC导出了          1行

..正在导出表                           AUTO导出了          7行

..正在导出表                          BONUS导出了          0行

..正在导出表                          BOOKS导出了          8行

..正在导出表                              D导出了         11行

..正在导出表                           DEPT导出了          4行

..正在导出表                              E导出了          8行

..正在导出表                             EE导出了          6行

..正在导出表                            EMP导出了         14行

..正在导出表                             MM导出了          8行

..正在导出表                          MYLOG导出了          3行

..正在导出表                             NN导出了          2行

..正在导出表                       SALGRADE导出了          5行

..正在导出表                              T导出了          2行

..正在导出表                             TT导出了         13行

.正在导出同义词

.正在导出视图

.正在导出存储过程

.正在导出运算符

.正在导出引用完整性约束条件

.正在导出触发器

.正在导出索引类型

.正在导出位图,功能性索引和可扩展索引

.正在导出后期表活动

.正在导出实体化视图

.正在导出快照日志

.正在导出作业队列

.正在导出刷新组和子组

.正在导出维

.正在导出post-schema过程对象和操作

.正在导出统计信息

成功终止导出,没有出现警告。

导入:

SQL>select*frome;

      EIDENAME     SE       DID

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

       10aaa       男        25

       15aa        女        25

        1赵1       女         1

        2钱1       女         2

        3孙1       男         3

        3李1       男         4

        3周1       男         5

        4周2       男

已选择8行。

SQL>deletefrome;

已删除8行。

SQL>commit;

提交完成。

SQL>select*frome;

未选定行

打开一个cmd窗口,

E:

\>impscott/tiger

Import:

Release10.2.0.1.0-Productionon星期三12月1518:

53:

442010

Copyright(c)1982,2005,Oracle. Allrightsreserved.

连接到:

OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Production

WiththePartitioning,OLAPandDataMiningoptions

导入文件:

EXPDAT.DMP>mybak.dmp

输入插入缓冲区大小(最小为8192)30720>

经由常规路径由EXPORT:

V10.02.01创建的导出文件

已经完成ZHS16GBK字符集和AL16UTF16NCHAR字符集中的导入

只列出导入文件的内容(yes/no):

no>

由于对象已存在,忽略创建错误(yes/no):

no>yes

导入权限(yes/no):

yes>

导入表数据(yes/no):

yes>

导入整个导出文件(yes/no):

no>yes

.正在将SCOTT的对象导入到SCOTT

.正在将SCOTT的对象导入到SCOTT

..正在导入表                            "E"导入了          8行

IMP-00017:

由于ORACLE错误2264,以下语句失败:

 "ALTERTABLE"E"ADDCONSTRAINT"CK_E_SEX"CHECK(sex='男'orsex='女')"

 "ENABLENOVALIDATE"

IMP-00003:

遇到ORACLE错误2264

ORA-02264:

名称已被一现有约束条件占用

即将启

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1