亚洲一区亚洲二区亚洲三区,国产成人高清在线,久久久精品成人免费看,999久久久免费精品国产牛牛,青草视频在线观看完整版,狠狠夜色午夜久久综合热91,日韩精品视频在线免费观看

約束與數(shù)據(jù)庫對象規(guī)則、默認值的探究 -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【www.ishadingyu.com - 電腦資料】

約束、規(guī)則、默認值這三者在數(shù)據(jù)表中規(guī)定了數(shù)據(jù)進行操作時的限制條件,

約束與數(shù)據(jù)庫對象規(guī)則、默認值的探究

。他們?nèi)哂嘘P(guān)系也有區(qū)別,用了兩天的時間研究了他們?nèi)撸?a class="channel_keylink" href="http://www.ishadingyu.com/gongzuozongjie/" title="總結(jié)">總結(jié)如下。

首先讓我們從關(guān)系角度來分析:

●淺談約束、規(guī)則、默認值

1、約束,約束顧名思義是限制條件的意思,其實它的作用也是如此,它是對所要進行增刪改查操作的數(shù)據(jù)進行一次檢查,檢查這些數(shù)據(jù)是否符合我們所要約束的條件。舉個例子:我們都經(jīng)歷過高考,考試規(guī)定考生不許帶與考試無關(guān)的物品這就是一種約束。報名考試的考生可能因為某些意外沒有進入考場考試,但大部分考生還是進行了考試。那么在考場內(nèi)就產(chǎn)生了兩種情況空位和非空位,這就是我們約束條件的兩種情況。我們繼續(xù)分析,在考生進入考場的情況中,考生在答卷之前是必須要在試卷和答題卡上填寫自己的信息的,這些信息都是必須要填的因為它們唯一確定了一個考生,這里考生必須填寫考生信息也就是我們所說的主鍵約束(主關(guān)鍵字約束)。接下來我們用兩個表來說明下外鍵約束:

那么如果我們在字段后面用Not Null規(guī)定了呢?也就是說在我們的考生信息表中的性別字段,該列是不允許為空的于是就用Not Null標識,但是如果我們不填的話呢,我們的系統(tǒng)就會用Default默認值約束來幫助我們天上一個值。接下來我們來看Check約束,該約束是要用條件表達式來限定所要填的數(shù)據(jù)的,如下:

Create table 工資 (    
       
         name  char(10) primary key,    
       
         department  char(20) Not Null,    
       
         salary int not null check(salary>1000 and salary<4000)    
       
)

創(chuàng)建了一個表該表中有三個字段,name、department、salary,并在salary字段設(shè)置了約束條件。該表如下圖:

在表中填數(shù)據(jù)時后兩個不符合條件是不正確的。

在約束中還分為兩種:字段級約束和表級約束。字段級約束是只約束其中的一列,表級約束是約束多列,它們兩個的區(qū)別并不大,我們在理解時可以將表級理解為字段級,即:被約束的多列可以看做捆綁成一列,被捆綁后的字段中的兩個記錄是不能重復(fù)的,如:

2、規(guī)則,規(guī)則顧名思義是規(guī)矩制度的意思,在進行表操作時它的作用和check約束條件是類似的,但是一個表中只有一個規(guī)則,可有多個check約束,如:

Create table 薪水(    
       
       name  char(10) primary key,    
       
       position  char(20) Not Null,    
       
       salary int not null 
       
    )    
       
Create rule ru_salary    
       
As @salary>1000 and @salary<4000    
       
Go    
       
Exec sp_bindrule ‘ru_salary’,  ’薪水.salary’    
       
  Go

表說明如下:

3、默認值,用法同規(guī)則,它的作用類似于Default約束,是說在表中插入數(shù)據(jù)時,如果沒有指定值,默認值自動指定數(shù)據(jù)值。

接下來我們在語法上分析三者,看圖:

1、約束,創(chuàng)建方法大致有三種:

    ——方法一:在創(chuàng)建表時用字句的方式創(chuàng)建約束    
       
    CREATE TABLE 表名(    
       
            列名數(shù)據(jù)類型,    
       
            ……    
       
           <span style="color:#009900;"> CONSTRAINT 約束名 PRIMARY KEY (列名),                       ——主鍵約束    
       
            CONSTRAINT 約束名 UNIQUE (列名),                            ——唯一約束    
       
            CONSTRAINT 約束名 FOREIGN KEY (列名) REFERENCES 表名 (列名),  ——外鍵約束    
       
            CONSTRAINT 約束名 CHECK (檢查條件)                           ——Check約束    
       
</span> );    
       
        ——方法二:在創(chuàng)建表時直接定義約束    
       
    CREATE TABLE 表名(    
       
 <span style="color:#009900;">           列名數(shù)據(jù)類型 NOT NULL,                                        ——非空約束    
       
            列名數(shù)據(jù)類型 NOT NULL PRIMARY KEY,                            ——主鍵約束    
       
            列名數(shù)據(jù)類型 NOT NULL UNIQUE,                                 ——唯一約束    
       
            列名數(shù)據(jù)類型 [NOT NULL] REFERENCES 表名(列名),                ——外鍵約束    
       
            列名數(shù)據(jù)類型 [NOT NULL] CHECK (檢查條件)                         ——Check約束</span>    
       
    )    
       
       ——方法三:在創(chuàng)建表后,通過更改表來定義    
       
<span style="color:#009900;">   ALTER TABLE 表名 ALTER COLUMN 列名 SET NOT NULL;    
       
    ALTER TABLE 表名 ADD PRIMARY KEY (列名1,列名2…);    
       
    ALTER TABLE 表名 ADD UNIQUE (列名1,列名2,……);    
       
    ALTER TABLE 表名 ADD FOREIGN KEY(列名) REFERENCES 表名2 (列名2);    
       
    ALTER TABLE 表名 ADD CHECK (檢查條件);    
</span>

刪除約束的語法為:ALTER TABLE 表名 DROP CONSTRAINT 約束名

2、規(guī)則,

電腦資料

約束與數(shù)據(jù)庫對象規(guī)則、默認值的探究》(http://www.ishadingyu.com)。規(guī)則的應(yīng)用操作,首先要創(chuàng)建但只創(chuàng)建是不能應(yīng)用的要用sp_bindrule將規(guī)則綁定到字段或自定義的數(shù)據(jù)類型上才能起作用。

   ——創(chuàng)建    
       
 <span style="color:#009900;">   Create rule 規(guī)則名 as 條件表達式    
</span>    
    ——綁定    
       
   <span style="color:#009900;"> Exec sp_bindrule ‘規(guī)則名’  , ‘表名.字段名’ | ‘數(shù)據(jù)類型’    
       
</span>    ——解除綁定    
       
  <span style="color:#009900;">  sp_unbindrule  ‘表名.字段名’ | ‘數(shù)據(jù)類型’    
</span>    
    ——刪除規(guī)則    
       
    <span style="color:#009900;">DROP RULE {rule_name} [,...n]    
</span>

3、默認值的語法和規(guī)則是類似的,只需將規(guī)則中的rule改成關(guān)鍵字default即可。

 三者間的關(guān)系很清楚了吧。

上面兩個導(dǎo)圖看不清怎么辦,不用著急來這兒下載吧:

http://163.fm/8S2n28H     提取碼:0lUKbp0z

http://163.fm/GktKqwV    提取碼:Dc6THqqH

最新文章