商務英語計算機英語

數據庫中default的用法正確使用方法

本文已影響 1.54W人 

數據庫中default的用法的正確使用方法你清楚嗎,今天本站小編就跟大家詳細介紹下數據庫中default的用法,希望能幫到大家。

ing-bottom: 81.72%;">數據庫中default的用法正確使用方法
  數據庫中default的用法的用法

SQL Server數據庫default value的使用方法的總結是本文我們主要要介紹的內容,接下來我們就開始介紹這部分內容,希望能夠對您有所幫助。

1.在創建表的時候,給字段添加的默認值約束

CREATE TABLE "dbo"."Test" ( id int PRIMARY KEY, sex varchar(10) DEFAULT ('boy'), name varchar(40), age int DEFAULT ((1)), )

注意:

此時默認值約束,沒有約束名稱。DMBS會自動的給添加一個“默認值約束名稱”,注意varchar類型和int類型在DEFAULT 中的寫法:分別用‘’和()把value值包起來。

2.在創建表之後,給字段添加的默認值約束

alter table [dbo].[Test] add constraint Test_name_Default Default('Tom') for baseCurrencyCode

注意:

此時,必須編寫一個約束名稱,防止重名。

3.修改字段原有的默認值約束

declare @csname varchar(100) set @csname= '' select @csname=[name] from sysobjects where id=(select cdefault from syscolumns where id=object_id('Test') and name='age') exec('alter table [dbo].[Test] drop constraint ' + @csname ) exec('alter table [dbo].[Test] add constraint ' + @csname + ' Default((18)) for age')

注意:

默認值約束,不能修改。必須先drop之後再add drop的時候,必須知道當前“默認值約束的名稱”。通過上面的sql可以查出Test表的age字段所綁定的“默認值約束名稱”,纔可以drop。

關於SQL Server數據庫default value的使用的總結就介紹到這裏了,希望本次的介紹能夠對您有所收穫!

  數據庫中default的用法詳解示例

有一點是很重要的,即 DEFAULT 值只有當一個字段沒有在 INSERT 或 MERGE 中指定值,或者使用了 DEFAULT 關鍵字時纔會使用。如果你不顯式地聲明一個 DEFULAT 值,Oracle 將隱式地將默認值定義爲 NULL,而且 DEFAULT 關鍵字也是這樣。從 oracle 9i開始,可以在 DEFAULT 子句中使用諸如 SYSDATE 或 CURRENT_TIMESTAMPE 之類的僞字段。例如:

create table t1

(

id$ integer not null,

charcol char default 'Y',

datecol date default sysdate,

strcol varchar2(30) default user,

intcol integer default 12

);

insert into t1 (id$) values (1);

select * from t1;

ID$ C DATECOL STRCOL INTCOL

---------- - --------- ------------------------------ ----------

1 Y 28-MAY-04 SCOTT 12

DEFAULT 關鍵字與INSERT、MERGE 或UPDATE 語法比起來可以看上去沒有那麼必要,但是想一下如果你希望在插入一列數據時使用所有默認值,那麼你就不會這麼認爲了。Oracle 不接受INSERT INTO 或INSERT INTO VALUES () 作爲有效的 SQL。必須指定至少一個字段,但是可以使用 DEFAULT 關鍵字來允許使用默認值,而非硬編碼值,所以下面是有效的語法,它將使用所有 DEFAULT 值創建一行記錄。

create table t2(charcol char default 'Y',datecol date default sysdate);

insert into t2 (charcol) values (default);

select * from t2;

C DATECOL

- ---------

Y 28-MAY-04

  數據庫中default的用法常見問題

一個常見的問題是模擬其它數據庫提供商的 Autonumber 功能,該功能是使用某種順序數字自動地填充某個字段。在 Oracle 數據庫中,不能指定一個順序數字作爲一個字段的 DEFAULT 值;然而,可以使用觸發器模擬這一功能。即使一個字段聲明爲 NOT NULL,也依然可以在 INSERT 語句中忽略這個字段,而使用一個觸發器來填充該字段的值。注意使用 DEFAULT 關鍵字比使用顯式的 NULL 可讀性要好。

create sequence t3_seq;

create table t3(id$ integer constraint t3_pk primary key);

create or replace trigger t3_autonumber

before insert on t3 for each row

begin

if :$ is null then

select t3_val into :$ from dual;

end if;

end;

/

show errors;

insert into t3(id$) values (default);

select * from t3;

ID$

----------

1

可以使用SYS_CONTEXT 值的集合中的默認值來填充字段,並收集有關某處一個會話的重要信息:

create table t4

(

when date default SYSDATE,

db_domain varchar2(200) default SYS_CONTEXT('USERENV','DB_DOMAIN'),

host varchar2(256) default SYS_CONTEXT('USERENV','HOST'),

ip_address varchar2(256) default SYS_CONTEXT('USERENV','IP_ADDRESS'),

language varchar2(256) default SYS_CONTEXT('USERENV','LANGUAGE'),

protocol varchar2(200) default SYS_CONTEXT('USERENV','NETWORK_PROTOCOL'),

terminal varchar2(200) default SYS_CONTEXT('USERENV','TERMINAL')

);

insert into t4 (when) values (default);

select * from t4;

WHEN

---------

DB_DOMAIN

------------------------------------------------------------------------------

HOST

------------------------------------------------------------------------------

IP_ADDRESS

------------------------------------------------------------------------------

LANGUAGE

------------------------------------------------------------------------------

PROTOCOL

------------------------------------------------------------------------------

TERMINAL

------------------------------------------------------------------------------

28-MAY-04

MSHOME/SCOTT-LAP

AMERICAN_32UTF8

SCOTT-LAP

還可以使用僞字段SYS_GUID 來填充一個字段;它具有全局唯一性的優點,並且不需要順序數字或觸發器開銷:

create table t5(id$ raw(16) default sys_guid()

constraint t5_pk primary key);

insert into t5(id$) values (default);

select * from t5;

ID$

--------------------------------

643718A07DCC43F2AC95312FD43617BA


猜你喜歡:

1.數據庫中round的用法

2.數據庫中drop的用法

3.c語言中default的用法

4.數據庫中top的用法

5.數據庫中join的用法

猜你喜歡

熱點閱讀

最新文章