oracle添加主键的四种方法:

本文介绍在Oracle数据库中创建表时添加主键约束的四种方法,包括列级和表级定义,并演示如何添加外键约束实现表间关联。
oracle添加主键的四种方法:
列级,表级建立主键
drop table constraint_test;
1.create table constraint_test
( name_id number not null constraint cons_name_id primary key,
 old number )
2.create table constraint_test
( name_id number  primary key,
 old number )


drop table constraint_test;
3.create table constraint_test

name_id number not null,
old number  ,
constraint cons_name_id primary key ( name_id ) 
);


drop table constraint_test;


4.create table constraint_test

name_id number not null,
old number   
);
alter table constraint_test add constraint cons_name_id primary key ( name_id );


外键


drop table course ;
drop table students ;
create table students
(code number  ,
name varchar2(10),
country varchar2(30)
);


alter table students add constraint pk_st_cod primary key ( code);
insert into students values(0001,'zhangsan','shanghai');
insert into students values(0002,'lisi','beijing');
insert into students values(0003,'wangwu','guangzhou');


create table course 
(id number,
code  number,
name varchar2(10),
subject varchar2(30)
);
alter table course  add constraint pk_co_id primary key ( id);
alter table course  add constraint fk_co_st foreign key ( code) references  students(code);
alter table students add foreign key pk_co_id on id;
inser into course(id,code,name,subject) values(1,001,'zhangsan','yuwen');
inser into course(id,code,name,subject) values(2,001,'zhangsan','shuxue');

Oracle 数据库中,主键(Primary Key)用于唯一标识中的每一行记录,并确保该列(或列组合)的值不为空(NOT NULL)且唯一(UNIQUE)。你可以通过以下方式为添加主键: --- ## ✅ 1. 创建添加主键 在创建时可以直接定义主键。 ### 语法: ```sql CREATE TABLE 名 ( 列名1 数据类型 PRIMARY KEY, 列名2 数据类型, ... ); ``` 或使用命名方式: ```sql CREATE TABLE 名 ( 列名1 数据类型, 列名2 数据类型, ... CONSTRAINT 主键名称 PRIMARY KEY (列名1, 列名2, ...) ); ``` ### 示例: ```sql CREATE TABLE users ( user_id NUMBER PRIMARY KEY, user_name VARCHAR2(50) ); ``` 或命名主键: ```sql CREATE TABLE users ( user_id NUMBER, user_name VARCHAR2(50), CONSTRAINT pk_users_id PRIMARY KEY (user_id) ); ``` --- ## ✅ 2. 创建添加联合主键(复合主键) 当主键由多个字段组成时称为复合主键。 ### 示例: ```sql CREATE TABLE order_details ( order_id NUMBER, product_id NUMBER, quantity NUMBER, CONSTRAINT pk_order_detail PRIMARY KEY (order_id, product_id) ); ``` --- ## ✅ 3. 修改已有添加主键 使用 `ALTER TABLE` 语句为已有添加主键。 ### 语法: ```sql ALTER TABLE 名 ADD CONSTRAINT 主键约束名 PRIMARY KEY (列名1, 列名2, ...); ``` > ⚠️ 注意:添加主键前,列必须已定义为 `NOT NULL`,否则会报错。 ### 示例: ```sql -- 确保列是 NOT NULL ALTER TABLE users MODIFY (user_id NUMBER NOT NULL); -- 添加主键 ALTER TABLE users ADD CONSTRAINT pk_users_id PRIMARY KEY (user_id); ``` --- ## ✅ 4. 删除主键约束 如果你需要删除主键: ### 语法: ```sql ALTER TABLE 名 DROP CONSTRAINT 主键约束名; ``` ### 示例: ```sql ALTER TABLE users DROP CONSTRAINT pk_users_id; ``` --- ## ✅ 5. 查询主键信息 你可以通过以下方式查询主键信息: ### 查询主键约束名和字段: ```sql SELECT a.constraint_name, a.column_name FROM all_cons_columns a JOIN all_constraints c ON a.constraint_name = c.constraint_name WHERE c.constraint_type = 'P' AND a.table_name = 'USERS'; ``` --- ## ✅ 示例:完整操作流程 ```sql -- 创建 CREATE TABLE users ( user_id NUMBER, user_name VARCHAR2(50) ); -- 设置 NOT NULL ALTER TABLE users MODIFY (user_id NUMBER NOT NULL); -- 添加主键 ALTER TABLE users ADD CONSTRAINT pk_users_id PRIMARY KEY (user_id); ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值