版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第七章 數(shù)據(jù)查詢與更新1本章內(nèi)容7.1 數(shù)據(jù)查詢7.2 數(shù)據(jù)更新 27.1 數(shù)據(jù)查詢查詢是對存儲在SQL Server 2005中的數(shù)據(jù)的一種請求。Transact-SQL命令中的SELECT命令可以實(shí)現(xiàn)從SQL Server中檢索出數(shù)據(jù),然后以一個(gè)或多個(gè)結(jié)果集的形式返回給用戶。與數(shù)據(jù)表相同,結(jié)果集由行和列組成。SELECT語句的基本框架是SELECT-FROM-WHERE,它包含輸出字段、數(shù)據(jù)來源和查詢條件等基本子句。在這種固定格式中,可以不要WHERE,但是SELECT和FROM是必備的。SELECT語句的子句很多,理解了這條語句各項(xiàng)的含義,就能從數(shù)據(jù)庫中查詢出各種數(shù)據(jù)。 37.1 數(shù)據(jù)查
2、詢Transact-SQL查詢語句 語法格式:SELECT select_list INTO new_table_name FROM table_list WHERE search_conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list ASC | DESC 47.1 數(shù)據(jù)查詢select_list:所要查詢的選項(xiàng)的集合,多個(gè)選項(xiàng)之間用逗號分開。 INTO new_table_name:創(chuàng)建一個(gè)新表并將結(jié)果集寫入新表new_table_name中。 table_list:要檢索的數(shù)據(jù)表。 se
3、arch_conditions:定義檢索條件,只有符合條件的行才向結(jié)果集提供數(shù)據(jù)。 57.1 數(shù)據(jù)查詢group_by_list:GROUP BY子句根據(jù)group_by_list列中的值將結(jié)果集分成組。 search_conditions:HAVING子句通常與GROUP BY子句一起使用,search_conditions是應(yīng)用于結(jié)果集的附加篩選條件。 order_list ASC | DESC :定義了結(jié)果集中行的排序順序 ,關(guān)鍵字ASC和DESC用于指定排序行的排列順序是升序還是降序,若缺省,則默認(rèn)為升序。 67.1 數(shù)據(jù)查詢注:在SELECT命令中對數(shù)據(jù)庫對象的每個(gè)引用都不得引起歧義
4、。下列情況可能導(dǎo)致多義性。在一個(gè)系統(tǒng)中可能有多個(gè)對象具有相同的名稱??梢允褂眉軜?gòu)名稱來限定表名稱,解決多義性問題。例如,Schema1和Schema2都含有一個(gè)名為TableX的表,可以使用一下語句區(qū)分:SELECT *FROM Schema1.TableX77.1 數(shù)據(jù)查詢在執(zhí)行SELECT語句時(shí),對象所駐留的數(shù)據(jù)庫不一定總是當(dāng)前數(shù)據(jù)庫 ,在不考慮當(dāng)前數(shù)據(jù)庫設(shè)置的情況下要確保使用的對象始終是正確的,則應(yīng)以數(shù)據(jù)庫和架構(gòu)來限定對象名稱,如:SELECT *FROM AdventureWorks.Purchasing.ShipMethod 87.1 數(shù)據(jù)查詢在FROM子句中所指定的表和視圖可能有相
5、同的列名。若要解決重復(fù)名稱之間的多義性問題,必須使用表或視圖名稱來限定列名。如: SELECT DISTINCT Sales.Customer.CustomerID, Sales.Store.NameFROM Sales.Customer JOIN Sales.Store ON( Sales.Customer.CustomerID = Sales.Store.CustomerID)WHERE Sales.Customer.TerritoryID = 1當(dāng)表和視圖名稱都必須完全限定時(shí),語法將變得復(fù)雜??梢栽贔ROM子句中使用AS關(guān)鍵字為表指定一個(gè)相關(guān)名稱(也稱為作用域變量或別名)來解決此問題。9
6、7.1 數(shù)據(jù)查詢 SELECT子句SELECT select_list INTO new_table_name 選擇列表用于定義SELECT語句的結(jié)果集中的列,結(jié)果集中列的排列順序與選擇列表中表達(dá)式的排列順序相同。選擇列表中的表達(dá)式?jīng)Q定了結(jié)果集列的特性。 結(jié)果集列與定義該列的表達(dá)式的數(shù)據(jù)類型、大小、精度以及小數(shù)位數(shù)相同。 結(jié)果集列的名稱與定義該列的表達(dá)式的名稱相關(guān)聯(lián)??蛇x的AS關(guān)鍵字可用于更改名稱,或者在表達(dá)式?jīng)]有名稱時(shí)為其分配名稱。107.1 數(shù)據(jù)查詢 結(jié)果集列的數(shù)據(jù)值通過對結(jié)果集的每一行相應(yīng)的表達(dá)式求值而得出。 選擇列表中的項(xiàng)目可包括:簡單表達(dá)式:對函數(shù)、局部變量、常量或者表或視圖中的列的
7、引用。 標(biāo)量子查詢,它是用于對結(jié)果集每一行求得單個(gè)值的SELECT語句。 通過對一個(gè)或多個(gè)簡單表達(dá)式使用運(yùn)算符創(chuàng)建的復(fù)雜表達(dá)式。 * 關(guān)鍵字,可指定返回表中的所有列。 117.1 數(shù)據(jù)查詢(1)選擇所有列星號“*”用于對FROM子句中指定的所有表或視圖中的所有列的引用。此時(shí)結(jié)果集中的列的順序與CREATE TABLE、ALTER TABLE或CREATE VIEW語句中所指定的順序相同。 (2)選擇特定列若要選擇表中的特定列,應(yīng)在SELECT子句的選擇列表中明確地列出每一列。(3)指定結(jié)果集列的名稱對列的指定還可以使用別名或其他表達(dá)式 ,AS子句可用來為結(jié)果集列分配不同的名稱或別名。 127.
8、1 數(shù)據(jù)查詢使用AS子句可以提高可讀性,其中AS子句的語法:column_name AS column_alias 或result_column_expression AS derived_column_name例如:指定課程名列顯示的別名USE teachingGOSELECT CNAME AS Course nameFROM courseGO執(zhí)行結(jié)果如圖7.4所示137.1 數(shù)據(jù)查詢(4) 使用DISTINCT消除重復(fù)項(xiàng)DISTINCT關(guān)鍵字可從SELECT命令的結(jié)果中消除重復(fù)的行。如果沒有指定DISTINCT,將返回包括重復(fù)行的所有行。注意:對于DISTINCT關(guān)鍵字來說,空值將被認(rèn)為是
9、相互重復(fù)的內(nèi)容。 (5)使用TOP和PERCENT限制結(jié)果集 使用TOP子句限制結(jié)果集中返回的行數(shù),格式如下 :TOP ( expression ) PERCENT WITH TIES expression:指定返回行數(shù)的數(shù)值表達(dá)式,如果指定了PERCENT,則返回的是結(jié)果集行的百分比(由expression指定)。如:TOP(15)PERCENT 表示返回結(jié)果集中前15%的結(jié)果行147.1 數(shù)據(jù)查詢例如:從course表中返回2門學(xué)分最多的課程。USE teachingGOSELECT TOP 2 CNO, CNAME, CREDITFROM courseORDER BY CREDIT DE
10、SCGO執(zhí)行結(jié)果如圖7.7所示。如果指定了WITH TIES,將返回包含ORDER BY子句返回的最后一個(gè)值的所有行,即便超過expression指定的數(shù)量 。157.1 數(shù)據(jù)查詢(6)選擇列表中的計(jì)算值 在SELECT子句的選擇列表中可包含一個(gè)或多個(gè)使用運(yùn)算符生成的表達(dá)式。這使結(jié)果集中得以包含基表中不存在但可以根據(jù)基表中存儲的值計(jì)算得到的值。這些結(jié)果集列被稱為派生列。在SELECT子句中可以使用算術(shù)運(yùn)算符或函數(shù)進(jìn)行運(yùn)算。算術(shù)運(yùn)算符允許對int、smallint、tinyint、decimal、numeric、float、real、money或smallmoney數(shù)值列或表達(dá)式中使用加(+)、
11、減(-)、乘(*)、除(/)以及int、smallint或tinyint列或表達(dá)式中使用模(%)運(yùn)算。 167.1 數(shù)據(jù)查詢在SELECT子句中還可以使用聚合函數(shù)。 聚合函數(shù)對一組值執(zhí)行計(jì)算并返回單個(gè)值 。注:除了COUNT以外,聚合函數(shù)都會(huì)忽略空值; 聚合函數(shù)只在SELECT子句的選擇列表(子查詢或外部查詢)、COMPUTE或COMPUTE BY子句、HAVING子句 這些位置作為表達(dá)式使用。聚合函數(shù)包括AVG平均函數(shù)、SUM求和函數(shù)、COUNT求個(gè)數(shù)函數(shù)、MIN最小函數(shù)、MAX最大函數(shù)、 177.1 數(shù)據(jù)查詢 FROM子句格式:FROM table_list在一個(gè)要從表或視圖中檢索數(shù)據(jù)的S
12、ELCET語句,都需要使用FROM子句。 使用 FROM子句可以指明如下信息:列出SELECT子句中的選擇列表和WHERE子句中所引用的列所在的一個(gè)或多個(gè)表和視圖??梢允褂肁S子句為表和視圖的名稱指定別名。兩個(gè)或多個(gè)表或視圖之間的聯(lián)接類型。這些類型由ON子句中指定的聯(lián)接條件限定。FROM子句使用逗號分隔表名、視圖名和JOIN子句的列表。187.1 數(shù)據(jù)查詢WHERE子句和HAVING子句 格式: WHERE search_conditions HAVING search_conditions WHERE和HAVING是篩選器。這兩個(gè)子句指定一系列搜索條件,只有那些滿足搜索條件的行才用于生成結(jié)果
13、集。HAVING子句通常與GROUP BY子句一起使用以篩選聚合值結(jié)果 。WHERE搜索條件在進(jìn)行分組操作之前應(yīng)用,HAVING搜索條件在進(jìn)行分組操作之后應(yīng)用 。HAVING語法與WHERE語法類似,但HAVING可以包含聚合函數(shù) 197.1 數(shù)據(jù)查詢WHERE和HAVING子句中的搜索條件或限定條件可包括如下條件 :(1)比較搜索條件Microsoft SQL Server 2005使用表7.1中的=、=、=、!、!=80GO執(zhí)行結(jié)果如圖7.17所示 。217.1 數(shù)據(jù)查詢注:表示所有記錄可用ALL關(guān)鍵字(=ALL、ALL、 ALL (SELECT s2.GRADE FROM s_c s2
14、WHERE s2.CNO = C2)GO執(zhí)行結(jié)果如圖7.19所示 227.1 數(shù)據(jù)查詢(2)范圍搜索條件 BETWEEN關(guān)鍵字指定要檢索的包括范圍 . NOT BETWEEN查找指定范圍之外的所有行 .例如:查詢年齡不在2022之間的學(xué)生 。USE teachingGOSELECT SNO, SNAMEFROM studentWHERE AGE NOT BETWEEN 20 AND 22ORDER BY SNOGO 執(zhí)行結(jié)果如圖7.21所示。237.1 數(shù)據(jù)查詢(3)列表搜索條件 IN 關(guān)鍵字可以選擇與列表中的任意值匹配的行 ,IN關(guān)鍵字之后的各項(xiàng)必須用逗號隔開,并且括在括號中。 例如:檢索s
15、tudent表中姓名為WANG或LIU的學(xué)生 。USE teachingGOSELECT SNO, SNAMEFROM studentWHERE SNAME IN (WANG, LIU)ORDER BY SNOGO 執(zhí)行結(jié)果如圖7.22所示。247.1 數(shù)據(jù)查詢(4)搜索條件中的模式匹配 LIKE關(guān)鍵字搜索與指定模式匹配的字符串、日期或時(shí)間值 ,字符串中可包含如表7.2所示的%、_、 、四種通配符的任意組合。注意:不與LIKE一同使用的通配符將解釋為常量而非模式,換言之,這些通配符僅代表其本身的值 。有兩種方法可指定平常用作通配符的字符:使用ESCAPE關(guān)鍵字定義轉(zhuǎn)義符。在模式中,當(dāng)轉(zhuǎn)義符置于
16、通配符之前時(shí),該通配符就解釋為普通字符。在方括號 ( )中只包含通配符本身。若要搜索破折號(-)而不是用它指定搜索范圍,可以將破折號指定為方括號內(nèi)的第一個(gè)字符。 257.1 數(shù)據(jù)查詢(5) NULL比較搜索條件 NULL值表示列的數(shù)據(jù)值未知或不可用 。當(dāng)搜索的列中包括定義為允許空值的列時(shí),可以通過以下模式查找數(shù)據(jù)庫中的空值或非空值。WHERE column_name IS NOT NULL注意:NULL值與零(數(shù)值或二進(jìn)制值)、零長度的字符串或空白(字符值)的含義不同;指定= NULL與指定IS NULL是不同的 。267.1 數(shù)據(jù)查詢(6)邏輯運(yùn)算符邏輯運(yùn)算符包括AND、OR和NOT。AND
17、和OR用于連接WHERE子句中的搜索條件。NOT用于反轉(zhuǎn)搜索條件的結(jié)果 。 AND連接兩個(gè)條件,只有當(dāng)兩個(gè)條件都符合時(shí)才返回TRUE。 OR也用于連接兩個(gè)條件,但只要有一個(gè)條件符合便返回TRUE。 可以通過添加括號強(qiáng)制先計(jì)算OR來改變查詢的含義 注意:當(dāng)一個(gè)語句中使用了多個(gè)邏輯運(yùn)算符時(shí),計(jì)算順序依次為NOT、AND和OR。算術(shù)運(yùn)算符和位運(yùn)算符優(yōu)先于邏輯運(yùn)算符。277.1 數(shù)據(jù)查詢 GROUP BY子句 格式: GROUP BY group_by_list GROUP BY子句用來為結(jié)果集中的每一行產(chǎn)生聚合值 ??梢栽诎珿ROUP BY子句的查詢中使用WHERE子句。在完成任何分組之前,將消除
18、不符合WHERE子句中的條件的行 。287.1 數(shù)據(jù)查詢注意:WHERE 子句用來篩選 FROM 子句中指定操作所產(chǎn)生的行。 GROUP BY 子句用來分組WHERE子句的輸出。 HAVING 子句用來從分組的結(jié)果中篩選行。 ORDER BY子句可用于排序GROUP BY子句的輸出 。297.1 數(shù)據(jù)查詢 ORDER BY子句格式: ORDER BY order_by_expression COLLATE collation_name ASC | DESC ,.n 指定在SELECT語句返回的列中所使用的排序順序。 307.1 數(shù)據(jù)查詢 order_by_expression :指定要排序的列
19、 。可以將排序列指定為一個(gè)名稱或列別名,也可以指定一個(gè)表示該名稱或別名在SELECT子句的選擇列表中所處位置的非負(fù)整數(shù)的順序號。列名和別名可由表名或視圖名加以限定 。 COLLATE collation_name:指定根據(jù)collation_name中指定的排序規(guī)則,而不是表或視圖中所定義的列的排序規(guī)則。 ASC:指定按升序。DESC:指定按降序 。 317.1 數(shù)據(jù)查詢注意:列名已在SELECT子句的選擇列表中有了別名,則ORDER BY子句中只能使用別名 。表名已在FROM子句中有了別名,則ORDER BY子句中只能使用別名來限定它們的列。 ORDER BY子句中指定了多個(gè)列,則排序是嵌套
20、的 。 ORDER BY子句的準(zhǔn)確結(jié)果取決于被排序的列的排序規(guī)則。可以指定Windows排序規(guī)則名稱或SQL排序規(guī)則名稱。 無法對數(shù)據(jù)類型為text、ntext、image或xml的列使用ORDER BY 。在ORDER BY列表中不允許使用子查詢、聚合和常量表達(dá)式。 327.1 數(shù)據(jù)查詢聯(lián)接查詢 聯(lián)接查詢通過聯(lián)接條件指明了兩個(gè)或多個(gè)表之間的邏輯關(guān)系來檢索數(shù)據(jù),指明了應(yīng)如何使用一個(gè)表中的數(shù)據(jù)來選擇另一個(gè)表中的行 。聯(lián)接條件可通過以下方式定義兩個(gè)表在查詢中的關(guān)聯(lián)方式: 指定每個(gè)表中要用于聯(lián)接的列(例如外鍵)。指定用于比較各列的值的邏輯運(yùn)算符(例如 = 或 ) 。337.1 數(shù)據(jù)查詢聯(lián)接可分為以下
21、幾類:內(nèi)部聯(lián)接 包括同等聯(lián)接和自然聯(lián)接,使用比較運(yùn)算符(=)根據(jù)每個(gè)表的通用列中的值匹配兩個(gè)表中的行。 外部聯(lián)接 左向外部聯(lián)接 (LEFT JOIN 或 LEFT OUTER JOIN )不管第二個(gè)表中是否有匹配的數(shù)據(jù),結(jié)果中都將包括第一個(gè)表中的所有行;右向外部聯(lián)接 (RIGHT JOIN 或 RIGHT OUTER JOIN)不管第一個(gè)表中是否有匹配的數(shù)據(jù),結(jié)果中都將包括第二個(gè)表中的所有行。;完整外部聯(lián)接 (FULL JOIN或 FULL OUTER JOIN)將包括兩個(gè)表中的所有行,不論另一個(gè)表中是否有匹配的值。交叉聯(lián)接左表中的每一行均與右表中的所有行組合。交叉聯(lián)接也稱作笛卡爾積。第一個(gè)表
22、的行數(shù)乘以第二個(gè)表的行數(shù)等于笛卡爾積結(jié)果集的大小。347.1 數(shù)據(jù)查詢子查詢 子查詢是一個(gè)嵌套在SELECT、INSERT、UPDATE或DELETE語句或其他子查詢中的查詢。 子查詢也稱為內(nèi)部查詢或內(nèi)部選擇,而包含子查詢的語句也稱為外部查詢或外部選擇。注意:許多包含子查詢的Transact-SQL語句都可以改用聯(lián)接表示 ,其他問題只能通過子查詢提出。 聯(lián)接總是可以表示為子查詢 。357.1 數(shù)據(jù)查詢(1)子查詢規(guī)則通過比較運(yùn)算符引入的子查詢的選擇列表只能包括一個(gè)表達(dá)式或列名稱(對SELECT * 執(zhí)行的EXISTS或?qū)α斜韴?zhí)行的IN子查詢除外)。如果外部查詢的WHERE子句包括列名稱,它必須
23、與子查詢選擇列表中的列是聯(lián)接兼容的。ntext、text和image數(shù)據(jù)類型不能用在子查詢的選擇列表中。由于必須返回單個(gè)值,所以由未修改的比較運(yùn)算符(即后面未跟關(guān)鍵字ANY或ALL的運(yùn)算符)引入的子查詢不能包含GROUP BY和HAVING子句。包含GROUP BY的子查詢不能使用DISTINCT關(guān)鍵字。不能指定COMPUTE和INTO子句。只有指定了TOP時(shí)才能指定ORDER BY。不能更新使用子查詢創(chuàng)建的視圖。367.1 數(shù)據(jù)查詢(2)在子查詢中限定列名 一般的規(guī)則是,語句中的列名通過同級FROM子句中引用的表來隱性限定。如果子查詢的FROM子句中引用的表中不存在列,則它是由外部查詢的FR
24、OM子句中引用的表隱性限定的。如果子查詢的FROM子句中引用的表中不存在子查詢中引用的列,而外部查詢的FROM子句引用的表中存在該列 。377.1 數(shù)據(jù)查詢例如:USE teachingGOSELECT student.SNAMEFROM studentWHERE student.SNO IN (SELECT s_c.SNO FROM s_c WHERE s_c.CNO = C2 )GO387.1 數(shù)據(jù)查詢(3)子查詢類型 使用別名的子查詢子查詢和外部查詢引用同一表的SELECT語句可稱為自聯(lián)接(將某個(gè)表與自身聯(lián)接) ,由于自聯(lián)接的表會(huì)以兩種不同的角色出現(xiàn),因此必須有表別名 。使用IN和NOT
25、 IN的子查詢 通過IN或 NOT IN引入的子查詢結(jié)果是包含零個(gè)值或多個(gè)值的列表。子查詢返回結(jié)果之后,外部查詢將利用這些結(jié)果。397.1 數(shù)據(jù)查詢例如:下面的查詢查找學(xué)生S3所選所有課程的名稱 。USE teachingGOSELECT CNAMEFROM courseWHERE CNO IN (SELECT CNO FROM s_c WHERE SNO = S3)GO執(zhí)行結(jié)果如圖7.46所示 。407.1 數(shù)據(jù)查詢使用比較運(yùn)算符的子查詢 子查詢可以由一個(gè)比較運(yùn)算符=、 =、! 或 (SELECT AVG(AGE) FROM student)執(zhí)行結(jié)果如圖7.50所示 。 417.1 數(shù)據(jù)查詢
26、(4)用ANY、SOME或ALL修改的比較運(yùn)算符 可以用ALL或ANY關(guān)鍵字修改引入子查詢的比較運(yùn)算符 。若要使帶有ALL的子查詢中的行滿足外部查詢中指定的條件,引入子查詢的列中的值必須大于子查詢返回的值列表中的每個(gè)值。同樣,ANY表示要使某一行滿足外部查詢中指定的條件,引入子查詢的列中的值必須至少大于子查詢返回的值列表中的一個(gè)值。=ANY運(yùn)算符與IN等效,ANY運(yùn)算符則不同于NOT IN ,ALL與NOT IN表示的意思相同 。427.1 數(shù)據(jù)查詢(5)使用EXISTS和NOT EXISTS的子查詢使用EXISTS關(guān)鍵字引入一個(gè)子查詢時(shí),相當(dāng)于進(jìn)行一次存在測試。外部查詢的WHERE子句測試子
27、查詢返回的行是否存在。子查詢實(shí)際上不產(chǎn)生任何數(shù)據(jù),它只返回TRUE或FALSE值 。使用EXISTS引入的子查詢的語法格式如下。WHERE NOT EXISTS (subquery)注意: EXISTS關(guān)鍵字前面沒有列名、常量或其他表達(dá)式 。由EXISTS引入的子查詢的選擇列表通常幾乎都是由星號(*)組成 。437.1 數(shù)據(jù)查詢例如:查詢選修C2課程的所有學(xué)生的姓名 USE teachingGOSELECT SNAMEFROM studentWHERE EXISTS (SELECT * FROM s_c WHERE SNO = Student.SNO AND CNO = C2)GO執(zhí)行結(jié)果如圖
28、7.54所示 447.2 數(shù)據(jù)更新若對數(shù)據(jù)進(jìn)行更新需要對目標(biāo)表有相應(yīng)的INSERT權(quán)限、UPDATE權(quán)限和DELETE權(quán)限 。默認(rèn)情況下,INSERT、UPDATE和DELETE權(quán)限被授予sysadmin固定服務(wù)器角色成員、db_owner和db_datawriter固定數(shù)據(jù)庫角色成員以及表的所有者。sysadmin、db_owner和db_securityadmin角色成員和表所有者可以將權(quán)限傳遞給其他用戶。457.2 數(shù)據(jù)更新注意:如果UPDATE語句包含WHERE子句,或SET子句中的expression使用了表中的某個(gè)列,則還要求更新的表具有SELECT權(quán)限 。如果DELETE語句包含
29、WHERE子句,則還必須有SELECT權(quán)限。467.2 數(shù)據(jù)更新 INSERT插入數(shù)據(jù)(1)使用INSERT命令插入數(shù)據(jù) INSERT命令的語法格式如下 :INSERT INTO table_or_view (column_list) VALUES data_valuescolumn_list是用逗號分隔的一些列名稱,可用來指定接收數(shù)據(jù)的列,未列出的所有列中插入默認(rèn)值(如果為列定義了默認(rèn)值)或NULL值 。如果未指定column_list,表或視圖中的所有列都將接收到數(shù)據(jù)。 VALUES data_values子句用于指定插入的一行數(shù)據(jù)值,所提供的數(shù)據(jù)值必須與列表中的列匹配 。477.2 數(shù)據(jù)
30、更新注意:插入的數(shù)據(jù)值的數(shù)目必須與列數(shù)相同,每個(gè)數(shù)據(jù)值的數(shù)據(jù)類型、精度和小數(shù)位數(shù)也必須與相應(yīng)的列的這些屬性匹配。 如果沒有指定column_list,VALUES指定值的順序必須與表或視圖中的列順序一致 487.2 數(shù)據(jù)更新例如:向數(shù)據(jù)表student中插入一新學(xué)生的信息 USE teachingGO INSERT INTO student (SNO, SNAME, SEX, AGE)VALUES (S7, WU, F, 22)GOSELECT * FROM studentGO執(zhí)行結(jié)果如圖7.58所示。497.2 數(shù)據(jù)更新(2)將查詢結(jié)果插入數(shù)據(jù)表 用SELECT子查詢?yōu)橐恍谢蚨嘈兄付〝?shù)據(jù)值。
31、例如:將所有女學(xué)生的學(xué)號、姓名放入新表F_student中 USE teaching GO CREATE TABLE F_student (SNO char (4) PRIMARY KEY, SNAME char (10) not NULL) GOINSERT INTO F_student (SNO, SNAME) SELECT SNO, SNAME FROM student WHERE SEX= FGOSELECT * FROM F_studentGO 執(zhí)行結(jié)果如圖7.61所示。507.2 數(shù)據(jù)更新(3)可以通過使用圖形工具插入數(shù)據(jù) 具體步驟詳見教材517.2 數(shù)據(jù)更新UPDATE 更新數(shù)據(jù)
32、(1)使用UPDATE命令更新數(shù)據(jù) UPDATE命令的語法格式如下:UPDATE TOP ( expression ) PERCENT SET column_name = expression | DEFAULT | NULL ,.n FROM ,.n WHERE ; 527.2 數(shù)據(jù)更新 := server_name . database_name . schema_name . | database_name . schema_name . | schema_name . table_or_view_name537.2 數(shù)據(jù)更新 TOP ( expression ) PERCENT :指定
33、將要更新的行數(shù)或行百分比 。 server_name:表或視圖所在服務(wù)器的名稱(使用鏈接服務(wù)器名稱) 。 database_name:數(shù)據(jù)庫的名稱 。 schema_name:表或視圖所屬架構(gòu)的名稱。 table_or_view_name:需要更新行的表或視圖的名稱。 SET column_name = expression | DEFAULT | NULL :指定要更新的列或變量名稱的列表 。547.2 數(shù)據(jù)更新 column_name包含要更改的數(shù)據(jù)的列 expression指返回單個(gè)值的變量、文字值、表達(dá)式或嵌套select語句(加括號)。 FROM :指定將表、視圖或派生表源用于為更新操作提供條件。 WHERE :指定條件來限定所更新的行。 557.2 數(shù)據(jù)更新例如:使用簡單UPDATE語句對student表中的所有行更新AGE列中的值 。USE teachingGOSELECT * FROM studentGOUPDATE studentSET AGE=AGE+1GOSELECT * FROM studentGO 執(zhí)行結(jié)果如圖7.64所示。 567.2 數(shù)據(jù)更新 DELETE 刪除數(shù)據(jù)(1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第19課 科學(xué)技術(shù)的重大成果課件
- 2024年專業(yè)電工施工協(xié)議典范
- 中國特色社會(huì)主義基本原理(上)
- 2024年度層電梯廳裝潢協(xié)議模板
- 2024年無薪實(shí)習(xí)勞動(dòng)協(xié)議
- 2024年倉庫租賃法律協(xié)議細(xì)則
- 2024年型車輛采購協(xié)議
- 2024屆安徽省合肥高升學(xué)校高三八校第一次適應(yīng)性考試數(shù)學(xué)試題試卷
- 2024建筑業(yè)勞務(wù)施工協(xié)議文本
- 2023-2024學(xué)年浙江省溫州市九校下期第二次質(zhì)量考評(3月)高三數(shù)學(xué)試題
- 網(wǎng)絡(luò)工程職業(yè)生涯展示
- 《汽車鈑金噴涂技術(shù)》 課件 任務(wù)11.2車身鋼制外板外形修復(fù)機(jī)修復(fù)
- 不銹鋼電鍍工藝流程
- IgG4相關(guān)疾病的護(hù)理查房
- 景區(qū)服務(wù)提升培訓(xùn)課件
- 體育行業(yè)的運(yùn)動(dòng)場館安全規(guī)范培訓(xùn)
- 小區(qū)大門改進(jìn)方案
- 醫(yī)院建設(shè)目標(biāo)及規(guī)劃
- 2024年中考?xì)v史九年級上冊重點(diǎn)知識點(diǎn)復(fù)習(xí)提綱(部編版)
- 眼科門診經(jīng)營方案
- 《聲聲慢(尋尋覓覓)》
評論
0/150
提交評論