的字符Oracle中固定不能为空的字符(oracle中不为空格)

Oracle中固定不能为空的字符

在Oracle数据库中,有些字符属性是固定不能为空的,这些字符属性在创建表时就需要被设定好。本文将介绍这些属性以及如何处理它们。

1. NOT NULL

NOT NULL是最常见的固定不能为空的字符属性。 在创建表时,如果一个列被定义为 NOT NULL,则在插入数据时不允许该列为空。 若尝试在该列中插入NULL值,将会抛出一个错误。

以下是一个示例代码创建一个简单的表stu,其中定义了id和name两个字段。 id字段必须为非空值;但是,由于未定义name字段为非空字段,因此可以插入空值:

CREATE TABLE stu (
id NUMBER(5) NOT NULL,
name VARCHAR2(20)
);

插入数据时,插入NULL值会导致错误:

INSERT INTO stu (id, name) VALUES (1, NULL);

2. PRIMARY KEY

PRIMARY KEY也是固定不能为空的字符属性,但是它比NOT NULL更具特殊性。 PRIMARY KEY是表中的唯一标识符,没有两行记录可以有相同的主键值。

以下是一个示例代码创建一个带有主键的表stu2,id字段是非空并且是主键:

CREATE TABLE stu2 (
id NUMBER(5) PRIMARY KEY,
name VARCHAR2(20)
);

插入一个具有相同ID的记录将导致唯一约束冲突的错误:

INSERT INTO stu2 (id, name) VALUES (1, 'Alice');
INSERT INTO stu2 (id, name) VALUES (1, 'Bob');

3. UNIQUE

UNIQUE约束是另一个固定不能为空的字符属性。 UNIQUE约束保证列中的所有值都是唯一的,但与主键不同,UNIQUE允许列中包含NULL值。

以下是一个示例代码创建一个带有UNIQUE约束的表stu3,name字段是非空并且具有唯一性:

CREATE TABLE stu3 (
id NUMBER(5),
name VARCHAR2(20) NOT NULL UNIQUE
);

插入一个具有相同名称的记录将导致唯一约束冲突的错误:

INSERT INTO stu3 (id, name) VALUES (1, 'Alice');
INSERT INTO stu3 (id, name) VALUES (2, 'Alice');

插入一个具有NULL名称的记录是允许的:

INSERT INTO stu3 (id, name) VALUES (3, NULL);

4. FOREIGN KEY

FOREIGN KEY就是外键,是另一个固定不能为空的字符属性。 它在两个表之间创建关联,FOREIGN KEY约束确保只有存在于另一个表中的相应记录才能在此表中插入。

以下是一个示例代码创建带有外键的表dep和emp。 dep表中的ID是主键,并且与emp表中的dept_id字段相关联。 emp表中的dept_id字段是一个FOREIGN KEY,并且引用了dep表中的ID字段。

CREATE TABLE dep (
id NUMBER(5) PRIMARY KEY,
name VARCHAR2(20) NOT NULL
);

CREATE TABLE emp (
id NUMBER(5) PRIMARY KEY,
name VARCHAR2(20) NOT NULL,
dept_id NUMBER(5) NOT NULL REFERENCES dep(id)
);

插入一个不存在于dep表中的部门会导致外键冲突的错误:

INSERT INTO emp (id, name, dept_id) VALUES (1, 'Alice', 100);

插入一个存在于dep表中的部门是可以的:

INSERT INTO dep (id, name) VALUES (100, 'IT');
INSERT INTO emp (id, name, dept_id) VALUES (1, 'Alice', 100);

本文介绍了Oracle中固定不能为空的字符属性,包括NOT NULL、PRIMARY KEY、UNIQUE和FOREIGN KEY。 掌握这些约束可以帮助您更好地设计和控制数据库表。


数据运维技术 » 的字符Oracle中固定不能为空的字符(oracle中不为空格)