CREATE TABLE parent (
f INT NOT NULL,
m INT NOT NULL,
PRIMARY KEY(f,m)
);
CREATE TABLE child (
f INT NOT NULL,
m INT NOT NULL,
id INT NOT NULL,
PRIMARY KEY(f,m,id)
);
ALTER TABLE child
ADD CONSTRAINT fk_child
FOREIGN KEY (f,m) REFERENCES parent;
我们可以使用下面语句从all_constraints视图中查看某表上的约束:
SELECT
constraint_name,
table_name,
r_owner,
r_constraint_name
FROM
all_constraints
WHERE
table_name
=
'table_name'
and
owner
=
'owner_name';
另一个视图ALL_CONS_COLUMNS也包括组成表上约束列的信息。
数据库外键约束:这个是实现表与表之间的约束,从表的字段值必须在主表中。存在外键约束毕竟是一个约束,只是保证数据完整性的一个手段。
外键的概念:外键是关系数据库三个完整性的五个约束条件之一,是表与表之间建立的一种关系。在Oracle数据库的scott/tiger用户中,表Dept和Emp通过外键进行了关联。在这里Dept表叫主表,Emp表叫从表,外键是字段Deptno。
加入外键的条件:
1、两个表有相同属性字段,取值范围相同;
2、外键在主表中是主键或者是唯一字段;
3、外键可以是多个字段的组合。
数据库系统本身约束手段是更可靠的。对于开发来说,可能觉得建立外键关系没必要,但是到了以后维护阶段,或升级阶段,如果没有这个关系,可能不利维护工作的提升。表关系的建立,也阐述着具体的业务逻辑关系,增加了可读性。
在逻辑性,关联性比较强的时候不妨添加。其他时候简单的外键约束也是可以的,不需要一有关系就添加,但是要有其他机制保证数据完整性,毕竟外键对于开发有时候还是有限制。总的来说前期开发可以不管,后期维护尽量转移到数据库本身的约束来建立关系。
我先给你连接数据库的类吧!
步骤1
package testprocedure;
import javasqlConnection;
import javasqlDriverManager;
import javasqlSQLException;
public class ConnectOrcl {
String driver,url,user,pwd;
public ConnectOrcl(){
driver = "oraclejdbcdriverOracleDriver";
url = "jdbc:oracle:thin:@127001:1521:orcl";
user = "scott";
pwd = "tiger";
}
public Connection getConn(){
Connection conn = null;
try {
ClassforName(driver);
conn = DriverManagergetConnection(url,user,pwd);
} catch (ClassNotFoundException e) {
// TODO 自动生成 catch 块
eprintStackTrace();
} catch (SQLException e) {
// TODO 自动生成 catch 块
eprintStackTrace();
}
return conn;
}
// 关闭与数据库的连接的方法
public void closeConn() {
try {
if (!connisClosed()) {
connclose();
}
} catch (SQLException e) {
// TODO 自动生成 catch 块
eprintStackTrace();
}
}
public static void main(String[] args){
if(conn != null){
systemoutprintln("连接成功!")
}
}
}
参照完整性
指建立两个关系建立联系的主外键的约束
foreign
key
外键
4,实体完整性域完整性保证表中数据的合理性
check
检查
default
默认
not
null
不为空
unique
唯一约束
3。
1实体完整性
指关系的主关键字不为空且不重复
primary
key
主键
2、参照完整性和用户定义完整性域完整性用户自定义完整性除了上述关键字
1(SQL 方式) ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (以","分隔的属性列表)
2( *** 作方式) 在表设计器中选中两个字段再设为主键
以上就是关于数据库 数据约束 如 表一 : parent 两个主键(f,m) 表二:child 三个主键(f,m,id)全部的内容,包括:数据库 数据约束 如 表一 : parent 两个主键(f,m) 表二:child 三个主键(f,m,id)、oracle数据库 如何查询某个表的约束条件、数据库外键约束等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)