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