日期:2014-05-16  浏览次数:20445 次

oracle基础一
[/size]oracle的一些基本概念:
oracle 数据库包括逻辑结构和物理结构。
其中物理结构可以分为数据文件、控制文件、日志文件。
逻辑结构又分为数据库、表空间、段、区、数据块、模式。

补充:

表空间是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。
表空间的大小等于构成该表空间的所有数据文件大小之和。

段是构成表空间的逻辑存储结构,段由一组区组成。 按照段所存储数据的特征,将段分为四种类型,即数据段、索引段、回退段和临时段。区为段分配空间,它由连续的数据块组成。
当段中的所有空间已完全使用时,系统自动为该段分配一个新区。

区不能跨数据文件存在,只能存在于一个数据文件中。

数据块是Oracle服务器所能分配、读取或写入的最小存储单元。
Oracle服务器以数据块为单位管理数据文件的存储空间。

模式是对用户所创建的数据库对象的总称。
模式对象包括表、视图、索引、同义词、序列、过程和程序包等。
oracle的网络配置 :
主要就是配置tnsname.ora这个文件 比如我的在e盘装的客户端,所以路径就是
E:\program\oracle10client\NETWORK\ADMIN
打开里面的配置文件可看到
LINK_PZ =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.81.35.16)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
我们主要需要配置的为一下几项:
1 其中LINK_PZ 为连接的数据库服务器名 
2 host=(这里填写服务器ip或者计算机名)
3 SERVICE_NAME = orcl 这里填写的是数据库的名字

老师讲数据库的时候,一开始的内容都听枯燥的,其实我觉得这块的知识只要自己多动手操作就行了。
很多同学都是win 7 的系统,不少人为了跑oracle 重装了系统,感谢http://database.51cto.com/art/201106/271588.htm
这篇贴子让我在win7 上面完美跑起了oracle 。

oracle 有三个默认用户(sys,system,scott)
其中SCOTT用户是Oracle 数据库的一个示范帐户,在数据库安装时创建。
也可以自己来创建:
CREATE USER 用户名
IDENTIFIED BY 密码
DEFAULT TABLESPACE 表空间
TEMPORARY TABLESPACE TEMP;

创建用户之后还需要授予相应的权限才能连接到数据库。
授予有两种方式,一种是直接把角色授予用户,还有一种就只授予具体的一些权限。

把角色授予用户:
grant [角色名] to [用户名] ;
常用的角色有connect,resource,sequence
授予具体的一些权限:
grant [权限] on [表名] to [用户名];
alter user 可以用户更改用户口令
如:ALTER USER MARTIN IDENTIFIED BY martinpass;  将martin密码改为martinpass.
drop user 可以直接删除用户.






数据类型:字符型、数值型、日期类型、raw/long raw 、lob

字符类型:char、varchar2、varchar、long
varchar2类似于SQLServer中的varchar,Oracle中也有varchar类型,但建议使用varchar2
提问并讲解何时使用char及varchar2

数值类型:number;
可以存储整数、浮点数和实数
最高精度为 38 位
数值数据类型的声明语法:
NUMBER [( p[, s])]
P表示精度,S表示小数点的位数

日期类型:date 、timestamp
日期时间数据类型存储日期和时间值,包括年、月、日,小时、分钟、秒
主要的日期时间类型有:
DATE - 存储日期和时间部分,精确到整个的秒
TIMESTAMP - 存储日期、时间和时区信息,秒值精确到小数点后6位

LOB:
CLOB 即 Character LOB(字符 LOB),它能够存储大量字符数据
BLOB 即 Binary LOB(二进制 LOB),可以存储较大的二进制对象,如图形、视频剪辑和声音文件  、
BFILE 即 Binary File(二进制文件),它用于将二进制数据存储在数据库外部的操作系统文件中
LOB 称为“大对象”数据类型,可以存储多达 4GB 的非结构化信息,例如声音剪辑和视频文件等
LOB 数据类型允许对数据进行高效、随机、分段的访问。

rowid和rownum
ROWID 是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行
ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数.当使用where子句查询时特别注意

sql 操作符
算术操作符:
算术操作符用于执行数值计算
可以在SQL语句中使用算术表达式,算术表达式由数值数据类型的列名、数值常量和连接它们的算术操作符组成
算术操作符包括加(+)、减(-)、乘(*)、除(/)
逻辑操作符:
逻辑操作符用于组合多个计较运算的结果以生成一个或真或假的结果。
逻辑操作符包括与(AND)、或(OR)和非(NOT)。
连接操作符:
连接操作符‘||’用于将多个字符串或数据值合并成一个字符串
比较操作符:
比较操作符用于比较两个表达式的值
比较操作符包括 =、!=、<、>、<=、>=、BETWEEN…AND、IN、LIKE 和 IS NULL等
集合操作符:
union :并集除去了重复的部分。
union all :并集没有除去重复的部分。
intersect :操作符只返回两个查询的公共行.
minus:操作符返回从第一个查询结果中排除第二个查询中出现的行。
SQL 操作符的优先级从高到低的顺序是:
算术操作符           --------最高优先级
连接操作符
比较操作符
NOT 逻辑操作符
AND 逻辑操作符
OR   逻辑操作符   --------最低优先级


表的锁定
锁出现在数据共享的场合,用来保证数据的一致性。当多个会话同时修改一个表时,需要对数据进行相应的锁定。
锁有“只读锁”、“排它锁”,“共享排它锁”等多种类型,而且每种类型又有“行级锁”(一次锁住一条记录),“页级锁”(一次锁住一页,即数据库中存储记录的最小可分配单元),“表级锁”(锁住整个表)。
在Oracle数据库中,修改数据操作时需要一个隐式的独占锁,以锁定修改的行,直到修改被提交或撤销为止。如果一个会话锁定了数据,那么第二个会话要想对数据进行修改,只能等到第一个会话对修改使用COMMIT命令进行提交或使用ROLLBACK命令进行回滚撤销后,才开始执行。因此应养成一个良好的习惯:执行修改操作后,要尽早地提交或撤销,以免影响其他会话对数据的修改。
语 句

SELECT FOR UPDATE
锁定表行,防止其他会话