已閱讀5頁(yè),還剩130頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章SQL Server 數(shù)據(jù)庫(kù)基本對(duì)象操作和管理,3.1 數(shù)據(jù)庫(kù),在SQL Server2005中創(chuàng)數(shù)據(jù)庫(kù)方法有兩種,使用SQL Server Manager和T-SQL(Create Datebase)創(chuàng)建數(shù)據(jù)庫(kù)。當(dāng)新數(shù)據(jù)庫(kù)創(chuàng)建之后,系統(tǒng)自動(dòng)把model數(shù)據(jù)庫(kù)中的系統(tǒng)表復(fù)制到新數(shù)據(jù)庫(kù)中。下面描述在SQL Server2005中用兩種不同方法創(chuàng)建數(shù)據(jù)庫(kù)的內(nèi)容。,1.定義數(shù)據(jù)庫(kù),一般來(lái)說(shuō),為了創(chuàng)建數(shù)據(jù)庫(kù)首先應(yīng)定義數(shù)據(jù)庫(kù),定義數(shù)據(jù)庫(kù)的內(nèi)容包括: (1)數(shù)據(jù)庫(kù)名稱 如命名數(shù)據(jù)名稱為Material_Data。 (2)數(shù)據(jù)庫(kù)大小 如主文件(. mdf)大小為10MB,日志文件大小為3MB。 (3)數(shù)據(jù)庫(kù)將駐留在哪一個(gè)文件中 如數(shù)據(jù)庫(kù)將駐留在C:Program FilesMicrosoft SQL ServerMSSQLdatamaterial_Data.MDF中。 即,創(chuàng)建Material_Data數(shù)據(jù)庫(kù), 主文件(. mdf)大小為10MB,日志文件大小為3MB。數(shù)據(jù)庫(kù)將駐留在C:Program FilesMicrosoft SQL ServerMSSQLdatamaterial_Data.MDF中。,2 .Server Manager創(chuàng)建數(shù)據(jù)庫(kù),下面描述用Server Manager創(chuàng)建數(shù)據(jù)庫(kù)步驟。 第一步, 登錄SQL Server 2005數(shù)據(jù)庫(kù)引擎后,圖3.1所示SQL Server數(shù)據(jù)庫(kù)管理圖面。,SQL Server數(shù)據(jù)庫(kù)管理界面,在選擇數(shù)據(jù)庫(kù)菜單中右擊鼠標(biāo),出現(xiàn)圖3.2所示圖面,選擇新建數(shù)據(jù)庫(kù)功能,第二步 指定數(shù)據(jù)庫(kù)名稱Material_Data 在進(jìn)入新建數(shù)據(jù)庫(kù),圖3.3所示圖面中,在數(shù)據(jù)庫(kù)名稱輸入框輸入數(shù)據(jù)庫(kù)名稱Material_Data,指定數(shù)據(jù)庫(kù)名稱,圖3.3數(shù)據(jù)庫(kù)名稱輸入圖面,指定數(shù)據(jù)庫(kù)所有者,第三步 指定數(shù)據(jù)庫(kù)所有者 可選擇默認(rèn)所有者。選擇數(shù)據(jù)庫(kù)所有者右邊按鈕,進(jìn)入數(shù)據(jù)庫(kù)所有者指定方法,步驟圖3.4-3.7所示,圖3.6 指定數(shù)據(jù)庫(kù)所者-3,圖3.7 指定數(shù)據(jù)庫(kù)所者-4,指定主文件與日志文件初始大小,第四步 指定主文件與日志文件初始大小,圖3.8所示。主文件10MB,日志文件3MB。,圖3.8指定主文件與日志文件初始大小,指定主文件與日志文件自助增長(zhǎng)方式與最大文件大小,第五步 指定主文件與日志文件自助增長(zhǎng)方式與最大文件大小,在圖3.8中,選擇自動(dòng)增長(zhǎng)欄中右邊按扭,出現(xiàn)圖3.9所示窗口。在3.9所示窗口中可指定文件自動(dòng)增長(zhǎng)方式與最大文件大小。,圖3.9 指定主文件與日志文件自助增長(zhǎng)方式最大文件大小,指定主文件與日志文件目錄路徑,第六步 指定主文件與日志文件目錄路徑,在圖3.8的路徑欄中,選擇與主文件、日志文件對(duì)應(yīng)的右邊按鈕,分別進(jìn)入主文件目錄路徑與日志文件目錄路徑指定窗口,圖3.10與圖3.11所示。,3T-SQL(Create Datebase)創(chuàng)建數(shù)據(jù)庫(kù),下面描述用T-SQL(Create Datebase)創(chuàng)建數(shù)據(jù)庫(kù)。 (1) 選擇新建查詢命令,進(jìn)入T-SQL命令編輯窗口,圖3.12所示。,(2)在圖3.12數(shù)據(jù)庫(kù)下拉列表框中選擇master數(shù)據(jù)庫(kù),圖3.13所示。,(3)在圖3.11 的T-SQL命令編輯窗口,輸入如下的T-SQL語(yǔ)句。 CREATE DATABASE Material_Data1 ON PRIMARY(NAME=Material_Data1,FILENAME=C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDatamaterial_Data1.MDF, SIZE=10MB, MAXSIZE=15MB, FILEGROWTH=20%) LOG ON (NAME=Material_Log1, FILENAME=C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDatamaterial_Log1.LDF, SIZE=3MB, MAXSIZE=5MB, FILEGROWTH=1MB),其中, PRIMARY 指定主文件(擴(kuò)展名為.dmf) FILENAME 指定文件名與路徑 SIZE 指定數(shù)據(jù)或日志文件大小 MAXSIZE 指定文件能增長(zhǎng)到的最大長(zhǎng)度 FILEGROWTH 指定文件增長(zhǎng)量,(4)在圖3.13中,選擇執(zhí)行功能菜單,執(zhí)行結(jié)果圖3.14所示,數(shù)據(jù)庫(kù)創(chuàng)建成功,(5)當(dāng)新數(shù)據(jù)庫(kù)創(chuàng)建之后,系統(tǒng)自動(dòng)把model數(shù)據(jù)庫(kù)中的系統(tǒng)表復(fù)制到新數(shù)據(jù)庫(kù)中,新建成功的Material_Data出現(xiàn)在數(shù)據(jù)庫(kù)列表中,圖3.15所示。,3.2表,3.2.1表管理設(shè)計(jì)與創(chuàng)建 假如有如下五個(gè)業(yè)務(wù)表,表3.1 Department,表3.2 Product,表3.3planning,表3.4Manager,表3.5 Orderbill,現(xiàn)對(duì)以上五個(gè)表的表名、字段名、字段類型、字段長(zhǎng)度、主鍵及外鍵設(shè)計(jì)如下,表3.6-3.10所示:,表3.6 Department,表3.7 Product,表3.8 planning,表3.9Manager,表3.10 Orderbill,現(xiàn)試圖在3.1中建立的數(shù)據(jù)庫(kù)Material_Data中,創(chuàng)建以上5個(gè)表。在SQL Server2005中, 可用下述方法在己建立的數(shù)據(jù)庫(kù)中創(chuàng)建及修改表。 第一步,進(jìn)入Material_Data數(shù)據(jù)庫(kù)中新建表功能,圖3.16所示。,1使用SQL Server Manager創(chuàng)建表,填寫表中列名、數(shù)據(jù)類型及是否為空,設(shè)置鍵及表存盤。 (1)Department a.填寫Department表中列名、數(shù)據(jù)類型,圖3.17所示。,第二步,b.設(shè)置表Department中主鍵,圖3.18-3.19所示。,c.存盤及表命名,圖3.20-圖3.22所示。,圖3.20輸入表命名Table_1,圖3.21 輸入表命名Department,(3) planning a.填寫表planning中列名、數(shù)據(jù)類型,圖3.29所示。,3.2表,b.存盤及表命名,圖3.30-3.32所示。,圖3.30輸入表命名Table_1,圖3.31 輸入表命名Planning,c. 按圖3.33-3.38所示設(shè)置deptNo外鍵,圖3.34設(shè)置deptNo外鍵-使用“添加“按鈕,圖3.35設(shè)置deptNo外鍵-確定“標(biāo)識(shí)“名稱,圖3.36置deptNo外鍵-選擇主鍵表與外鍵表,圖3.37deptNo外鍵-選擇主鍵表與外鍵表字段,d.設(shè)置productNo外鍵,圖3.39-3.43所示。,圖3.40設(shè)置productNo外鍵-使用“添加“按鈕,圖3.41設(shè)置productNo外鍵-確定標(biāo)“名稱”FK_planning_Product,圖3.42設(shè)置productNo外鍵-確定主表、外鍵表等相關(guān)表中字段,圖3.43設(shè)置productNo外鍵完成返回Management Studio窗口,2使用SQL Server Manager 設(shè)置表的屬性,在屬性框中,可修改表的屬性,如可對(duì)前面設(shè)計(jì)的各表的列名,類型等進(jìn)行修改,如圖3.44所示。,3使用SQL Server Manager修改表的結(jié)構(gòu),使用SQL Server Manager增加、刪除列 (1)增加列,圖3.45所示。,(2)刪除列,4使用T- SQL語(yǔ)言創(chuàng)建表,創(chuàng)建表的SQL語(yǔ)句是CREATE TABLE。 CREATE TABLE命令的語(yǔ)法如下: CREATE TABLE table_name (name_Of_attr_1 type_Of_attr_l ,nsme _of_attr_2 type_Of_attr_2 ,);,(1)創(chuàng)建表department。,SQLQuery.sql程序設(shè)計(jì)如下: CREATE TABLE department (deptNo char (10) NOT NULL PRIMARY KEY, deptName varchar(50) NOT NULL),(2)創(chuàng)建表product。,SQLQuery2.sql程序設(shè)計(jì)如下: CREATE TABLE product (productNo char(10) NOT NULL PRIMARY KEY, productName varchar(50) NOT NULL ),(3)創(chuàng)建表planning,SQLQuery3.sql程序設(shè)計(jì)如下: CREATE TABLE planning (deptNo char (10) NOT NULL constraint FK_plan_deptNo foreign key (deptNo) references department(deptNo), productNo char(10) NOT NULL constraint FK_plan_productNo foreign key (productNo) references product(productNo), planoutput numeric(10) NULL),(4)創(chuàng)建表Manager,SQLQuery4.sql程序設(shè)計(jì)如下: CREATE TABLE Manager (ManagerNo char(10) NOT NULL PRIMARY KEY, ManagerName varchar(50) NOT NULL, Sex char(2) NULL, Wage numeric(6) NULL),創(chuàng)建表Orderbill,SQLQuery5.sql程序設(shè)計(jì)如下: CREATE TABLE Orderbill (OrderbillNo char(10) NOT NULL PRIMARY KEY, managerNo char(10) NOT NULL constraint FK_Orderbill_managerNo foreign key (managerNo) references manager(managerNo), OrderDate Datetime NULL, OrderMoney numeric(10,2) NULL),3.2.2 向表中插入數(shù)據(jù),表創(chuàng)建完成后,可以用命令I(lǐng)NSERT INTO向表里填充記錄。 語(yǔ)法是: INSERT INTO table_name(name_Of_attr_1 ,name_Of_attr_2,) VALUES(val_attr_1,val_attr 2,);,1.INSERT語(yǔ)句,實(shí)例3.1 把表3.11中數(shù)據(jù)輸入數(shù)據(jù)庫(kù)Material_Data中Department 表中。,表3.11Department,INSERT INTO department (deptNo,deptName) VALUES (0001, 生產(chǎn)管理部) INSERT INTO department (deptNO,deptName) VALUES (0002, 銷售管理部),2使用SELECT子句插入數(shù)據(jù),語(yǔ)法形式: INSERT table_name SELECT column_list FROM table_list WHERE serach_conditions 注意: 參考表可以相同或不同; 要插入數(shù)據(jù)的表必須已存在; 要插入數(shù)據(jù)的表必須和SELECT子句結(jié)果集兼容;,建立department臨時(shí)表department1,并把department中數(shù)據(jù)輸入department1。程序設(shè)計(jì)如下: CREATE TABLE department1 (deptNo char (10) NOT NULL PRIMARY KEY, deptName varchar(50) NOT NULL) INSERT department1 SELECT deptNO, deptName FROM department,實(shí)例,3.2.3 使用UPDATE修改表中數(shù)據(jù),Update(更新數(shù)據(jù)) 命令 要修改記錄中的一個(gè)或者多個(gè)屬性的值,使用UPDATE命令。語(yǔ)法是; UPDATE table name SET name_Of_attr_1=value-1 ,name of_attr_k=value_k WHERE condition;,實(shí)例,把department表中“銷售部”改為“市場(chǎng)部”。程序設(shè)計(jì)如下: UPDATE department SET deptName=市場(chǎng)部 WHERE deptName=銷售管理部,刪除一條記錄,要從一個(gè)表中刪除一條記錄,使用DELETE FROM命令。語(yǔ)法是: DELETE FROM table_name WHERE condition 實(shí)例 刪除department表部門名為市場(chǎng)部的部門。 DELETE FROM department WHERE deptName=市場(chǎng)部,3.2.5使用Transact_SQL修改表結(jié)構(gòu),修改表結(jié)構(gòu)語(yǔ)句的基本語(yǔ)法格式為: ALTER TABLE table_name ALTER COLUMN column_name new_data_type (precision,scale) NULL|NOT NULL |ADD,n |DROPCONSTRAINT constraint_name |COLUMN column,n,實(shí)例,在表Product中增加一個(gè)新列Price(money類型,允許為空)。程序設(shè)計(jì)如下: USE Material_Data ALTER TABLE Product ADD Price money NULL GO,實(shí)例,在表Product中刪除列Price。程序設(shè)計(jì)如下: USE Material_Data ALTER TABLE Product DROP COLUMN Price GO,3.3 Index索引,索引: 一種物理結(jié)構(gòu),提供一種以一列或多列的值為基礎(chǔ)的迅速查找表中的行的機(jī)制 索引類型 聚簇索引:行的物理順序與索引順序一致 非聚簇索引:邏輯順序 唯一性索引:創(chuàng)建索引的列上不包括重復(fù)數(shù)據(jù) SQL Server對(duì)索引的限制 每表一個(gè)聚簇索引 每表多個(gè)非聚簇索(249),3.3.1可視化創(chuàng)建索引,1.選擇要?jiǎng)?chuàng)建索引的列,選擇“索引/鍵(I)”,圖3.62所示。,圖3.62選擇要?jiǎng)?chuàng)建索引的列,2.在彈出的“索引/鍵”對(duì)話框中,點(diǎn)擊“添加”按鈕,圖3.63所示。,3.在“標(biāo)識(shí)”欄下的“(名稱)”里修改新增索引的名稱為:IX_ProductName。圖3.64所示。,圖3.64 修改新增索引的名稱,4. 在“常規(guī)”欄下的“列”里選擇新增索引要綁定的列及排序方式(升序或降序),圖3.65 選擇新增索引要綁定的列及排序方式,圖3.66 選擇新增索引要綁定的列及排序方式,5.點(diǎn)擊“確定”完成排序,3.3.2使用Transact_SQL創(chuàng)建索引,CREATE UNIQUE CLUSTERED|NONCLUSTERED INDEX index_name ON table|view(columnASC|DESC,n) WITH,n ON filegroup := PAD_INDEX |FILLFACTOR=fillfactor |IGNORE_DUP_KEY |DROP_EXISTING |STATISTICS_NORECOMPUTE |SORT_IN_TEMPDB ,實(shí)例,為表Product的productNane字段建立升序索引: USE Material_Data IF EXISTS(SELECT NAME FROM sysindexes WHERE name=IX_ProductName) DROP INDEX Product.IX_ProductName GO USE Material_Data CREATE INDEX IX_ProductName ON Product(productName) GO,實(shí)例,為表Product的productNane、productNo兩字段建立索引: USE Material_Data IF EXISTS(SELECT NAME FROM sysindexes WHERE name=IX_PName_PNo) DROP INDEX Product.IX_PName_PNo GO USE Material_Data CREATE INDEX IX_PName_PNo ON Product(productName,productNo) GO,3.4 SQL Server 數(shù)據(jù)查詢與表現(xiàn),在SQL Server2005中方法有兩種查詢數(shù)據(jù)庫(kù)數(shù)據(jù)方法,使用SQL Server Manager和T-SQL創(chuàng)建查詢。SQL里面最常用的命令是select(查詢)語(yǔ)句,用于檢索數(shù)據(jù)。,3.4.1 檢索表中列技術(shù),1檢索全部列 檢索pub數(shù)據(jù)庫(kù)中jobs表中全部信息。 SELECT * FROM jobs 2重新對(duì)列排序 結(jié)果集中列的順序由SELECT關(guān)鍵字后面列名的順序確定。 SELECT job_desc, job_id FROM jobs,3.4.1 檢索表中列技術(shù),3使用文字串技術(shù) 可在SELECT關(guān)鍵字后面增加文字說(shuō)明。 SELECT job_desc, its id is , job_id FROM jobs 4改變列標(biāo)題技術(shù) 可在SELECT關(guān)鍵字后面,對(duì)每列表頭增加描述字說(shuō)明。 SELECT Descrbition= job_desc, Identify Number= job_id FROM jobs 將jobs表中的job_desc、job_id兩列表頭增加描述字說(shuō)明。這樣列表顯示的表頭將是Descrbition(對(duì)應(yīng)job_desc列)、Identify Number(對(duì)應(yīng)job_id列)。,3.4.2 操縱數(shù)據(jù)技術(shù),使用算術(shù)運(yùn)算符:+, -, *, /??梢杂迷诟鞣N數(shù)字列上。 對(duì)pub數(shù)據(jù)庫(kù)titles表中的price列進(jìn)行如下數(shù)據(jù)運(yùn)算:price+2、price 2、price * 2及price / 2。對(duì)應(yīng)這些運(yùn)算的SELECT語(yǔ)句如下: SELECT title, price, price+2 FROM titles SELECT title, price, price 2 FROM titles SELECT title, price, (price * 2) FROM titles SELECT title, price, (price / 2) FROM titles,3.4.3 選擇行技術(shù),語(yǔ)法格式: SELECT slect_list FROM table_list WHERE search_conditions 1比較技術(shù) search_conditions比較運(yùn)算符有: 等于 大于 小于 = 小于或者等于 不大于 ! 不小于 !,實(shí)例,查詢pubs數(shù)據(jù)庫(kù)employee 表中pub_id不等于0877,列名為pub_id, emp_id, fname的行。 Select pub_id, emp_id, fname From employee Where pub_id 0877 查詢pubs數(shù)據(jù)庫(kù)authors表中state等于 CA,列名為au_lname, city, state的行。 Select au_lname, city, state From authors Where state = CA,2范圍技術(shù),BETWEEN 指定搜索的范圍。 語(yǔ)法: test_expression NOT BETWEEN begin_expression AND end_expression 從pubs 數(shù)據(jù)庫(kù)titles表中檢索年銷售額在2000至2200之間的書籍。 Select title_id, ytd_sales From titles Where ytd_sales Between 2000 and 2200,3邏輯運(yùn)算技術(shù),AND|ORNOT指定搜索的邏輯運(yùn)算結(jié)果。 語(yǔ)法: SELECT select_list FROM table_list WHERE NOT expression AND|ORNOT expression,實(shí)例,從pubs 數(shù)據(jù)庫(kù)authors表中檢索au_lname=white 或 au_lname=green 或 state = CA的作者。 Select * From authors Where au_lname=white OR au_lname=green OR state = CA,4匯總數(shù)據(jù)技術(shù),1)合計(jì)函數(shù) AVG 數(shù)據(jù)表達(dá)式的平均值 COUNT 某個(gè)表達(dá)式中數(shù)據(jù)值的數(shù)量 COUNT(*) 所選擇行的數(shù)量 MAX 表達(dá)式中最大值 MIN 表達(dá)式中最小值 SUN 數(shù)據(jù)表式的總和,實(shí)例,從pubs 數(shù)據(jù)庫(kù)titles表中檢索price平均值。 Select avg(price) From titles 從pubs 數(shù)據(jù)庫(kù)titles表中檢索price種類數(shù),語(yǔ)句如下: Select count(price) From titles 從pubs 數(shù)據(jù)庫(kù)titles表中檢索記錄數(shù),語(yǔ)句如下: Select count(*) From titles,(2) GROUP BY子句,對(duì)查詢結(jié)果分組后,合計(jì)(聚集)函數(shù)將分別作用于每個(gè)組 按指定的一列或多列值分組,值相等的為一組,(2) GROUP BY子句,求各個(gè)課程號(hào)及相應(yīng)的選課人數(shù)。 SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno;,視圖及其應(yīng)用,視圖綜述 視圖的操作 視圖定義信息查詢 案例中的視圖應(yīng)用,一、視圖綜述,1.視圖的基本概念 視圖是一個(gè)虛擬表,從一個(gè)或多個(gè)表中導(dǎo)出(視圖也可以從視圖中導(dǎo)出),其內(nèi)容由查詢語(yǔ)句定義生成。從表面上看,視圖和真實(shí)表一樣,具有結(jié)構(gòu)和數(shù)據(jù),包含一系列帶有名稱的列和行數(shù)據(jù)。實(shí)質(zhì)上,表是視圖的基礎(chǔ),數(shù)據(jù)庫(kù)中只存儲(chǔ)了視圖定義,而不存放視圖所對(duì)應(yīng)的數(shù)據(jù),視圖所對(duì)應(yīng)的數(shù)據(jù)仍存放在視圖所引用的基表中。,一、視圖綜述,2. 視圖的作用 1) 視圖可以集中數(shù)據(jù),滿足不同用戶對(duì)數(shù)據(jù)的不同要求。 2) 視圖可以簡(jiǎn)化復(fù)雜查詢的結(jié)構(gòu),從而方便用戶對(duì)數(shù)據(jù)的操作。 3) 視圖能夠?qū)?shù)據(jù)提供安全保護(hù)。 4) 便于組織數(shù)據(jù)導(dǎo)出。,二、視圖的操作,創(chuàng)建視圖 修改視圖 使用視圖 刪除視圖,創(chuàng)建視圖時(shí)應(yīng)該注意以下:,創(chuàng)建者必須擁有創(chuàng)建視圖的權(quán)限,對(duì)視圖中引用的基表或視圖有許可權(quán)。 只能在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建視圖,如果使用分布式查詢,視圖所引用的基表和視圖可以存在于其它數(shù)據(jù)庫(kù)或它服務(wù)器中。 在一個(gè)視圖中最多引用1024列,視圖中記錄的行數(shù)限制由基表中記錄數(shù)目決定。 視圖的名稱必須遵循標(biāo)識(shí)符的定義規(guī)則,對(duì)于每個(gè)用戶來(lái)說(shuō)也必須唯一,而且視圖名稱不允許與該用戶擁有的表重名。,視圖中列的名稱一般繼承其基表中列的名稱,如果視 圖中某一列是算術(shù)表達(dá)式、函數(shù)、常量或者來(lái)自多個(gè)表的列名相同,必須要為視圖中的列定義名稱。 可以將視圖創(chuàng)建在其它視圖上,SQL Server 2000中 允許32層的視圖嵌套。 不能將規(guī)則、默認(rèn)綁定在視圖上。 不能在臨時(shí)表上創(chuàng)建視圖,也不能創(chuàng)建臨時(shí)視圖。,創(chuàng)建視圖時(shí)應(yīng)該注意以下:,創(chuàng)建視圖,1.使用企業(yè)管理器創(chuàng)建視圖 2.使用CREATE VIEW語(yǔ)句創(chuàng)建視圖,例:創(chuàng)建一個(gè)包括學(xué)生學(xué)號(hào)、姓名及所選課程的課程名以及成績(jī)的視圖(視圖名:成績(jī)單)。,1.使用企業(yè)管理器創(chuàng)建視圖,創(chuàng)建過(guò)程中的圖解:,屬性,圖 視圖設(shè)計(jì)器,1.使用企業(yè)管理器創(chuàng)建視圖,創(chuàng)建步驟如下: 1)在企業(yè)管理器,打開“視圖設(shè)計(jì)器”。 2)單擊工具欄上的“添加表”按鈕,將表添加到視圖設(shè)計(jì)器中。 3)根據(jù)新建視圖的需要,從表中選擇視圖引用的列。 4)在網(wǎng)格窗格中的“準(zhǔn)則”欄中設(shè)置過(guò)濾記錄的條件。 5)設(shè)置視圖的其它屬性。 6)在視圖設(shè)計(jì)器窗口中,檢查SQL語(yǔ)法。 7)最后,單擊“保存”按鈕,為視圖指定名稱。關(guān)閉“視圖設(shè)計(jì)器”。,圖 “添加表”對(duì)話框,1.使用企業(yè)管理器創(chuàng)建視圖,圖 選擇表列,2.使用CREATE VIEW語(yǔ)句創(chuàng)建視圖,語(yǔ)法格式如下: CREATE VIEW . . view_name ( column ,.n ) AS select_statement WITH CHECK OPTION ,2.使用CREATE VIEW語(yǔ)句創(chuàng)建視圖,例:以學(xué)生表(S表)為基礎(chǔ)建立一個(gè)視圖,其名稱為“學(xué)生名單”,其包含列為學(xué)生表中的學(xué)號(hào)和姓名。 程序清單如下:,CREATE VIEW 學(xué)生名單 AS SELECT SNO,SNAME FROM S,從單個(gè)表派生的視圖:,2.使用CREATE VIEW語(yǔ)句創(chuàng)建視圖,例:以選課表(S_C表)為基礎(chǔ)建立一個(gè)視圖,其名稱為“數(shù)據(jù)庫(kù)成績(jī)”,其包含列為選課表中的所有列,篩選記錄條件為“課程編號(hào) = 001”。 程序清單如下: WITH CHECK OPTION ,CREATE VIEW 數(shù)據(jù)庫(kù)成績(jī) AS SELECT * FROM S_C WHERE CNO = 001,2.使用CREATE VIEW語(yǔ)句創(chuàng)建視圖,例:給出有北京倉(cāng)庫(kù)訂購(gòu)單的北京供應(yīng)商的名稱。 WITH CHECK OPTION ,從多個(gè)表派生的視圖:,CREATE VIEW BJ_訂購(gòu)單 AS,SELECT 供應(yīng)商名 FROM 供應(yīng)商 WHERE 地址=北京 AND 供應(yīng)商號(hào) IN (SELECT 供應(yīng)商號(hào) FROM 訂購(gòu)單 WHERE 職工號(hào) IN (SELECT 職工號(hào) FROM 職工 WHERE 倉(cāng)庫(kù)號(hào) IN (SELECT 倉(cāng)庫(kù)號(hào) FROM 倉(cāng)庫(kù) WHERE 城市=北京) ) ),例:列出每個(gè)職工經(jīng)手的具有最高總金額的訂購(gòu)單信息。,訂購(gòu)單1,2.使用CREATE VIEW語(yǔ)句創(chuàng)建視圖,2.使用CREATE VIEW語(yǔ)句創(chuàng)建視圖,CREATE VIEW V_MAX AS SELECT 職工號(hào),MAX(總金額) AS 最大總金額 FROM 訂購(gòu)單1 GROUP BY 職工號(hào),SELECT 訂購(gòu)單1.職工號(hào),訂購(gòu)單號(hào),供應(yīng)商號(hào),訂購(gòu)日期,總金額 FROM 訂購(gòu)單1,V_MAX WHERE 訂購(gòu)單1.職工號(hào)=V_MAX.職工號(hào) AND 訂購(gòu)單1.總金額=V_MAX.最大總金額,視圖中的虛列:,或:CREATE VIEW V_SAL1 AS SELECT 職工號(hào),工資 as 月工資,工資*12 as 年工資 FROM 職工,2.使用CREATE VIEW語(yǔ)句創(chuàng)建視圖,CREATE VIEW V_SAL(職工號(hào),月工資,年工資) AS SELECT 職工號(hào),工資,工資*12 FROM 職工,例:定義一個(gè)視圖,包含職工號(hào)、月工資、年工資。,修改視圖,1.使用企業(yè)管理器 2.使用ALTER VIEW語(yǔ)句 其語(yǔ)法格式如下: ALTER VIEW view_name ( column ,.n ) AS select_statement,ALTER VIEW 學(xué)生名單 AS SELECT SNAME FROM S,修改視圖,例:將視圖“學(xué)生名單”修改為只包含列為學(xué)生表中的姓名。 程序清單如下: WITH CHECK OPTION ,使用視圖,1.通過(guò)視圖查詢數(shù)據(jù)信息 例: 查詢“數(shù)據(jù)庫(kù)成績(jī)”視圖中全部的記錄。,SELECT * FROM 數(shù)據(jù)庫(kù)成績(jī),使用視圖,2.通過(guò)視圖修改數(shù)據(jù) 在使用視圖修改數(shù)據(jù)時(shí),要注意下列一些事項(xiàng):,不能在一個(gè)語(yǔ)句中對(duì)多個(gè)基表使用數(shù)據(jù)修改語(yǔ)句。如果要修改由兩個(gè)或兩個(gè)以上基表得到的視圖,必須進(jìn)行多次修改,每次修改只能影響一個(gè)基表。 對(duì)于基表中需更新而又不允許空值的所有列,它們的值在 INSERT 語(yǔ)句或 DEFAULT 定義中指定。這將確保基表中所有需要值的列都可以獲取值。,不能修改那些通過(guò)計(jì)算得到結(jié)果的列。 在視圖定義中使用了 WITH CHECK OPTION 子句,則所有在視圖上執(zhí)行的數(shù)據(jù)修改語(yǔ)句都必須符合定義視圖的 SELECT 語(yǔ)句中所設(shè)定的條件。 在基表的列中修改的數(shù)據(jù)必須符合對(duì)這些列的約束條件,如是否為空、約束、DEFAULT 定義等。,使用視圖,使用視圖,例:向“數(shù)據(jù)庫(kù)成績(jī)”視圖中插入一條新的選課記錄。 學(xué)號(hào)為0008, 課程號(hào)為001,成績(jī)?yōu)?0 。,INSERT INTO 數(shù)據(jù)庫(kù)成績(jī) VALUES(0008, 001,90) GO,使用視圖,例:將“數(shù)據(jù)庫(kù)成績(jī)”視圖中學(xué)生0003的成績(jī)提高10%。,UPDATE 數(shù)據(jù)庫(kù)成績(jī) SET SCORE=SCORE*1.1 WHERE SNO=0003,INSERT INTO 學(xué)生名單 VALUES (0011,孟歡),使用視圖,例:向?qū)W生名單視圖中插入一條新
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水產(chǎn)養(yǎng)殖常用藥物安全講解
- 新概念英語(yǔ)第二冊(cè)重點(diǎn)句型
- 高中化學(xué)教師教學(xué)反思報(bào)告
- 辦公自動(dòng)化系統(tǒng)使用培訓(xùn)教程及指南
- 廠房租賃合同條款詳解與案例
- 幼兒教師資格環(huán)保創(chuàng)設(shè)試題集
- 可視化地圖技術(shù)支持服務(wù)合同
- 配送時(shí)效考核合同協(xié)議
- 辦公樓綜合布線施工方案詳解
- 配送協(xié)議與知識(shí)產(chǎn)權(quán)
- 2024-2025學(xué)年貴州省六盤水市高一(上)期末英語(yǔ)試卷
- 煉焦機(jī)械與設(shè)備試題題庫(kù)(300) 與答案
- 實(shí)施指南(2025)《DL-T 1034-2016 135MW級(jí)循環(huán)流化床鍋爐運(yùn)行導(dǎo)則》
- 員工培訓(xùn)法律法規(guī)知識(shí)課件
- 2025年全國(guó)《征兵入伍》應(yīng)知應(yīng)會(huì)知識(shí)試題與答案
- 2025AICon全球人工智能開發(fā)與應(yīng)用大會(huì)-深圳站:具身智能技術(shù)在工程機(jī)械智能化中的應(yīng)用實(shí)踐
- 文旅景區(qū)2025年運(yùn)營(yíng)風(fēng)險(xiǎn)評(píng)估與安全風(fēng)險(xiǎn)防控方案分析
- 蜂蟄傷護(hù)理試題及答案
- 2025年陜西省專業(yè)技術(shù)人員繼續(xù)教育公需課試題及答案
- 腎內(nèi)科科室簡(jiǎn)介
- 消防清包工勞務(wù)合同范本
評(píng)論
0/150
提交評(píng)論