Oracle
表的管理
1.
规范
表名称必须以字母开头,不能超过
30
个字符,不能使用
oracle
关键字,只能使用
a-z A-Z
$ #
这些字符
2.
数据类型
char
定长字符,最大
2000
字符,不足后补空格,效率比较高,速度比较快,浪费空间
varchar2
变长字符,最大
4000
字符,可以节省空间,但可能影响效率
clob
(character large object)
字符型大对象,最大
4G
number
范围
10
的
-38
次方到
10
的
38
次方,如
number
(
5,2
)范围
-999.99~999.99
,
number
(
5
)
范围
-99999~99999
date
包含年月日时分秒
timestamp
精确到毫秒级别
blob
二进制数据,存放图片、声音、视频
等,最大
4G
(但实际中一般不在数据库中存放真实的文件,而是存放路径,如果出于安全等方面的考虑,可以放在数据库中)
3.
对表的操作
添加字段
alter table
tName
add (
newCol
DataType
)
;
修改字段长度
alter table
tName
modify
(
col
DataType
)
;
修改字段类型
/
名称
alter table
tName
modify
(
col
DataType
)
;
列中不能有数据
删除字段
alter table
tName
drop column
col
;
修改表名称
rename
oldName
to
newName
4.
向
date
类型的字段添加值时,默认情况下格式为
’09-6
月
-99’
表示
1999
年
06
月
09
日
,很不方便,我们可以修改日期默认格式
alter session set nls_date_format = 'yyyy-MM-dd';
也可以将插入的字段值修改为日期格式
to_date(‘1999-01-02’,’yyyy-MM-dd’)
这样就可以正常插入了
5.
插入空值的时候,使用关键字
null,
如果插入的是
char
、
varchar2
、
date
等插入时需要加单引号的字段,那么可以使用‘’,表示插入的值时
null
6.
删除的操作
DELETE
FROM tName;
删除表中的数据,表的结构还在,记录日志,可恢复,速度慢
DROP
TABLE tName;
删除表,包括数据和结构
TRUNCATE
TABLE tName
删除表中数据,表结构还在,不记录日志,不可恢复,速度快
7
.
创建还原点
savepoint p1
;
在没有提交事务的情况下,也就是没有
commit
;的情况下,可以使用
rollback to p1
;回滚事务。如果
commit
;了,那么还原点丢失
8.
显示时间
set
time on;
显示时间
set
timing on;
显示执行查询耗时
关闭
set
time off;
set
timing off;
9.
查询指定字段的速度比查询所有列(
SELECT *
)的速度快
10. oracle
对于字段名称不区分大小写,但是存放于数据库中的值是区分大小写的
11. number
类型和
null
进行计算,得到的值总是
null
,处理是一般采用
nvl
(
col
,
0
),表示如果
col
查询到的是
null
,则用
0
代替,否则使用原值
12. oracle
分页查询
select * from (select x.*,rownum rn
from (select * from emp e order by e.deptno,e.empno) x where rownum <=10)
where rn >=5;
三层嵌套,如果想指定要查询的条件
以及排序,请在最内层的查询中指定
13. oracle
优化:把精确查询条件放在最后???
比如
where conditionA and conditionB
如果
conditionA
能将查询结果从
1W
条筛选到
1K
条,
conditionA
能将查询结果从
1W
条筛选到
10
条,那么
conditionB
就应该在最后
(有待验证)
14.
比
30
号部门所有员工工资都高的员工
(
1
)
select * from emp
where sal >
all
(select
sal from emp where deptno = 30);
效率比较低
(2
)
select * from emp
where sal >
(select max(sal) from emp where deptno = 30);
any
的用法和all
刚好想反,比如上例(1
),如果使用any
相当于(2
)使用min
15.
多列子查询
(
1
)
select * from emp
where (deptno,job) = (select deptno,job from emp where ename= 'SMITH');
(
2
)
select * from emp
where (deptno,job) in (select deptno,job from emp where ename= 'SMITH');
16.
给列取别名的时候可以加 as
,但是 表,特别是 内嵌视图类型的表(from
关键字之后的自定义表)不可以使用 as
(所有除非特别需要,不要使用 as
即可)
17
.
更加高效的分页查询(使用rowid
)
,先看例子
select e.ename from
(select t2.rd from (
select
t1.rd,rownum rn from (
select rowid rd from emp order by sal
) t1 where rownum
<=10) t2
where
t2.rn > 5) t3
,emp e where t3.rd = e.rowid;
四层嵌套,是不是很麻烦?这么多嵌套,是为了保证效率,那么这样写真的高效么?
---
查询第一页普通写法要比rowid
写法要快
---
随着翻页次数的增多,普通写法需要回表的记录越来越多,性能下降很快。比如你要看200-250
条的记录,这时候普通写法需要回表250
条记录,而rowid
写法只要回表200-250
区间中的这50
条记录
--
第一层必须都在索引中扫描,不回表
--
第二三层找到满足条件的
rowid
--
最后根据
rowid
去回表找到记录
优势:因为取
rowid
不回表,只在索引中扫描,需要回表的代价很小,不管你翻多少页,需要回表的记录是恒定的。
分析:
(1)
rowid
是一个伪列,是用来确保表中行的唯一性,它并不能指示出行的物理位置,但可以用来定位行
(2)
rowid
是存储在索引中的一组既定的值(当行确定后)。我们可以像表中普通的列一样将它选出来
(3)
利用
rowid
是访问表中一行的最快方式
(4)
一般来说,当表中的行确定后,
rowid
就不会发生变化,
但当如下情况发生时,
rowid
将发生改变
a)
对一个表做表空间的移动后
b)
对一个表进行了
EXP/IMP
后
18.
创建表的时候同时插入数据
Create table tTable
(id,name
) as select empno,ename from emp;
Id
的数据类型和emp.empno
一致,并且将emp
表的所有记录(字段)插入新表中。可以指定where
条件。如果不想插入任何数据,只是保证类型一致,where 1=0
19.
取两个结果集的交集 intersect
20.
数据导入
Insert into aTable
(col1,col2,col3
) select col11,coll2,coll3 from bTable [where …],
要求数据类型是一致的
21.
根据子查询更新表
Update aTable set
(col1
,col2
,col3
) =
(select coll1
,coll2
,coll3
from table where
。。。) [where …]
分享到:
相关推荐
这个“Oracle 9I入门”教程旨在帮助初学者理解和掌握Oracle数据库的基础知识,包括安装、配置、基本操作以及SQL查询语言的使用。 首先,让我们从Oracle 9I的安装开始。安装过程包括服务器端的Oracle数据库软件安装...
《Oracle9i入门与提高(中文版)》是一本针对初学者和有一定基础的数据库管理员设计的教程,全面覆盖了Oracle9i的核心概念、安装配置、管理操作、SQL语言使用以及数据库开发等多个方面。这本书籍旨在帮助读者快速掌握...
Oracle9i入门手册是针对初学者的一份详细指南,它涵盖了Oracle数据库系统的基础知识和核心功能,特别是关于Oracle9i版本的内容。Oracle9i是Oracle公司推出的数据库管理系统的一个重要版本,它在性能、可伸缩性和安全...
以上内容构成了Oracle 9i入门的经典教程,涵盖了数据库管理员需要掌握的基本技能。通过深入学习和实践,初学者可以逐步熟悉Oracle 9i的各个功能,并具备解决常见问题的能力。在实际操作中,结合“Oracle 9i中文版...
在Oracle9i中,安装和配置是入门的第一步。教程可能会讲解如何在不同操作系统环境下安装数据库服务器和客户端工具,包括设置环境变量、创建监听器、配置网络服务名等。理解这些步骤对于后续的数据库管理和维护至关...
Oracle9i入门教程是为初学者设计的一份全面指南,旨在帮助用户理解并掌握Oracle数据库的基础操作和管理。 **一、Oracle数据库基础** Oracle9i的基础概念包括:数据库、表空间、数据块、段、表、索引、视图等。...
《ORACLE9i入门与实践》是一本专为初学者设计的Oracle数据库教程,它旨在帮助读者快速掌握Oracle 9i的基本操作和管理技巧。Oracle是全球广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。Oracle 9i是...
3. **互联网数据库连接(iDBC)**:Oracle 9i加强了与Web的集成,iDBC使得开发者能够轻松地在Web应用程序中使用Oracle数据库,增强了Web应用的性能和可扩展性。 4. **数据库复制(Database Replication)**:Oracle...
总的来说,Oracle9i入门基础涵盖了数据库安装、管理、安全、编程和性能优化等多个方面。通过深入学习这些知识点,初学者可以逐步建立起对Oracle数据库系统全面的理解,并为将来进一步的数据库管理和开发工作打下坚实...
Oracle9i PL/SQL从入门到精通
Oracle 9i的安装和配置是入门的第一步。在教程中,你会学习如何在不同操作系统环境下安装数据库服务器,设置监听器,以及配置网络服务名。理解Oracle的实例和数据库的概念也很关键,实例是运行时内存结构,而数据库...
总结来说,"Oracle9I入门资料 初学者宝典"涵盖了Oracle数据库的基础知识,包括数据库创建与管理、SQL语言、安全性、性能优化、备份恢复和网络配置等内容。通过深入学习和实践这些知识,你将能够熟练地操作Oracle 9i...
《Oracle+9i基础教程(第2版)》是一本专为初学者设计的Oracle数据库入门教程,旨在帮助读者理解数据库的基本概念,并掌握Oracle 9i的使用。书中的内容涵盖了从数据库理论到实际操作的各个方面,对于学习Oracle数据库...
总之,《Oracle9i+PL_SQL从入门到精通》是一本全面覆盖Oracle9i数据库系统和PL/SQL编程的教程,无论你是初学者还是希望进一步提升技能的数据库管理员或开发者,都能从中获益。通过这本书的学习,你可以逐步掌握...
标题《Oracle编程入门经典覆盖至Oracle9i版本_***》和描述中提到的内容,我们可以提取以下知识点: 1. Oracle编程入门知识: - Oracle数据库简介:Oracle是全球最大的企业级数据库厂商,Oracle数据库以其稳定性、...
Oracle编程入门经典覆盖至Oracle9i版本【PDF版】
"构建环境--安装ORACLE9i02.pdf"进一步深入到数据库的安装和配置过程。这将涵盖网络配置、安全设置、初始化参数文件的编辑,以及启动和关闭数据库服务等实际操作。这些知识对于在实际环境中部署Oracle数据库至关重要...
第3章 管理入门--数据库服务器的管理 第4章 数据库利器--SQL 第5章 只能管理--用好集成管理环境 第6章 运行维护--DBA的日常工作 第7章 数据库管理--常用数据方案对象 第8章 安全管理--给用户授权 第9章 编程进阶--PL...
Oracle9i的开发学习资料,PDF中文版,非扫描版,13章全,附带8个章节使用的SQL语句和代码。 第一章 从零开始 Oracle9i基础 第二章 构建环境 安装Oracle9i 第三章 管理入门 数据库服务器的管理 第四章 数据利器 SQL ...
Oracle编程入门经典覆盖至Oracle9i版本 目录 这是目录部分,下面还有内文