Oracle定义约束 外键约束
外键约束保证参照完整性。外键约束限定了一个列的取值范围。一个例子就是限定州名缩写在一个有限值集合中,这个值集合是另外一个控制结构——一张父表
下面我们创建一张参照表,它提供了完整的州缩写列表,然后使用参照完整性确保学生们有正确的州缩写。第一张表是州参照表,State作为主键
CREATE TABLE state_lookup
(state VARCHAR2(2),
state_desc VARCHAR2(30)) TABLESPACE student_data;
ALTER TABLE state_lookup
ADD CONSTRAINT pk_state_lookup PRIMARY KEY (state);
然后插入几行记录:
INSERT INTO state_lookup VALUES ('CA', 'California');
INSERT INTO state_lookup VALUES ('NY', 'New York');
INSERT INTO state_lookup VALUES ('NC', 'North Carolina');
我们通过实现父子关系来保证参照完整性,图示如下
--------------- 外键字段存在于Students表中
|State_lookup | 是State字段
--------------- 一个外键必须参照主键或Unique字段
| 这个例子中,我们参照的是State字段
| 它是一个主键字段(参看DDL)
/|\
---------------
| Students |
---------------
上图显示了State_Lookup表和Students表间一对多的关系,State_Lookup表定义了州缩写通用集合——在表中每一个州出现一次。因此,State_Lookup表的主键是State字段。
State_Lookup表中的一个州名可以在Students表中出现多次。有许多学生来自同一个州,一次,在表State_Lookup和Students之间参照完整性实现了一对多的关系。
外键同时保证Students表中State字段的完整性。每一个学生总是有个State_lookup表中成员的州缩写。
外键约束创建在子表。下面在students表上创建一个外键约束。State字段参照state_lookup表的主键。
1、创建表
CREATE TABLE students
(student_id VARCHAR2(10) NOT NULL,
stu
相关文档:
大型项目开发中,常用的数据库,当属Oracle。但Oracle
客户端安装就要一张光盘,体积很大。而且安装后,基本上就用2个功能:TNS配置服务名,SqlPlus。在开发过程中,大量使用Toad和PL/SQL
Developer。因此,Oracle客户端安装盘,仅仅是被作为一个驱动而需要,根本没必要装那么大的空间。因此,本文给出了如何使用精简的
......
事务处理:所谓的事务处理就是保证操作的完整性,所有操作要么同时成功,要么同时失败。
原理如下:
在Oracle每个连接到数据库的窗口,连接之后建立一个session。一个session里面对数据所做的修改,不会立刻反应在数据库的真实数据之上,是允许回滚的,当一个session提交所有的操作后,数据才真正地做出修改。
& ......
第四章:索引
1.creating function-based indexes
sql> create index summit.item_quantity on summit.item(quantity-quantity_shipped);
2.create a B-tree index
sql> create [unique] index index_name on table_name(column,.. asc/desc) tablespace
sql> tablespace_name [pctfree integer] ......
Oracle中分析表的作用
http://diegoball.javaeye.com/blog/568009
文章分类:数据库
1.分析更新表的统计信息,,有可能导致执行计划改变..
2.以的analyze table abc compute statistics;这条为例,生成的统计信息会存在于user_tables这个视图,查看一下select * from user_tables where table_name='ABC';
观察一下NUM_RO ......
在启动oracle服务时,首先会在服务端找
1.spfile<sid>.ora
用于启动例程,如果找不到spfile<sid>.ora,则使用服务端缺省的
2.spfile
来启动,如果缺省的spfile也找不到,则使用
3.init<sid>.ora
来启动例程,最后则是使用缺省的
4.pfile
.当然你也可以指定pfile来覆盖缺省spfile启动例程,或通过spfile= ......