电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

SQL Server視圖管理中的四個限制條件

瀏覽:4日期:2023-11-06 19:19:49

通過視圖來訪問數據,其優點是非常明顯的。如可以起到數據保密、保證數據的邏輯獨立性、簡化查詢操作等等。

但是,話說回來,SQL Server數據庫中的視圖并不是萬能的,他跟表這個基本對象還是有重大的區別。在使用視圖的時候,需要遵守四大限制。

限制條件一:視圖數據的更改

當用戶更新視圖中的數據時,其實更改的是其對應的數據表的數據。無論是對視圖中的數據進行更改,還是在視圖中插入或者刪除數據,都是類似的道理。但是,不是所有視圖都可以進行更改。如下面的這些視圖,在SQL Server數據庫中就不能夠直接對其內容進行更新,否則,系統會拒絕這種非法的操作。

如在一個視圖中,若采用Group By子句,對視圖中的內容進行了匯總。則用戶就不能夠對這張視圖進行更新。這主要是因為采用Group By子句對查詢結果進行匯總在后,視圖中就會丟失這條紀錄的物理存儲位置。如此,系統就無法找到需要更新的紀錄。若用戶想要在視圖中更改數據,則數據庫管理員就不能夠在視圖中添加這個Group BY分組語句。

如不能夠使用Distinct關鍵字。這個關鍵字的用途就是去除重復的紀錄。如沒有添加這個關鍵字的時候,視圖查詢出來的紀錄有250條。添加了這個關鍵字后,數據庫就會剔除重復的紀錄,只顯示不重復的50條紀錄。此時,若用戶要改變其中一個數據,則數據庫就不知道其到底需要更改哪條紀錄。因為視圖中看起來只有一條紀錄,而在基礎表中可能對有的紀錄有幾十條。為此,若在視圖中采用了Distinct關鍵字的話,就無法對視圖中的內容進行更改。

如果在視圖中有AVG、MAX等函數,則也不能夠對其進行更新。如在一張視圖中,其采用了SUN函數來匯總員工的工資時,此時,就不能夠對這張表進行更新。這是數據庫為了保障數據一致性所添加的限制條件。

可見,試圖雖然方便、安全,但是,其仍然不能夠代替表的地位。當需要對一些表中的數據進行更新時,我們往往更多的通過對表的操作來完成。因為對視圖內容進行直接更改的話,需要遵守一些限制條件。在實際工作中,更多的處理規則是通過前臺程序直接更改后臺基礎表。至于這些表中數據的安全性,則要依靠前臺應用程序來保護。確保更改的準確性、合法性。

限制條件二:定義視圖的查詢語句中不能夠使用某些關鍵字

我們都知道,視圖其實就是一組查詢語句組成。或者說,視圖是封裝查詢語句的一個工具。在查詢語句中,我們可以通過一些關鍵字來格式化顯示的結果。如我們在平時工作中,經常會需要把某張表中的數據跟另外一張表進行合并。此時,數據庫管理員就可以利用Select Into語句來完成。先把數據從某個表中查詢出來,然后再添加到某個表中。

當經常需要類似的操作時,我們是否可以把它制作成一張視圖。每次有需要的時候,只需要運行這個視圖即可,而不用每次都進行重新書寫SQL代碼。不過可惜的是,結果是否定的。在SQL Server數據庫的視圖中,是不能夠帶有Into關鍵字。如果要實現類似的功能,只有通過函數或者過程來實現。

另外,跟Oracle數據庫不同的是,在微軟的SQLServer數據庫中創建視圖的時候,還有一個額外的限制。就是不能夠在創建視圖的查詢語句中,使用order by排序語句。這是一個很特殊的規定。一些Oracle的數據庫管理員,在使用SQL Server數據庫創建視圖的時候,經常會犯類似的錯誤。他們就搞不明白,為什么Oracle數據庫中可行,但是在微軟的數據庫中則行不通呢?這恐怕只有微軟數據庫產品的設計者才能夠回答的問題。總之我們要記住的就是,在SQLServer數據庫中,建立視圖時,查詢語句中不能夠包含Order By語句。

限制條件三:要對某些列取別名,并保證列名的唯一

在表關聯查詢的時候,當不同表的列名相同時,只需要加上表的前綴即可。不需要對列另外進行命名。但是,在創建視圖時就會出現問題,數據庫會提示 “duplicate column name”的錯誤提示,警告用戶有重復的列名。有時候,用戶利用Select語句連接多個來自不同表的列,若擁有相同的名字,則這個語句仍然可以執行。但是,若把它復制到創建視圖的窗口,創建視圖時,就會不成功。

查詢語句跟創建視圖的查詢語句還有很多類似的差異。如有時候,我們在查詢語句中,可能會比較頻繁的采用一些算術表達式;或者在查詢語句中使用函數等等。在查詢的時候,我們可以不給這個列“取名”。數據庫在查詢的時候,會自動給其命名。但是,在創建視圖時,數據庫系統就會給你出難題。系統會提醒你為列取別名。

從以上兩個例子中,我們可以看出,雖然視圖是對SQL語句的封裝,但是,兩者仍然有差異。創建視圖的查詢語句必須要遵守一定的限制。如要保證視圖的各個列名的唯一;如果自阿視圖中某一列是一個算術表達式、函數或者常數的時候,要給其取名字,等等。

限制條件四:權限上的雙重限制

為了保障基礎表數據的安全性,在視圖創建的時候,其權限控制比較嚴格。

一方面,若用戶需要創建視圖,則必須要有數據庫視圖創建的權限。這是視圖建立時必須遵循的一個基本條件。如有些數據庫管理員雖然具有表的創建、修改權限;但是,這并不表示這個數據庫管理員就有建立視圖的權限。恰恰相反,在大型數據庫設計中,往往會對數據庫管理員進行分工。建立基礎表的就只管建立基礎表;負責創建視圖的就只有創建視圖的權限。

其次,在具有創建視圖權限的同時,用戶還必須具有訪問對應表的權限。如某個數據庫管理員,已經有了創建視圖的權限。此時,若其需要創建一張員工工資信息的視圖,還不一定會成功。這還要這個數據庫管理員有美譽跟工資信息相關的基礎表的訪問權限。如建立員工工資信息這張視圖一共涉及到五張表,則這個數據庫管理員就需要擁有者每張表的查詢權限。若沒有的話,則建立這張視圖就會以失敗告終。

第三,就是視圖權限的繼承問題。如上面的例子中,這個數據庫管理員不是基礎表的所有者。但是經過所有者的授權,他就可以對這個基礎表進行訪問,就可以以此為基礎建立視圖。但是,這個數據庫管理員有沒有把對這個基礎表的訪問權限再授權給其他人呢?如他能否授權給A用戶訪問員工考勤信息表呢?答案是不一定。默認情況下,數據庫管理員不能夠再對其他用戶進行授權。但是,若基礎表的所有者,把這個權利給了數據庫管理員之后,則他就可以對用戶進行重新授權。讓數據庫管理員可以給A用戶進行授權,讓其可以進行相關的操作。

可見,視圖雖然靈活,安全,方便,但是其仍然有比較多的限制條件。根據筆者的經驗,一般在報表、表單等等工作上,采用視圖會更加的合理。因為其 SQL語句可以重復使用。而在基礎表更新上,包括紀錄的更改、刪除或者插入上,往往是直接對基礎表進行更新。對于一些表的約束,可以通過觸發器、規則等等來實現;甚至可以通過前臺SQL語句直接實現約束。作為數據庫管理員,要有這個能力,能夠判斷在什么時候使用視圖,什么時候直接調用基礎表。

標簽: Sql Server 數據庫
主站蜘蛛池模板: 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 1000帧高速摄像机|工业高速相机厂家|科天健光电技术 | 铝镁锰板_铝镁锰合金板_铝镁锰板厂家_铝镁锰金属屋面板_安徽建科 | 非甲烷总烃分析仪|环控百科 | 河南15年专业网站建设制作设计,做网站就找郑州启凡网络公司 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | YJLV22铝芯铠装电缆-MYPTJ矿用高压橡套电缆-天津市电缆总厂 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 【法利莱住人集装箱厂家】—活动集装箱房,集装箱租赁_大品牌,更放心 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 工业洗衣机_工业洗涤设备_上海力净工业洗衣机厂家-洗涤设备首页 bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 苏州西装定制-西服定制厂家-职业装定制厂家-尺品服饰西装定做公司 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 线材成型机,线材折弯机,线材成型机厂家,贝朗自动化设备有限公司1 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 月嫂_保姆_育婴_催乳_母婴护理_产后康复_养老护理-吉祥到家家政 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 户外环保不锈钢垃圾桶_标识标牌制作_园林公园椅厂家_花箱定制-北京汇众环艺 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 北京公积金代办/租房发票/租房备案-北京金鼎源公积金提取服务中心 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 国际金融网_每日财经新资讯网| 微水泥_硅藻泥_艺术涂料_艺术漆_艺术漆加盟-青岛泥之韵环保壁材 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 气密性检测仪_气密性检测设备_防水测试仪_密封测试仪-岳信仪器 | 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 清水混凝土修复_混凝土色差修复剂_混凝土色差调整剂_清水混凝土色差修复_河南天工 |