国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > 綜合 > 正文

用CREATE TABLE陳述式聲明計(jì)算數(shù)據(jù)列

2024-07-21 02:39:17
字體:
供稿:網(wǎng)友

  回到關(guān)系型數(shù)據(jù)庫(kù)理論創(chuàng)立者E. F. Codd的時(shí)代,一個(gè)普遍原理出現(xiàn)了:永遠(yuǎn)都不要保存能夠被計(jì)算的(內(nèi)容)。這一原理回避了這樣一個(gè)問題,“我們應(yīng)該在什么地方計(jì)算這個(gè)已經(jīng)計(jì)算出來的結(jié)果呢?”那么缺省的答案是,“在前端應(yīng)用程序里。”
  
  想像一下一個(gè)含有SuBTotal和TaxRate列的表格。根據(jù)這一原則,TaxAmount和Total這兩個(gè)“列”應(yīng)該是虛擬的。所以,要將它們作為查看表或者存儲(chǔ)過程的一部分創(chuàng)建;或者,換種方法,讓前端應(yīng)用程序來生成它們,并把它們呈現(xiàn)給用戶。
  
  這個(gè)原則的一個(gè)替換方法叫做計(jì)算數(shù)據(jù)列(computed column)。有了這種表示方法,你可以將計(jì)算數(shù)據(jù)列聲明為CREATE TABLE陳述式的一部分,盡管這可能會(huì)被發(fā)布給數(shù)據(jù)庫(kù)(不論是通過圖形用戶界面還是直接作為數(shù)據(jù)定義語(yǔ)言的指令)。
  
  現(xiàn)在讓我們來假設(shè)有一個(gè)數(shù)據(jù)庫(kù),它包含有對(duì)房屋粉刷工作的估價(jià)。忽略諸如房間里門窗數(shù)量這樣的細(xì)節(jié)(并假設(shè)所有的墻都刷上相同的顏色)就會(huì)帶來兩個(gè)問題:我們要把天花板涂上相同的顏色嗎(一般情況下,答案是“不會(huì)”);我們要涂幾層(一般情況下,答案是“兩層”)?
  
  假如沒有計(jì)算數(shù)據(jù)列的話,我們就沒有更好的辦法來處理這些問題,這樣就只有把這些結(jié)果的計(jì)算推給前端應(yīng)用程序。而有了計(jì)算數(shù)據(jù)列,我們就可以把方程式嵌入到數(shù)據(jù)庫(kù)里,創(chuàng)建一個(gè)虛擬的數(shù)據(jù)列,供任何前端使用。
  
  你可以用下面這個(gè)陳述式來創(chuàng)建表格:
  
  CREATE TABLE [TestComputedColumns] (
    [PK] [int] IDENTITY (1, 1) NOT NULL ,
    [Length] [int] NOT NULL ,
    [Width] [int] NOT NULL ,
    [Height] [int] NOT NULL ,
    [Coats] [int] NOT NULL CONSTRAINT [DF_TestComputedColumns_Coats] DEFAULT
   (2),
    [IncludeCeiling] [bit] NOT NULL CONSTRAINT
   [DF_TestComputedColumns_IncludeCeiling] DEFAULT (0),
    [Area] AS ((2 * ([Height] * [Length] + [Height] * [Width]) + [Length] *
   [Width] * [IncludeCeiling]) * [Coats]),
    CONSTRAINT [PK_TestComputedColumns] PRIMARY KEY CLUSTERED
    (
      [PK]
    ) ON [PRIMARY]
  ) ON [PRIMARY]
  GO
  
  你可以使用前端,插入一些數(shù)據(jù)行,看看它是如何工作的。例如,使用access 2000+創(chuàng)建一個(gè)指向你數(shù)據(jù)庫(kù)的訪問數(shù)據(jù)工程(Access Data Project,ADP),選擇表格,然后創(chuàng)建一個(gè)AutoForm。輸入一兩個(gè)數(shù)據(jù)行,然后通過你的輸入翻回到前面;你會(huì)看到計(jì)算數(shù)據(jù)列得到了正確的值。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 麻阳| 万安县| 栾城县| 嘉义县| 沁源县| 新竹县| 屯昌县| 莲花县| 酒泉市| 肥西县| 丰原市| 宁蒗| 嘉义县| 石狮市| 邹平县| 丰台区| 墨玉县| 泌阳县| 开远市| 怀化市| 兖州市| 清涧县| 山西省| 揭西县| 惠水县| 随州市| 凌云县| 鹰潭市| 兴城市| 交口县| 疏附县| 军事| 平潭县| 北票市| 涪陵区| 内乡县| 内乡县| 洛阳市| 林甸县| 德清县| 宁阳县|