<output id="r87xx"></output>
    1. 
      
      <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
        •   

               當(dāng)前位置:首頁(yè)>軟件介紹>MySQL必知必會(huì)(下) 查詢:
               
          MySQL必知必會(huì)(下)

          第一章    分組數(shù)據(jù)

          如何分組數(shù)據(jù),以便能匯總表內(nèi)容的子集。

          13.1 數(shù)據(jù)分組

                      C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleLZ96KW)Z1PIF(}9S%IZGLGF.jpg

          目前為止的所有計(jì)算都是在表的所有數(shù)據(jù)或匹配特定的WHERE子句的數(shù)據(jù)上進(jìn)行的。

          13.2 創(chuàng)建分組

                      C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle7OM{BKBBQCFHBTT))$7IQJJ.jpg

          A.   GROUP BY子句指示MySQL分組數(shù)據(jù),然后對(duì)每個(gè)組而不是整個(gè)結(jié)果集進(jìn)行聚集。

          B.   GROUP BY子句可以包含任意數(shù)目的列。除了聚集計(jì)算語(yǔ)句外,SELECT語(yǔ)句中的每個(gè)列都必須在GROUP BY子句中給出。

          C.   如果在GROUP BY子句中嵌套了分組,數(shù)據(jù)將在最后規(guī)定的分組上進(jìn)行匯總。在子句中列出的每個(gè)列都必須是檢索列或有效的表達(dá)式。

          D.   如果分組中具有NULL值,則NULL將作為一個(gè)分組返回。

          E.   GROUP BY子句必須出現(xiàn)在WHERE子句之后,ORDER BY子句之前。

          F.   使用WITH ROLLUP關(guān)鍵字,可以得到每個(gè)分組以及每個(gè)分組匯總級(jí)別(針對(duì)每個(gè)分組)的值。

          13.3 過濾分組

              A.WHERE過濾指定的是行而不是分組。WHERE沒有分組的概念。我們可以使用HAVING子句過濾分組。HAVING支持所有WHERE操作符。WHERE在數(shù)據(jù)分組前進(jìn)行過濾,HAVING在數(shù)據(jù)分組后進(jìn)行分組。

                      C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle~UYX(Z1CP(X6QF$N(~[G83R.jpg

                      C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle)%[_HAO3QY$DQP3CI6_[5@9.jpg

                              

                       C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleC3~GU5B4P@N6NM5]~`Y(R(T.jpg

              13.4 分組和排序

          A.   ORDER BY與GROUP BY的區(qū)別:

                          C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOlePB782`IC4B3CLI)ACIS9RXT.jpg

          C.不要忘記ORDER BY :一般在使用GROUP BY子句時(shí),應(yīng)該也給出ORDER BY子句。這是保證數(shù)據(jù)正確排序的唯一方法。

                  C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle$DKOIE4ZHD~L7B{G3FC}_~D.jpg                  

                  C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleY@)}A$]{N1]BYWAP3ACK@YU.jpg

          13.5 SELECT子句順序


                              C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleK]@OJIRI6(Q9M3D8JL))8_N.jpg

           

          第二章    使用子查詢

          14.1 子查詢

              A.MySQL引入了對(duì)子查詢的支持。SELECT語(yǔ)句是SQL的查詢。迄今為之我們所看到的所有SELECT語(yǔ)句都是簡(jiǎn)單查詢,即從單個(gè)數(shù)據(jù)庫(kù)表中檢索數(shù)據(jù)的單條語(yǔ)句。

              B.子查詢(subquery),即嵌套在其他查詢中的查詢。查詢(query):任何SQL語(yǔ)句都是查詢,但此術(shù)語(yǔ)一般指SELECT語(yǔ)句。

          14.2 利用子查詢進(jìn)行過濾

              A.格式化SQL:把子查詢分解為多行并且適當(dāng)?shù)剡M(jìn)行縮進(jìn),能極大地簡(jiǎn)化子查詢的使用。

                  C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle[M}MZPM[7ZCHWSL@(K)F{DX.jpg

           B.子查詢和性能

          14.3 作為計(jì)算字段使用子查詢

              A.相關(guān)子查詢(correlated subquery)涉及外部查詢的子查詢。

                      C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle2G@7C6NLU6DJH{GFZ9HI2TK.jpg

          如果以上查詢不使用完全限定的列名:

                      C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleD0J0_}{QXE(Z17XSKVDNKS0.jpg

                  C,這里給出的樣例代碼運(yùn)行良好,但它并不是解決這種數(shù)據(jù)檢索的最有效的方法。

                  D,逐漸增加子查詢來建立查詢:用子查詢建立(和測(cè)試)查詢的最可靠的方法是逐漸進(jìn)行。

          第三章    聯(lián)結(jié)表

           

          15.1 聯(lián)結(jié)(join)

          A.在數(shù)據(jù)檢索查詢的執(zhí)行中聯(lián)結(jié)(join)表。

          B.關(guān)系表的設(shè)計(jì)就是要保證把信息分解成多個(gè)表,一類數(shù)據(jù)一個(gè)表。各表通過某些常用的值(即關(guān)系設(shè)計(jì)中的關(guān)系(relational))互相關(guān)聯(lián)。

          C.外鍵(foreign key):外鍵為某個(gè)表中的一列,它包含另外一個(gè)表的主鍵值,定義了兩個(gè)表之間的關(guān)系。

          D.可伸縮性(scale):能夠適應(yīng)不斷增加的工作量而不失敗。

          E.為什么要使用聯(lián)結(jié):如果數(shù)據(jù)存儲(chǔ)在多個(gè)表中怎樣用單條SELECT語(yǔ)句檢索出數(shù)據(jù)。

          F.維護(hù)引用完整性:通過在表的定義中指定主鍵和外鍵來實(shí)現(xiàn)的。

                  15.2 創(chuàng)建聯(lián)結(jié)

                      C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleS}8$_]6B{}~`B}W7V9H2`C2.jpg

          A.   笛卡爾積(cartesian product):由沒有聯(lián)結(jié)條件的表關(guān)系返回的結(jié)果為笛卡爾積。

          B.   不要忘了WHERE子句:應(yīng)該保證所有聯(lián)結(jié)都有WHERE子句,否則MySQL將返回比想要的數(shù)據(jù)多得多的數(shù)據(jù)。

          C.   叉聯(lián)結(jié):叉聯(lián)結(jié)(cross join)的笛卡爾積的聯(lián)結(jié)類型。

          D.   目前為之所用的聯(lián)結(jié)稱為內(nèi)部聯(lián)結(jié)或等值聯(lián)結(jié)(equijoin),它基于兩個(gè)表之間的相等測(cè)試。SELECT vend_name, prod_name, prod_price FROM vendors INNER JOIN products ON vendors.vend_id = products.vend_id;(ANSI SQL規(guī)范首選INNER JOIN語(yǔ)法)

          E.   聯(lián)結(jié)多個(gè)表:性能考慮——MySQL在運(yùn)行時(shí)關(guān)聯(lián)指定的每個(gè)表以處理聯(lián)結(jié),這種處理可能是非常耗費(fèi)資源的。

          F.   多做實(shí)驗(yàn):為執(zhí)行任一給定的SQL操作,一般存在不止一種方法。很少有絕對(duì)正確或絕對(duì)錯(cuò)誤的方法。性能可能會(huì)受操作類型,表中數(shù)據(jù)量,是否存在索引或鍵以及其他一些條件的影響。

              C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle]M50UT~T11Z)4ILF8RU}4LL.jpg

              

                              C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleWH6L57K}X%(2N7_DH){UI)3.jpg

           

          第四章    創(chuàng)建高級(jí)聯(lián)結(jié)

          16.1 使用表別名

          A.別名除了用于列名和計(jì)算字段外,SQL還允許給表名起別名,這樣做主要是為了:縮短SQL語(yǔ)句;允許在單條SELECT語(yǔ)句中多次使用相同的表。

          B.表別名只在查詢執(zhí)行中使用,與列別名不一樣,表別名不返回到客戶機(jī)。

              

                          C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle4QFR}{10IQJ3OI1MS~%$A23.jpg

           

                  16.2 使用不同類型的聯(lián)結(jié)

                      A.用自聯(lián)結(jié)而不用子查詢自聯(lián)結(jié)通常作為外部語(yǔ)句用來替代從相同表中檢索數(shù)據(jù)時(shí)使用的子查詢語(yǔ)句。

                      C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleDU2DZM_I}9K[`_EM@F{$XZC.jpg

                      C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle80U(BDNK0)KAWEWHO4D5X44.jpg

           

          B.   自然聯(lián)結(jié)排除多次出現(xiàn),使每個(gè)列只返回一次。它是這樣一種聯(lián)結(jié),其中你只能選擇哪些唯一的列。這一般是通過對(duì)表使用通配符(SELECT *),對(duì)所有其他表的列使用明確的子集來完成的。

                  C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleQV62(9{HIZI65NX5_P33ESK.jpg

           

          C.   外部聯(lián)結(jié):聯(lián)結(jié)包含了哪些在相關(guān)表中沒有關(guān)聯(lián)行的行。例如,列出所有產(chǎn)品以及訂購(gòu)數(shù)量,包括沒有人訂購(gòu)的產(chǎn)品。

          D.   LEFT OUTER JOIN從FROM子句的左邊表中選擇所有行。RIGHT OUTER JOIN則反之

          E.   沒有*=操作符 MySQL不支持簡(jiǎn)化字符*= 和=*的使用,這兩種操作符在其他DBMS中是很流行的。外部聯(lián)結(jié)的類型:左外部聯(lián)結(jié)和右外部聯(lián)結(jié)。

                  C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle]RQDSW5X7I{6`IOYUF2D7EU.jpg

              

                                  C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle65FBCCM~BE(OK@DS(ZZNEJ2.jpg

           

                  16.3 使用帶聚集函數(shù)的聯(lián)結(jié)

                              C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleNU0@135`@H3U_M@F$`}_5(7.jpg

                                  C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle$]25{PLRZ}W5CZ(R%G88_4T.jpg

           

                  16.2 使用聯(lián)結(jié)和聯(lián)結(jié)條件

                      A.注意所使用的聯(lián)結(jié)類型。一般我們使用內(nèi)部聯(lián)結(jié),但使用外部聯(lián)結(jié)也是有效的。

                      B.保證使用正確的聯(lián)結(jié)條件,否則將返回不正確的數(shù)據(jù)。

                      C.應(yīng)該總是提供聯(lián)結(jié)條件,否則會(huì)得出笛卡爾積。

                      D.在一個(gè)聯(lián)結(jié)中可以包含多個(gè)表,設(shè)置對(duì)于每個(gè)聯(lián)結(jié)可以采用不同的聯(lián)結(jié)類型。雖然這樣做是合法的,一般也很有用,但應(yīng)該在一起測(cè)試它們前,分別測(cè)試每個(gè)聯(lián)結(jié)。

          第五章    組合查詢

          17.1 組合查詢

          A.MySQL允許執(zhí)行多個(gè)查詢(多條SELECT語(yǔ)句),并將結(jié)果作為單個(gè)查詢結(jié)果集返回。這些組合查詢通常稱為并(union)或復(fù)合查詢(compound query)。

          B.需要使用組合查詢的兩種基本情況:在單個(gè)查詢中從不同的表返回類似結(jié)構(gòu)的數(shù)據(jù)。對(duì)單個(gè)表執(zhí)行多個(gè)查詢,按單個(gè)查詢返回?cái)?shù)據(jù)。

                 17.2 創(chuàng)建組合查詢

                     A.UNION操作符:利用UNION,可給出多條SELECT語(yǔ)句,將它們的結(jié)果組合成單個(gè)結(jié)果集。

                     B.UNION規(guī)則:UNION必須由兩條或兩條以上的SELECT語(yǔ)句組成,語(yǔ)句之間用關(guān)鍵字UNION分隔。UNION中的每個(gè)查詢必須包含相同的列,表達(dá)式或聚集函數(shù)。列數(shù)據(jù)類型必須兼容。

                     C.包含或取消重復(fù)的行:使用UNION ALL,MySQL不取消重復(fù)的行。

                     D.對(duì)組合查詢結(jié)果排序:在用UNION組合查詢時(shí),只能使用一條ORDER BY。

                     E.組合不同的表:使用UNION的組合查詢可以應(yīng)用不同的表。

                          C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleHPDV3MH`9YU27_7}J0N]X2F.jpg

                          C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleY_@D]WV%RHR9X1}9SADEAEF.jpg

                      C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleC@2[JHD}[GAT1K[VL1D0MFH.jpg

           

          第六章    全文本搜索

          18.1 理解全文本搜索

               A.并非所有引擎都支持全文本搜索:MySQL支持幾種基本的數(shù)據(jù)庫(kù)引擎。MyISAM支持全文本搜索,而InnoDB不支持全文本搜索。

          18.2 使用全文本搜索

          A.為了進(jìn)行全文本搜索,必須索引被搜索的列,而且要隨著數(shù)據(jù)的改變不斷地重新索引。

          B.不要在導(dǎo)入數(shù)據(jù)時(shí)使用FULLTEXT:如果正在導(dǎo)入數(shù)據(jù)到一個(gè)新表,此時(shí)不應(yīng)該啟用FULLTEXT索引。

          C.使用完整的Match()說明:傳遞給Match()的值必須與FULLTEXT()定義中的相同。如果指定多個(gè)列,則必須列出它們(而且次序正確)

          D.搜索不區(qū)分大小寫:除非使用BINARY方式,否則全文本搜索不區(qū)分大小寫。

          E.使用查詢擴(kuò)展:查詢擴(kuò)展用來設(shè)法放寬所返回的全文本搜索結(jié)果的范圍。利用查詢擴(kuò)展,能找出可能相關(guān)的結(jié)果,即使它們并不精確包含所查找的詞。

          F.行越多越好:表中的行越多,使用查詢擴(kuò)展返回的結(jié)果越好。

          G.布爾文本搜索(boolean mode):即使沒有FULLTEXT索引也可以使用。但這是一種非常緩慢的操作。在布爾方式中,不按等級(jí)值降序排序返回的行。

          H.以布爾方式,可以提供關(guān)于如下內(nèi)容的細(xì)節(jié):要匹配的詞,要排斥的詞。排列提示,表達(dá)式分組,另外一些內(nèi)容。


                          C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle4W8Z@LPYVH~6}FVARD7}2E4.jpg

           

          第七章    插入數(shù)據(jù)

          19.1 數(shù)據(jù)插入

          A.插入可以用幾種方式使用:插入完整的行;插入行的一部分;插入多行;插入某些查詢的結(jié)果。

          B.插入及系統(tǒng)安全:可針對(duì)每個(gè)表或每個(gè)客戶,利用MySQL的安全機(jī)制禁止使用INSERT語(yǔ)句。

                  19.2 插入完整的行

                     A.INSERT INTO Customers VALUES(NULL, ‘Pep E. LaPew’, ‘100 Main Street’, ‘Los Angeles’, ‘CA’, ‘90046’, ‘USA’, NULL, NULL); 沒有輸出:INSERT語(yǔ)句一般不會(huì)產(chǎn)生輸出。

                     B.總是使用列的列表:一般不要使用沒有明確給出列的列表的INSERT語(yǔ)句。

                     C.仔細(xì)地給出值:不管哪種INSERT語(yǔ)法,都必須給出VALUES的正確數(shù)目。

          D.省略列:如果表的定義允許,則可以在INSERT操作中省略某些列。省略的列必須滿足以下某個(gè)條件。該列定義為允許NULL值(無值或空值)。在表定義給出默認(rèn)值。

                     E.如果數(shù)據(jù)檢索是最重要的,則你可以通過在INSERT和INTO之間添加關(guān)鍵字LOW_PRIORITY,指示MySQL降低INSERT語(yǔ)句的優(yōu)先級(jí)。這也適用與UPDATA和DELETE語(yǔ)句。

                     F.編寫INSERT語(yǔ)句的更安全的方法:INSERT INTO Customers(cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email) VALUES( ‘Pep E. LaPew’, ‘100 Main Street’, ‘Los Angeles’, ‘CA’, ‘90046’, ‘USA’, NULL, NULL);它在表名后的括號(hào)里明確地給出了列名。在插入行時(shí),MySQL將用VALUES列表中的相應(yīng)值填入列表中的對(duì)應(yīng)項(xiàng)。

                  19.3 插入多個(gè)行

                      A.可以使用多條INSERT語(yǔ)句,設(shè)置一次提交它們,每條語(yǔ)句用一個(gè)分號(hào)結(jié)束?;蛘咧灰織lINSERT語(yǔ)句中的列名(和次序)相同:INSERT INTO Customers(cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country) VALUES( ‘Pep E. LaPew’, ‘100 Main Street’, ‘Los Angeles’, ‘CA’, ‘90046’, ‘USA’),( ‘M. Martain’, ‘42 Galaxy Way’, ‘New York’, ‘NY’, ‘11213’, ‘USA’);其中單條INSERT語(yǔ)句有多組值,每組值用一對(duì)圓括號(hào)括起來,用逗號(hào)分隔。后者的性能高。

                  19.4 插入檢索出的數(shù)據(jù)

                      A.INSERT SELECT:它由一條INSERT語(yǔ)句和一條SELECT語(yǔ)句組成的。

                      B.INSERT SELECT中的列名:不一定要求列名匹配。MySQL只用的是列的位置,因此SELECT中第一列將用來填充表列中指定的第一列,以此類推。

           

          第八章    更新和刪除數(shù)據(jù)

          20.1 更新(修改)數(shù)據(jù)

          A.UPDATE:更新表中特定行;更新表中所有行。

          B.UPDATE語(yǔ)句由3部分組成:要更新的表;列名和它們的新值(SET);確定要更新行的過濾條件。

          C.在UPDATE語(yǔ)句中使用子查詢。IGNORE關(guān)鍵字:如果用UPDATE語(yǔ)句更新多行,并且在更新這些行中的一行或多行時(shí)出現(xiàn)一個(gè)錯(cuò)誤,則整個(gè)UPDATE操作被取消。忽略錯(cuò)誤,繼續(xù)進(jìn)行更新。UPDATE IGNORE customers…

          D.為了刪除某個(gè)列的值,可設(shè)置它為NULL

                  20.2 刪除數(shù)據(jù)

                      A.DELETE語(yǔ)句:從表中刪除特定的行;從表中刪除所有行。

                      B.刪除表的內(nèi)容而不是表;更快的刪除:如果想從表中刪除所有行,不要使用DELETE,可使用TRUNCATE TABLE語(yǔ)句(實(shí)際是刪除原來的表并重新創(chuàng)建一個(gè)表)。

                  20.3 更新和刪除的知道原則

                      A.小心使用:MySQL沒有撤銷(undo)按鈕。

                      B.除非確實(shí)打算更新和刪除每一行,否則絕對(duì)不要使用不帶WHERE子句的UPDATE或DELETE語(yǔ)句。

                      C.保證每個(gè)表都有主鍵。

          D.先使用SELECT測(cè)試WHERE子句,保證它過濾的是正確的記錄。

                      E.使用強(qiáng)制實(shí)施引用完整性的數(shù)據(jù),這樣MySQL將不允許刪除具有與其他表相關(guān)聯(lián)的數(shù)據(jù)的行。

          第九章    創(chuàng)建和操縱表

          21.1 創(chuàng)建表

          A.一般有兩種創(chuàng)建表的方法:使用具有交互式創(chuàng)建和管理表的工具(實(shí)際上也是使用了MySQL語(yǔ)句);表也可以直接用MySQL語(yǔ)句操縱。

          B.處理現(xiàn)有的表:在創(chuàng)建新表時(shí),指定的表名必須不存在,否則將出錯(cuò)。不能簡(jiǎn)單地用創(chuàng)建表語(yǔ)句覆蓋已有的表。

          C.如果你僅想在一個(gè)表不存在時(shí)創(chuàng)建它,應(yīng)該在表名后給出IF NOT EXITS。

          D.如果不指定NOT NULL,則認(rèn)為指定的是NULL。NULL值是沒有值,它不是空串??沾且粋€(gè)有效的值,它不是無值。

          E.使用AUTO_INCREMENT:AUTO_INCREMENT告訴MySQL,本列每當(dāng)增加一行時(shí)自動(dòng)增量。每個(gè)表只允許一個(gè)這樣的列,而且它必須被索引。

          F.指定默認(rèn)值(DEFAULT):如果插入行時(shí)沒有給出值,MySQL允許指定此時(shí)使用的默認(rèn)值。使用默認(rèn)值而不是NULL值,特別是對(duì)用于計(jì)算或數(shù)據(jù)分組的列更是如此。

          G.引擎類型:ENGINE=InnoDB語(yǔ)句,與其他DBMS一樣,MySQL有一個(gè)具體管理和處理數(shù)據(jù)的內(nèi)部引擎。但MySQL與其他DBMS不一樣,它具有多種引擎。它打包多個(gè)引擎,這些引擎都隱藏在MySQL服務(wù)器內(nèi),全都能執(zhí)行Create TABLE和SELECT等命令。

          H.InnoDB是一個(gè)可靠的事務(wù)處理引擎,它不支持全文本搜索。MEMORY在功能上等同于MyISAM,但由于數(shù)據(jù)存儲(chǔ)在內(nèi)存中,速度很快,適合于臨時(shí)表。MyISAM是一個(gè)性能極高的引擎,它支持全文本搜索。但不支持事務(wù)處理。

          I.外鍵不能跨引擎:即使用一個(gè)引擎的表不能引用具有使用不同引擎的外鍵。

             21.2 更新表

                     A.ALTER TABLE之后給出要更改的表名,所做更改的列表。例如,ALTER TABLE vendors ADD vend_phone CHAR(20);  ALTER TABLE vendors DROP COLUMN vend_phone;

                     B.ALTER TABLE的一種常見用途是定義外鍵。

                  21.3 刪除表

                     A.DROP TABLE語(yǔ)句

                  21.4 重命名表

                     A.RENAME TABLE customers TO customers;

          第十章    使用視圖

          22.1 視圖

          A.需要MySQL 5 ,它添加了對(duì)視圖的支持。視圖是虛擬的表,它只包含使用時(shí)動(dòng)態(tài)檢索數(shù)據(jù)的查詢。

          B.為什么使用視圖:重用SQL語(yǔ)句。簡(jiǎn)化復(fù)雜的SQL操作。使用表的組成部分而不是整個(gè)表。保護(hù)數(shù)據(jù),給用戶授予表的特定部分的訪問權(quán)限而不是整個(gè)表的訪問權(quán)限。更改數(shù)據(jù)格式和表示。使用視圖要考慮性能問題。

          C.視圖的規(guī)則和限制


                              C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleOPV@C6DI[2@[WB~1S~~9FW6.jpg

           

                 22.2 使用視圖

                     A.CREATE VIEW ,SHOW CREATE VIEW viewname,DROP VIEW viewname,更新視圖時(shí),可以先用DROP再用CREATE,也可以直接用CREATE OR REPLACE VIEW。

                          C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOleUJOQBBD~7DC9LG{VA)2{HOG.jpg

                          C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle}HKN@X)`%$}S2D%DIZMOQI.jpg

                          C:UserszhouxiaoAppDataRoamingTencentUsers304593733QQWinTempRichOle1O~9U2%OY13$82}7}813PIC.jpg

          B, 創(chuàng)建可重用的視圖:創(chuàng)建不受特定數(shù)據(jù)限制的視圖是一種好方法。例如上面創(chuàng)建的視圖返回購(gòu)買所有產(chǎn)品的客戶而不僅僅是生產(chǎn)TNT2的客戶。

          C, 用視圖重新格式化檢索出的數(shù)據(jù):

          D, 用視圖過濾不想要的數(shù)據(jù):

          E,  WHERE子句與WHERE子句:如果從視圖檢索數(shù)據(jù)時(shí)使用了一條WHERE子句,則兩組子句(一組在視圖中,另一組是傳遞給視圖的)將自動(dòng)組合。

          F,  使用視圖與計(jì)算字段

          G, 更新視圖:通常,視圖是可更新的。基本上可以說,如果MySQL不能正確地確定被更新的基數(shù)據(jù),則不允許更新。一般,應(yīng)該將視圖用于檢索(SELECT語(yǔ)句)而不用于更新(INSERT,UPDATE和DELETE)

           

          第十一章              使用存儲(chǔ)過程

          23.1 存儲(chǔ)過程(需要MySQL 5)

          A.存儲(chǔ)過程簡(jiǎn)單來說,就是為以后的使用而保存的一條或多條MySQL語(yǔ)句的集合??蓪⑵湟暈榕募?,雖然它們的作用不僅限于批處理。

                 23.2 為什么要使用存儲(chǔ)過程

                     A.通過把處理封裝在容易使用的單元中,簡(jiǎn)化復(fù)雜的操作。

                     B.由于不要求反復(fù)建立一系列處理步驟,這保證數(shù)據(jù)的完整性。(防止錯(cuò)誤)

                     C.簡(jiǎn)化對(duì)變動(dòng)的管理。(安全性,通過存儲(chǔ)過程限制對(duì)基礎(chǔ)數(shù)據(jù)的訪問減少了數(shù)據(jù)訛誤的機(jī)會(huì))

                     D.提高性能。

                     E.你可能有沒創(chuàng)建存儲(chǔ)過程的安全訪問權(quán)限。編寫存儲(chǔ)過程需要更高的技能,更加豐富的經(jīng)驗(yàn)(這是缺陷)MySQL將編寫存儲(chǔ)過程的安全和訪問與執(zhí)行存儲(chǔ)過程的安全和訪問區(qū)分開來。

                  23.3 使用存儲(chǔ)過程(如何執(zhí)行(運(yùn)行)它們)

                     A.執(zhí)行存儲(chǔ)過程(調(diào)用:CALL語(yǔ)句):CALL productpricing(@pricelow, @pricehigh, @priceaverage);

                     B.創(chuàng)建存儲(chǔ)過程,例如:CREATE PROCEDURE productpricing() BEGIN SELECT Avg(prod_price) AS priceaverage FROM products; END;

                     C.臨時(shí)改變命令行實(shí)用程序的語(yǔ)句分隔符:DELIMITER // 這表示告訴命令行實(shí)用程序使用//作為新的語(yǔ)句結(jié)束分隔符。

                     D.刪除存儲(chǔ)過程:DROP PROCEDURE (IF EXISTS) productpricing;

                     E.使用參數(shù):一般存儲(chǔ)過程并不顯示結(jié)果,而是把結(jié)果返回給指定的變量(variable:內(nèi)存中的一個(gè)特定的位置,用來臨時(shí)存儲(chǔ)數(shù)據(jù))

                     F.MySQL支持IN(傳遞給存儲(chǔ)過程),OUT(從存儲(chǔ)過程傳出)和INOUT(對(duì)存儲(chǔ)過程傳入和傳出)類型的參數(shù),所有MySQL變量都必須以@開始。

                     G.建立智能存儲(chǔ)過程(包含業(yè)務(wù)規(guī)則和智能處理)

                     H.檢查存儲(chǔ)過程SHOW CREATE PROCEDURE語(yǔ)句,SHOW PROCEDURE STATUS;

           

          第十二章              使用游標(biāo)

          24.1 游標(biāo)(需要MySQL 5)

               A.有時(shí),需要在檢索出來的行中前進(jìn)或后退一行或多行。

               B.游標(biāo)(cursor)是一個(gè)存儲(chǔ)在MySQL服務(wù)器上的數(shù)據(jù)庫(kù)查詢,它不是一條SELECT語(yǔ)句,而是被該語(yǔ)句檢索出來的結(jié)果集。

               C.主要是用于交互式應(yīng)用。只能用于存儲(chǔ)過程:不像多數(shù)DBMS,MySQL游標(biāo)只能用于存儲(chǔ)過程(和函數(shù))。

          24.2 使用游標(biāo)

               A.創(chuàng)建游標(biāo):用DECLARE語(yǔ)句創(chuàng)建 CREATE PEOCEDURE processorders() BEGIN DECLARE ordernumbers CURSOR FOR SELECT order_num FROM orders; END;

               B.打開和關(guān)閉游標(biāo):OPEN CURSOR語(yǔ)句和CLOSE CURSOR語(yǔ)句。

               C.在一個(gè)游標(biāo)打開后,可以使用FETCH語(yǔ)句分別訪問它的每一行。

               D.DECLARE語(yǔ)句定義的局部變量必須在定義任何游標(biāo)或句柄之前定義。



          WMS倉(cāng)儲(chǔ)管理系統(tǒng)可以從哪些方面改進(jìn)倉(cāng)儲(chǔ)物流管理系統(tǒng)條形碼解決方案
          WMS條碼倉(cāng)庫(kù)管理系統(tǒng)簡(jiǎn)介 電商物流WMS管理系統(tǒng)
          條碼系統(tǒng)操作手冊(cè)條碼掃描以及條碼檢查管理規(guī)定
          條碼出入庫(kù)管理系統(tǒng)方案PDA條碼倉(cāng)儲(chǔ)物流管理系統(tǒng)的整套解決方案
          儲(chǔ)運(yùn)包裝商品編碼與條碼表示EAS-WMS條碼倉(cāng)儲(chǔ)物流軟件系統(tǒng)概述
          條碼技術(shù)在物資倉(cāng)儲(chǔ)的作用ERP倉(cāng)庫(kù)條碼管理系統(tǒng)的設(shè)計(jì)
          條碼固定資產(chǎn)管理系統(tǒng)MySQL高級(jí)編程
          MySQL必知必會(huì)(上)
          信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
          • 勁爆價(jià):
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 无码AV中文字幕 | 大香蕉日 | 小嫩苞乱XXX视频 | 免费观看A V | 影音先锋无码专区 | 精品三级AV无码 | 亚洲女人在线观看 | 国产乱码一区二区三区的解决方法 | 日韩av中文在线 日韩videos | 亚洲内射小视频 |