Oracle数据库中主外键语法使用简洁实用(oracle主外键语法)

在Oracle数据库中,主外键是一种用于确保数据完整性和一致性的重要机制。主键定义了表中唯一标识每个记录的列,而外键是另一个表中的主键列,用于链接这两个表。这样的话,如果在一个表中更新或删除了数据行,主外键机制就会在另一个表中自动更新或删除相关记录,避免数据不一致和冲突。

本文将详细介绍Oracle数据库中主外键的语法和使用方法,以帮助数据库管理员和开发人员更好地实现数据管理和维护。

1. 创建主键

在Oracle数据库中,创建主键的语法比较简单,可以在表的创建过程中通过以下代码实现:

CREATE TABLE table_name (
column1 datatype constrnt_name,
column2 datatype constrnt_name,
...
CONSTRNT constrnt_name PRIMARY KEY (column1, column2, ...);
);

其中,表名为要创建主键的表名,列名及其数据类型为表中要创建主键的列名及其数据类型,约束名为主键约束的名称,可以自行命名,括号中为要作为主键的列名,多个列名之间用逗号分隔。

示例代码:

CREATE TABLE employees (
employee_id number(4) CONSTRNT employees_pk PRIMARY KEY,
first_name varchar2(10),
last_name varchar2(10),
eml varchar2(20),
phone_number varchar2(15),
hire_date date,
job_id varchar2(10),
salary number(8,2),
commission_pct number(2,2),
manager_id number(4),
department_id number(4)
);

以上代码创建了名为“employees”的表,其中“employee_id”列为主键列。

2. 创建外键

在Oracle数据库中,创建外键的语法也很简单,可以在表的创建过程中或在已创建的表上通过以下代码实现:

在表的创建过程中:

CREATE TABLE table_name1 (
column1 datatype constrnt_name,
column2 datatype constrnt_name,
...
CONSTRNT constrnt_name PRIMARY KEY (column1),
CONSTRNT constrnt_name FOREIGN KEY (column2, column3, ...) REFERENCES table_name2 (column4, column5, ...);
);

其中,表名1为要创建外键的表名,列名及其数据类型为表中要创建外键的列名及其数据类型,约束名为外键约束的名称,可以自行命名,括号中为要作为主键的列名及多个要作为外键的列名,多个列名之间用逗号分隔,最后的“REFERENCES”关键字用于说明要将其作为外键参照的主键所在的表名和列名。

示例代码:

CREATE TABLE orders (
order_id number(4) CONSTRNT orders_pk PRIMARY KEY,
customer_id number(4) CONSTRNT orders_fk1 FOREIGN KEY REFERENCES customers(customer_id),
order_date date,
ship_date date,
shipper_id number(4) CONSTRNT orders_fk2 FOREIGN KEY REFERENCES shippers(shipper_id)
);

以上代码创建了名为“orders”的表,其中“customer_id”列和“shipper_id”列是外键,分别参照了“customers”和“shippers”表中的“customer_id”列和“shipper_id”列。

在已创建的表上:

ALTER TABLE table_name ADD CONSTRNT constrnt_name FOREIGN KEY (column1, column2, ...) REFERENCES table_name2 (column4, column5, ...);

其中,表名为已创建的表名,约束名为外键约束的名称,可以自行命名,括号中为要作为外键的列名,多个列名之间用逗号分隔,最后的“REFERENCES”关键字用于说明要将其作为外键参照的主键所在的表名和列名。

示例代码:

ALTER TABLE order_detls ADD CONSTRNT order_detls_fk1 FOREIGN KEY (order_id) REFERENCES orders(order_id);

以上代码在名为“order_detls”的表上添加了一个外键约束,“order_id”列参照了“orders”表中的“order_id”列。

3. 删除主键和外键

如果要删除Oracle数据库中的主键或外键,可以使用以下命令:

删除主键:

ALTER TABLE table_name DROP PRIMARY KEY;

示例代码:

ALTER TABLE employees DROP PRIMARY KEY;

以上代码删除了名为“employees”的表中的主键约束。

删除外键:

ALTER TABLE table_name DROP CONSTRNT constrnt_name;

示例代码:

ALTER TABLE orders DROP CONSTRNT orders_fk1;

以上代码删除了名为“orders”的表中的外键约束“orders_fk1”。

Oracle数据库中的主外键机制是确保数据完整性和一致性的重要手段。掌握主外键的语法和使用方法,对于有效管理数据和提高应用程序的可靠性具有重要意义。


数据运维技术 » Oracle数据库中主外键语法使用简洁实用(oracle主外键语法)