資料庫不為空的
A. 資料庫的外鍵何時允許為空何時不為空
資料庫的外鍵可以為空,也可以非空,但是如果非空,則這個值必須在主表中存在。
比如主表是一個班級,主鍵是班級id,
字表是學生分配班級表,主鍵是學生id,外鍵是所在班級id。
如果一個學生的外鍵id為空,說明這個學生還沒有被分配到任何一個班級
如果一個學生的外鍵id非空,並且是班級表中的某個id,則說明學生分配到這個班級
如果一個學生的外鍵id非空,並且不屬於任何班級,則數據插入肯定報錯。也就是說這種情況不存在。
--例子:
create table clerk(
id int,
name varchar2(10),
manager_id int);
alter table clerk add constraint pk_clerk_id primary key(id);
alter table clerk add constraint fk_clerk_manager_id foreign key(manager_id) references clerk(id);
insert into clerk values (1, 'boss', null);
insert into clerk values (2, 'zhang', null);
insert into clerk values (3, 'zhang', 2);
--、下列語句報錯,因為5不是主鍵的值
insert into clerk values (4, 'zhang', 5);
SQL> select * from clerk;
ID NAME MANAGER_ID
---------- ---------- ----------
1 yang
2 zhang
3 zhang 2
B. 資料庫SQL語句查詢表中不為空的欄位的數量為5的SQL語句
1、select case C_NUMBER when NULL then '0' else C_NUMBER end from T_SCORE 如果這條語句執行不對,那麼說明你的C_NUMBER欄位的NULL不是真正的NULL,而是字元串「NULL」,所以需要這樣的SQL: select case C_NUMBER when 'NULL' then '0' when 'null' then '0' else C_NUMBER end from T_SCORE 2、多個欄位可以這樣寫:selectcase C_NUMBER when 'NULL' then '0' when 'null' then '0' else C_NUMBER end,
C. 如何為數據表新增不為空的欄位
如果想要增加一個不為空的欄位可以,但要放進先放入默認值。
比如在scott的emp中加入一列'T'不為空的,可以這么寫;
alter table emp add T number(8) default (0) not null;
not null 和 default不能換位置。