SQL語言
SQL是strcture query language 的縮寫,是關系型數據庫的標準語言結構化 查詢 語言包括三個大的內容:
A、 DDL數據定義語言:create database table ???????
B、 DML數據操縱語言:insert update delete
C、 DCL數據控制語言:grant??????
創(chuàng)建視圖(視圖也叫虛擬表;表:基本表)使用create view 語句創(chuàng)建試圖,格式如下:
Create [ or replace(將現(xiàn)有的覆蓋) ] view view_nameAs select_statement[ with [cascaded | local ]check option ]
Replace:替換
Check:檢查
option:選項
Cascaded:級聯(lián)(默認)
local:本地簡化
創(chuàng)建視圖命令:Create view view_name As select_statementCreate view 視圖名 as 查詢語句
注意:
視圖分為可更新視圖和不可更新視圖。
1、 查看視圖的定義命令:Show create view view_name
例:show create view 計算機專業(yè)_xsshow create view lssxcj_cjb;
2、 刪除已創(chuàng)建好的視圖命令:Drop view view_name例:drop view 離散數學
例題1:在學生管理數據庫中為計算機專業(yè)的同學創(chuàng)建一個視圖
Create view 計算機專業(yè)_xs as select from xs where 專業(yè)=’計算機’ with check option;
使用show tables查看使用select from 視圖名_xs查看視圖中的數據
3、 創(chuàng)建學生成績視圖
Create view 學生成績_xs_kc_cj asSelect 姓名,課程名,成績 from xsl,kb,cjb where xsl.學號=cjb.學號 andkb.課程號=cj.課程號;
【說明】
1. 若指定了【or replace】參數,則表示如果存在同名的視圖,則覆蓋原來的視圖。
2. With check option:為可選項,不指定該項不進行相關檢查。而如果指定該選項,則可指出在可更新視圖上所進行的修改都要符合select_statement 所指定的限制條件,這樣可以確保數據修改后,仍可通過視圖看到修改的數據,當視圖是根據另一個視圖定義時,with check option 給出兩個參數:local(本視圖)和 cascaded(級聯(lián)到所有下一級視圖)。它們決定了檢查測試的范圍。
可更新視圖要通過視圖更新基本表的數據,必須保證視圖是可更新的,既可以在insert update等語句中當中使用它們。對于可更新的視圖,在視圖中的行為和基本表中的行之間具有一對一的關系。還有一些特定的其他結構,這類結構會使得視圖不可更新。
如果視圖含下述結構中的任何一種,那么它就是不可更新的。
聚合函數:max() sum() count() avg()等;
Distinct 關鍵字;
Group by 子句;
Order by 子句;
Having 字句;
From 子句中包含多個表;
Select 語句中引用了不可更新的視圖Where子句中的子查詢,引用from子句中的表;視圖與表的區(qū)別視圖是從一個或多個表(或視圖)導出的虛擬表。而表有時也稱為基本表——base table。即視圖所對應的數據不進行實際存儲,數據庫中只存儲視圖的的定義,對視圖的數據進行操作時,系統(tǒng)根據視圖的定義去操作與視圖相關的基本表。在information_schema數據庫的tables表中有記錄。
Select table_schema,table_name,table_type from tables where table_schema=’xsgl2’; 視圖一經定義后,就可以像表一樣被查詢、修改、刪除、更新。
使用視圖有以下優(yōu)點:
1、 為用戶集中數據,簡化用戶的數據查詢、修改、刪除和更新;
2、 屏蔽數據庫的復雜性;
3、 簡化用戶的權限管理;
4、 便于數據共享;
5、 可以重新組織數據以便輸出到其他應用程序中;
更多建議: