光脚丫学LINQ(044):数据库中的计算所得列
視頻演示:http://u.115.com/file/f220dc8a89
演示重點(diǎn)
數(shù)據(jù)庫(kù)中的計(jì)算所得列實(shí)質(zhì)上指的是列的數(shù)值是由表達(dá)式的計(jì)算結(jié)果提供的。
比如,下面的SQL語(yǔ)句,創(chuàng)建了一個(gè)包含TotalValue的計(jì)算所得列的數(shù)據(jù)表,
在列名的后面使用AS關(guān)鍵字,后面接著寫上所使用到的表達(dá)式,就可以了。
根據(jù)上面的表達(dá)式可以知道TotalValue列的數(shù)值,
是由UnitPrice和UnitsInStock這兩個(gè)列確定的,即這兩列數(shù)值的乘積。
INSERT
當(dāng)使用INSERT命令向包含計(jì)算所得列的數(shù)據(jù)表添加新紀(jì)錄的時(shí)候,
不要試圖為新紀(jì)錄的計(jì)算所得列提供數(shù)值,
那樣做的話,這個(gè)添加紀(jì)錄的SQL語(yǔ)句會(huì)發(fā)生錯(cuò)誤,添加失敗!
原因很簡(jiǎn)單,計(jì)算所得列的值是由數(shù)據(jù)庫(kù)根據(jù)表達(dá)式自行計(jì)算的。
你偏偏給它賦值,豈不是讓數(shù)據(jù)庫(kù)覺(jué)得很不爽?于是乎,錯(cuò)誤你一把又怎樣?
你可能會(huì)想,如果我也按照表達(dá)式來(lái)計(jì)算的話,
這樣數(shù)值不就正確了嗎?應(yīng)該會(huì)被正確執(zhí)行的吧?
結(jié)論是,不可以!數(shù)據(jù)庫(kù)會(huì)咆哮著對(duì)你說(shuō):你越權(quán)了!^_^
UPDATE
當(dāng)我們執(zhí)行更新SQL命令的時(shí)候,凡是表達(dá)式中涉及到的數(shù)據(jù)列的數(shù)值被更新了,
那么,數(shù)據(jù)庫(kù)也會(huì)自動(dòng)更新計(jì)算所得列中的數(shù)值。
同樣的,在更新SQL命令中,也不要試圖為計(jì)算所得列賦值。
那樣做,同樣是錯(cuò)誤的!
光腳丫思考 2011-1-7
轉(zhuǎn)載于:https://www.cnblogs.com/GJYSK/archive/2011/01/07/1929300.html
總結(jié)
以上是生活随笔為你收集整理的光脚丫学LINQ(044):数据库中的计算所得列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux基础应用和常用技巧
- 下一篇: [转帖]mysql ERROR 1130