国产精品一区二区女厕厕,一区二区三区成人,国产精品乱码久久久久久http://m.shnenglu.com/sixleaves/category/20825.html重劍無鋒 大巧不工zh-cnSat, 23 Aug 2014 06:02:01 GMTSat, 23 Aug 2014 06:02:01 GMT60JS(04)圖片庫改進(jìn)之書寫優(yōu)秀的JS-DOMhttp://m.shnenglu.com/sixleaves/archive/2014/07/11/207609.htmlswpswpThu, 10 Jul 2014 18:41:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/07/11/207609.htmlhttp://m.shnenglu.com/sixleaves/comments/207609.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/07/11/207609.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/207609.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/207609.html今天完成了圖片庫的改進(jìn),不得寫下關(guān)于這個(gè)的深切感觸,獲得的寶貴經(jīng)驗(yàn)!。不羅嗦直接看先看代碼
1.平穩(wěn)退化
    要支持平穩(wěn)退化,也就是在瀏覽器禁用js時(shí),不會造成無法瀏覽,知識用戶體驗(yàn)變差了而已,功能還是實(shí)現(xiàn)了的。此時(shí)就不能使用javascript偽協(xié)議加href屬性來解決。如下。
2.分離js
    分離js的關(guān)鍵技術(shù)就是要結(jié)合HTML生命周期,和window對象的onload方法以及元素對象擁有事件函數(shù)進(jìn)行相應(yīng)的自定義函數(shù)綁定。
3.兼容性(對象檢查技術(shù)、其實(shí)用來確定代碼錯(cuò)誤位置也很好用)
4.優(yōu)化代碼(使用特定壓縮工具,壓縮js代碼)
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title>Image Gallery</title>
 6     </head>
 7     <body>
 8         <h1>Snapshots</h1>
 9         <ul id = "imagegallery">
10             <li>
11                 <href="images/fireworks.jpg" title="A fireworks display">
12                 Fireworks
13                 </a>
14             </li>
15             <li>
16                 <href="images/coffee.jpg" title="A cup of black coffee">
17                 Coffee
18                 </a>
19             </li>
20             <li>
21                 <href="images/rose.jpg" title="A red. red rose">
22                 Rose
23                 </a>
24             </li>
25             <li>
26                 <href="images/bigben.jpg" title="The famous clock">
27                 Big Ben
28                 </a>
29             </li>
30         </ul>
31         <img id="placeholder" src="images/placeholder.jpg" alt="my image gallery" />
32         <id="desp">Choose an Image</p>
33         <script type="text/javascript" src="./scripts/showPic.js">
34         </script>
35     </body>
36 </html>
g 1 function showPic(whichPic) {
 2     alert("showPic");
 3     var source = whichPic.getAttribute("href");
 4     var placeholder = document.getElementById("placeholder");
 5     placeholder.setAttribute("src",source);
 6     var text = whichPic.getAttribute("title");
 7     var txtNode = document.getElementById("desp").firstChild;
 8     txtNode.nodeValue = text;
 9     return false;
10         /*
11         經(jīng)驗(yàn)總結(jié):
12         1.由于js是動(dòng)態(tài)語言,所以存在一個(gè)很嚴(yán)重的問題,
13         那就是你自己取的變量名稱時(shí),盡可能的采用駱駝峰寫法,
14         并且最后借助好的編輯器,有自動(dòng)補(bǔ)全功能的編輯器,一面
15         拼寫錯(cuò)誤,這種錯(cuò)誤低級,而且查找起來十分困難。
16 
17         2.如果站點(diǎn)用到多個(gè)js文件,因該把它合并到一個(gè)文件中。以減少請求次數(shù),提高性能。
18 
19     */
20 }
21 
22 function addLoadEvent(func) {
23     var oldLoad = window.onload;
24     if(typeof oldLoad == 'function') {
25         window.onload = function() {
26             oldLoad();
27             func();
28         }
29     }else {
30         window.onload = func;
31     }
32 }
33 
34 function prepareGallery() {
35     //使用對象檢查技術(shù),檢查所要用到的方法是否可以用。
36     //在js dom中,一切都可視為對象,包括方法,
37     //所以說這是對象檢測技術(shù),檢測這個(gè)對象存不存在
38     //下面主要是檢查瀏覽器是否支持這些DOM接口
39     //alert("jsss");
40     
41     if(!document.getElementsByTagName) {alert("tag");return false};
42     if(!document.getElementById) return false;
43     if(!document.getElementById("imagegallery")) return false;
44     var gl = document.getElementById("imagegallery");
45     var links = gl.getElementsByTagName("a");
46     //alert(typeof links);
47     for(var i = 0; i < links.length; i++) {
48         links[i].onclick = function() {
49             return showPic(this);
50         }
51     }
52     //alert("end");
53 }
54 addLoadEvent(prepareGallery);
55 /*
56 這里介紹下HTML的聲明周期,當(dāng)HTML文檔完成加載時(shí),此時(shí)DOM節(jié)點(diǎn)樹立即構(gòu)建起來,此時(shí)會出發(fā)window對象的onload事件
57 所以我們在這個(gè)時(shí)候執(zhí)行prepareGallery()函數(shù)進(jìn)行,相應(yīng)節(jié)點(diǎn)對象上的事件綁定是最合適的,因?yàn)榇藭r(shí)我們能確保整顆節(jié)點(diǎn)
58 樹已經(jīng)構(gòu)建完畢,我們綁定只要代碼不出錯(cuò),就肯定不會出錯(cuò)。要是不用這個(gè)事件來處理。而只是通過srcipt標(biāo)簽引入,不管是放在
59 head區(qū)域還是body結(jié)束之前,都無法保證此時(shí)DOM節(jié)點(diǎn)樹已經(jīng)構(gòu)建完成,所以要實(shí)現(xiàn)js分離我們一定要用到HTML的聲明周期中的加載完成
60 ,構(gòu)建完成DOM節(jié)點(diǎn)樹而觸發(fā)的window.onload事件,有人會問此時(shí)document對象是否存在,在BOM中,window對象含有一個(gè)成員變量,
61 就是document,所以有window對象,就有document對象。
62 */
63 
g
代碼中的注釋已經(jīng)詳細(xì)說明了代碼是要來干什么的。其實(shí)今天改進(jìn)版本的圖片庫,本來是想學(xué)習(xí)下HTML生命周期和DOM節(jié)點(diǎn)樹的關(guān)系,以及和window.onload的關(guān)聯(lián)。還有學(xué)習(xí)怎么平穩(wěn)退化。結(jié)果卡殼,卡了半天,差錯(cuò),差了半天,起初是其中一個(gè)字符編碼有問題,運(yùn)行結(jié)果不對。找了半天才找到。
這里總結(jié)寫js的快速調(diào)試辦法,當(dāng)然有點(diǎn)麻煩。
我們在寫js時(shí),如果在定位元素時(shí),我們應(yīng)該分步定位,步步縮進(jìn),在定位時(shí),利用對象檢查技術(shù),我們可以很輕易找到我們出錯(cuò)的地方。本來這項(xiàng)技術(shù)是用來保證兼容性的,但是我們還可以用它來定位錯(cuò)誤!,在沒有該對象的時(shí)候使用alert進(jìn)行提示。在調(diào)試時(shí),我們就可以快速定位錯(cuò)誤的位置,因?yàn)榇蠖鄶?shù)時(shí)候我們寫的代碼在我們理解的邏輯上是不會有錯(cuò)的,但是我們有時(shí)可能為定位某個(gè)元素,給其加了給id,但是定位時(shí)卻拼錯(cuò)了,這時(shí)我們通過對象檢查技術(shù),就可以很快找到錯(cuò)誤的地方。
2014.07.11
02:44
于福州

swp 2014-07-11 02:41 發(fā)表評論
]]>
JS(03) Node節(jié)點(diǎn)屬性和事件之圖片庫http://m.shnenglu.com/sixleaves/archive/2014/07/10/207596.htmlswpswpWed, 09 Jul 2014 18:53:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/07/10/207596.htmlhttp://m.shnenglu.com/sixleaves/comments/207596.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/07/10/207596.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/207596.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/207596.html 1 <!DOCTYPE html>
 2 <html>
 3     <!--我們希望做到的是
 4         1.當(dāng)點(diǎn)擊某個(gè)鏈接,我們3希望能留在這個(gè)網(wǎng)頁而不是轉(zhuǎn)到另外一個(gè)窗口
 5         2.當(dāng)點(diǎn)擊某個(gè)鏈接,我們希望能在這個(gè)網(wǎng)頁上同事看到那張圖片和原有的圖片清單
 6     -->
 7     <!--
 8         1.當(dāng)我們觸發(fā)onclick事件時(shí),不僅showPic函數(shù)會被調(diào)用,鏈接也會起作用,而跳轉(zhuǎn)到另外一個(gè)窗口
 9           所以,這里有個(gè)知識點(diǎn),對于a標(biāo)簽的onclick函數(shù),如果你讓onclick函數(shù)返回false,那么瀏覽器
10           會認(rèn)為你沒有點(diǎn)擊鏈接,也就不會發(fā)生跳轉(zhuǎn)。
11         2.如果吧a標(biāo)簽看成對象,你會發(fā)現(xiàn)這個(gè)很容易理解,我們給a標(biāo)簽增加了onclick函數(shù)具體的做什么事情,
12           也就是說onclick函數(shù)是a對象里的一個(gè)方法,那么這里的this就是指的就是a標(biāo)簽這個(gè)對象。現(xiàn)在你明白
13           為什么要用this了吧(想想C++、java)
14     -->
15     <head>
16         <meta charset="utf-8" />
17         <title>Image Gallery</title>
18     </head>
19     <body>
20         <h1>Snapshots</h1>
21         <ul>
22             <li><href="images/fireworks.jpg" title="A fireworks display" onclick="return showPic(this);">Fireworks</a></li>
23             <li><href="images/coffee.jpg" title="A cup of black coffee"  onclick="return showPic(this);">Coffee</a></li>
24             <li><href="images/rose.jpg" title="A red. red rose" onclick="return showPic(this);">Rose</a></li>
25             <li><href="images/bigben.jpg" title="The famous clock" onclick="return showPic(this);">Big Ben</a></li>
26         </ul>
27         <img id="placeholder" src="images/placeholder.jpg" alt="my image gallery" />
28         <id="desp">Choose an Image</p>
29         <script type="text/javascript" src="scripts/showPic.js"></script>
30     </body>
31 </html>

showPic.js

function showPic(whichPic) {
    var source = whichPic.getAttribute("href");
    var placeholder = document.getElementById("placeholder");
    placeholder.setAttribute("src",source);
    var text = whichPic.getAttribute("title");
    var txtNode = document.getElementById("desp").firstChild;
    txtNode.nodeValue = text;
    return false;
    /*
        經(jīng)驗(yàn)總結(jié):
        1.由于js是動(dòng)態(tài)語言,所以存在一個(gè)很嚴(yán)重的問題,
        那就是你自己取的變量名稱時(shí),盡可能的采用駱駝峰寫法,
        并且最后借助好的編輯器,有自動(dòng)補(bǔ)全功能的編輯器,一面
        拼寫錯(cuò)誤,這種錯(cuò)誤低級,而且查找起來十分困難。

        2.如果站點(diǎn)用到多個(gè)js文件,因該把它合并到一個(gè)文件中。以減少請求次數(shù),提高性能。

    
*/
}


swp 2014-07-10 02:53 發(fā)表評論
]]>
JS(02)-DOM介紹http://m.shnenglu.com/sixleaves/archive/2014/07/09/207583.htmlswpswpTue, 08 Jul 2014 19:33:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/07/09/207583.htmlhttp://m.shnenglu.com/sixleaves/comments/207583.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/07/09/207583.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/207583.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/207583.html閱讀全文

swp 2014-07-09 03:33 發(fā)表評論
]]>
JS(01)-JavaScript語法http://m.shnenglu.com/sixleaves/archive/2014/07/09/207582.htmlswpswpTue, 08 Jul 2014 16:42:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/07/09/207582.htmlhttp://m.shnenglu.com/sixleaves/comments/207582.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/07/09/207582.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/207582.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/207582.html準(zhǔn)備工作:
      編寫javascript并不需要復(fù)雜的工具,其編寫的代碼必須通過HTML/XHTML文檔執(zhí)行。有兩種方式可以做到,第一種是在head標(biāo)簽中的script標(biāo)簽中寫生javascript代碼。
      另外一種方式使我們推薦的使用的方式,把js代碼放在外部,在引用進(jìn)去,引用的位置最好是在HTML文檔最后,</body>之前,這樣可以加快瀏覽器加載頁面的速度。引
      用的方式就是在script標(biāo)簽中的src屬性上賦值,所寫js代碼的路徑。
  1 <!DOCTYPE HTML>
 2 <html>
 3   <head>
 4      <meta charset="utf-8" />
 5      <title></title>
 6   </head>
 7   <body>
 8      ..
 9      <script src="file.js"></script>
10   </body>
11 </html>
語法:
       一.語句:js的語句可以不加分號而把他們放在不同行上,但這不是好的編程習(xí)慣,為了培養(yǎng)好的編程習(xí)慣,我們每條語句都給它加上分號,不管是不同行的還是同一行的。
       二.注釋:(1)行注釋// (2)段注釋/**/ (3)HTML風(fēng)格行注釋<!--(不推薦使用,容易于HTML注釋混淆)
       三.變量:使用var進(jìn)行聲明,由于js是動(dòng)態(tài)語言,可以直接用變量賦值代替變量聲明(test = “fuck”,將自動(dòng)聲明test變量)。但是為了培養(yǎng)編程習(xí)慣,請?jiān)谑褂们奥暶鳌?/span>
       四.變量類型:
               (1)字符串:包含在單引號或者雙引號里的字符序列,選擇的簡單原則是:如果字符串包含單引號,則使用雙引號,如果字符串包含雙引號,則是同單引號。如:var mood = "don't ask";淡然也可以用轉(zhuǎn)義字符,那么你仍然可以使用單引號,var mood                                  = 'don\'t ask';
                (2) 數(shù)值:可以直接使用整數(shù),浮點(diǎn)數(shù)。var a = 3, b= 2.32;
                (3) 布爾值:var test=true,sleeping = false;注意布爾值true于字符串"true"是兩碼事
                Tips:標(biāo)量--如果某個(gè)數(shù)是標(biāo)量(scalar),它在任意時(shí)刻只能有一個(gè)值。(1)-(3)都是標(biāo)量。

                (4) 數(shù)組:相對于標(biāo)量,如果想用變量存儲一組值,就得用數(shù)組。
                    4.1創(chuàng)建數(shù)組:
                            使用數(shù)組有兩種方式:一種是先聲明數(shù)組,在對數(shù)字賦值。一種是在聲明是就賦值。
                            第一種的話,如果使用整數(shù)索引,0開始表示第一個(gè)。第二種方式,是var test = Array("waht",1,"fuck","come",1.23);//創(chuàng)建了有五個(gè)元素的數(shù)組
                            Tips:數(shù)組的元素還可以是數(shù)組。
                    4.2關(guān)聯(lián)數(shù)組:(哈希數(shù)組)
                            var test = array();test["first"] = 1;//不推薦使用關(guān)聯(lián)數(shù)組,因?yàn)樵趈s中,每中類型其實(shí)都是實(shí)例對象,所以這種方法的本質(zhì)是給Array()對象添加
                            屬性,如上,添加就是first屬性。最好的情況下不應(yīng)該修改Array對象屬性,而是使用OBject對象。
                (5)對象:
                      與數(shù)組一樣的是,對象也是使用一個(gè)名字表示一組值。
                      5.1:創(chuàng)建對象,使用Object關(guān)鍵字。如:var lesson = Object();
                      5.2:使用.號了添加或者獲取對象的屬性。如 lesson.name = "John";
                      5.3:創(chuàng)建對象的另外一種簡單方法----花括號方法:
                            var lesson = {name:"John",year:1945};
                       Tips:
                             var beatles = {};//創(chuàng)建一個(gè)Object對象
                             beatles.vocalist = lesson;//為Object對象添加vocalist屬性,值為lesson對象。
                             于是我們這樣獲取值beatles.vacalist.name,beatles.vacalist.year
         五.操作:  (1)算數(shù)操作運(yùn)算符(+ - * / )(2)字符串拼接運(yùn)算符(+)so:10 + 20 ---30;"10" + 20 --- 1020;(3)另外一個(gè)特殊的很好用的是+=,如:var year=2000;var message = "this is "; message += year;---"This is 2000";
         六. 條件語句、循環(huán)語句、函數(shù)(函數(shù)有點(diǎn)區(qū)別):略(于C、C++、Java差不多)
         七.變量的作用域:
                  全局變量:可以在腳本任何位置引用。
                  局部變量:存在于指定函數(shù)內(nèi)部。在函數(shù)內(nèi)部,使用var關(guān)鍵字的變量一定是局部變量,而沒有使用的這是全局變量。
                     function square(num) {
                    total = num * num;//total為全局
                       return total;
                }

              var total = 50;
              var number = square(20);//改變total,因?yàn)槠鋵?shí)全局的。
              alert(total);//400
                   function square(num) {
                   var total = num * num;//改成這樣就安全了
                   return total;
                }
         八:對象:一個(gè)對象包含屬性和方法,都可以通過.來訪問屬性和方法。
                內(nèi)建對象(其實(shí)應(yīng)該成為類):Array().可以使用new關(guān)鍵字來創(chuàng)建var beatles = new Array();還有Date類、Math類。
                宿主對象():也即是JS寄生的環(huán)境,如瀏覽器環(huán)境,則此時(shí)有瀏覽器提供的對象被成為宿主對象,F(xiàn)orm、IMage、Element、document
         
         總結(jié):JS對對象的定義有點(diǎn)奇葩,這里總結(jié)下,首先同意觀點(diǎn),可以把它所說的對象看成類,而實(shí)例化對象的方法有兩種,一種是使用關(guān)鍵字如Array()、Object()等即可,一種是
                最通用的顯示的使用new關(guān)鍵字,進(jìn)行對象的創(chuàng)建如new Array()等。

swp 2014-07-09 00:42 發(fā)表評論
]]>
(SQL總結(jié)精華)sixleaves之mysql之表的連接詳細(xì)總結(jié)http://m.shnenglu.com/sixleaves/archive/2014/04/24/206703.htmlswpswpThu, 24 Apr 2014 12:52:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/24/206703.htmlhttp://m.shnenglu.com/sixleaves/comments/206703.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/24/206703.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206703.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206703.html閱讀全文

swp 2014-04-24 20:52 發(fā)表評論
]]>
sixleaves之mysql左連接、右連接、內(nèi)連接。http://m.shnenglu.com/sixleaves/archive/2014/04/23/206691.htmlswpswpWed, 23 Apr 2014 15:46:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/23/206691.htmlhttp://m.shnenglu.com/sixleaves/comments/206691.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/23/206691.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206691.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206691.html20%:
1.所謂左連接,其實(shí)就是左表不懂,用條件去匹配右表,為true時(shí)把右表相應(yīng)的行并到左表,false時(shí)在其上填上NULL。語法規(guī)則就是 Atb left join Btb ON conditions;這句話其實(shí)可以直接把它當(dāng)作就是一張表對待。而所謂的右連接只是相對于左連接而言,兩個(gè)其實(shí)是等價(jià)的,Atb left join Btb ON conditions;~Btb right join Atb ON conditions,所以你只要記住左連接,再記住右連接是相對于左連接,其實(shí)是等價(jià)的就夠了。

2.所謂的內(nèi)連接,其實(shí)就是左右連接的交集,內(nèi)連接不會把沒匹配的行加入結(jié)果集中,但是左右連接會,并且他們會為其填上NULL。語法格式是Atb inner join Btb On conditions

3.如果說左連接時(shí),左表有幾條數(shù)據(jù)那么,連接后的表的數(shù)據(jù)條數(shù)和左表一樣。對嗎?這是一個(gè)錯(cuò)誤的概念,因?yàn)榻Y(jié)果集的條數(shù)是左右兩個(gè)表共同決定的,如果右表中對于左表有兩條符合的記錄,那么在結(jié)果集中對應(yīng)也有兩條,而不是一條。

4.左右連接和內(nèi)連接相對于全相乘效率上當(dāng)然是高了很多,這是因?yàn)橐话愣运鼈冇玫搅怂饕?img src ="http://m.shnenglu.com/sixleaves/aggbug/206691.html" width = "1" height = "1" />

swp 2014-04-23 23:46 發(fā)表評論
]]>
sixleaves之mysql之where型、from型、exists型子查詢http://m.shnenglu.com/sixleaves/archive/2014/04/23/206690.htmlswpswpWed, 23 Apr 2014 15:36:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/23/206690.htmlhttp://m.shnenglu.com/sixleaves/comments/206690.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/23/206690.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206690.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206690.html
from型:
from型主要是為了把某次查詢結(jié)果當(dāng)作查詢表再查詢。一般書寫規(guī)則是(sql) as tmp,這里sql是指某次查詢結(jié)果,tmp是其別名。

EXISTS型:
EXISTS子查詢,就是用外層的sql作為內(nèi)層sql的條件,如果條件為真那么輸出外層sql。講的有點(diǎn)抽象,我會再分別整理補(bǔ)充完整這三種子查詢的各個(gè)典型例子。

swp 2014-04-23 23:36 發(fā)表評論
]]>
sixleaves之mysql Order by 與limithttp://m.shnenglu.com/sixleaves/archive/2014/04/23/206689.htmlswpswpWed, 23 Apr 2014 15:24:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/23/206689.htmlhttp://m.shnenglu.com/sixleaves/comments/206689.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/23/206689.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206689.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206689.html情景一:假設(shè)有要排序的兩個(gè)字段,先按照字段a進(jìn)行升序,再按照字段b進(jìn)行升序,那么可以寫成order by a asc,b asc;

知識點(diǎn)二:order by還可以和limit結(jié)合起來使用,達(dá)到取某幾個(gè)值的目的,如取第四名到,第六名的值,就是order by desc limit 3,3;即可,至于這兩個(gè)參數(shù),第一個(gè)其實(shí)就是C語言數(shù)組中的索引,也是從零開始計(jì)數(shù),所以第四名也就是第四個(gè)是3,而第二個(gè)參數(shù)就是從第四名到第六名的個(gè)數(shù),6-4+1=3,所以當(dāng)然是3啦~。

知識點(diǎn)三:如果繼續(xù)完善上次的模型,order by是放在最終結(jié)果集之后,而limit是作用于order by長生的結(jié)果集,所以可以認(rèn)為,limit長生的結(jié)果集是sql查詢中最頂層的結(jié)果集。


swp 2014-04-23 23:24 發(fā)表評論
]]>
sixleaves之mysql之sql查詢分析建模對應(yīng)的group by與havinghttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206682.htmlswpswpTue, 22 Apr 2014 14:30:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206682.htmlhttp://m.shnenglu.com/sixleaves/comments/206682.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206682.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206682.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206682.html首先我們要明白,在數(shù)據(jù)庫服務(wù)器一般都是24小時(shí)運(yùn)行滴,其數(shù)據(jù)與其說是存在硬盤上,但很大部分為了提高查詢效率,坑定得放在內(nèi)存中,而我們用sql語句進(jìn)行查詢時(shí)的第一次查詢出來的結(jié)果集是where作用于內(nèi)存中這張表的結(jié)果。(Understand?)。如下圖

這個(gè)我們暫且把它稱為結(jié)果集1(result1),接著就是聚集函數(shù)(max、sum、min、count、avg)和group by還有各個(gè)列的計(jì)算結(jié)果作用于result1長生result2,圖類似,不再畫了。一般聚集函數(shù)是配合group by使用才比較有意義。這里還提到了計(jì)算結(jié)果這一動(dòng)作,其實(shí)說白了,可以把每一個(gè)字段看成變量,各個(gè)變量在一起計(jì)算的過程。這個(gè)字段即可用在where、having、group by之后,也可用在select上,但是我們應(yīng)該注意的是如果你這樣操作如下:

select a,(c -d) as dis from st where dis < 60 group by a;這是錯(cuò)誤,想想為什么,where子句作用于result0長生result1,也就是dis是屬于result1的,但是where無法作用與result1,如果要再次篩選可以用having,它就相當(dāng)于第二次的where。這就是我介紹這個(gè)模型幫助理解sql語句的重要性,同時(shí)也是你理解sql的重要知識。這個(gè)相信很多所謂的大學(xué)老師是不會講滴。

接著having字句作用與result2長生result3,圖和上圖一樣,你可以自己畫出完整的圖有利于加深理解。

這里再提一個(gè)十分重要的概念,上面有提過,就是列看成變量。這十分重要, 這樣你可像寫C語言一樣思考如何寫出簡潔有效率合適的sql語句(結(jié)合剛才那個(gè)模型),如有張表st,有score字段,該字段記錄學(xué)生成績,如果用統(tǒng)計(jì)不及格人數(shù)你可以這樣做select sum(score < 60) as num from st;這里其實(shí)運(yùn)算score < 60 和sum都是作用于result2.重要的是score < 60比較出來的是布爾值 1 或者0也就是真或者假,這個(gè)是很好利用的一點(diǎn)。
以上這兩個(gè)例子有助于更深的理解和記憶這個(gè)模型,而該模型反過來有助于你sql對語句的理解。

swp 2014-04-22 22:30 發(fā)表評論
]]>
sixleaves之a(chǎn)lter對已建立表的修改詳細(xì)語法http://m.shnenglu.com/sixleaves/archive/2014/04/22/206680.htmlswpswpTue, 22 Apr 2014 08:01:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206680.htmlhttp://m.shnenglu.com/sixleaves/comments/206680.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206680.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206680.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206680.html
增加st表:
alter table st add colname type...

修改st表:
alter table st modify colname type...

刪除st表指定列
alter table st drop colname;

更改st表指定列
alter table st change colOldName colNewName type...

自己找數(shù)據(jù)庫練習(xí)上10篇即可。



swp 2014-04-22 16:01 發(fā)表評論
]]>
sixleaves之mysql時(shí)間日期類型http://m.shnenglu.com/sixleaves/archive/2014/04/22/206679.htmlswpswpTue, 22 Apr 2014 07:52:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206679.htmlhttp://m.shnenglu.com/sixleaves/comments/206679.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206679.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206679.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206679.html
date、time、datetime、year
date 表示的范圍是1000 01 01 - 9999 12 31
time 表示的范圍是-838:59:59  - 839:59:59
datetime表示范圍就是兩者的組合
year的表示范圍是以1901為基準(zhǔn),其只用一個(gè)字節(jié)表示,一共有255中變化,所以可表示到2155年。

還有一種比較特殊的類型是timestamp,它會自動(dòng)填入日期和時(shí)間,值為當(dāng)前計(jì)算機(jī)的日期時(shí)間值。如創(chuàng)建一張表
create table test(
   mytime timestamp default CURRENT_TIMESTAMP,
   id int
);
然后插入兩條數(shù)據(jù)看看,insert into test (id) values(1),(2);
再select  * from test;就能看到timestamp的作用了。

swp 2014-04-22 15:52 發(fā)表評論
]]>
sixleaves之mysql三大數(shù)據(jù)類型之int類型http://m.shnenglu.com/sixleaves/archive/2014/04/22/206598.htmlswpswpTue, 22 Apr 2014 07:12:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206598.htmlhttp://m.shnenglu.com/sixleaves/comments/206598.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206598.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206598.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206598.html計(jì)算機(jī)專業(yè)的童鞋應(yīng)該都知道,補(bǔ)碼的知識,在這里我們簡要復(fù)習(xí)一下。
在計(jì)算機(jī)中我們用二進(jìn)制表示數(shù)字,假設(shè)是一個(gè)字節(jié),則它有8位
對于正整數(shù)表示范圍為:
0000 0000 - 0111 1111
最高位表示符號位,0表示整數(shù)

對于負(fù)數(shù)可能你回認(rèn)為就是
1000 0000 -1111 1111
表示-0 到 -127
但是這個(gè)就和正整數(shù)有了重復(fù)即-0等于0。而從0到 -127一共有128中變化,0已經(jīng)重復(fù),那么我們要做的就是消除重復(fù),多表示一種,也就是多表示-128這種變化
那么如何表示呢。我們發(fā)現(xiàn)當(dāng)他們減去-128時(shí)剛好為-1 到 -128,所以負(fù)數(shù)的補(bǔ)碼要轉(zhuǎn)換成正常的整數(shù)就是減去2 ^ N N為其位數(shù)

swp 2014-04-22 15:12 發(fā)表評論
]]>
sixleaves之mysql浮點(diǎn)類型和字符類型http://m.shnenglu.com/sixleaves/archive/2014/04/22/206677.htmlswpswpTue, 22 Apr 2014 07:11:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206677.htmlhttp://m.shnenglu.com/sixleaves/comments/206677.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/22/206677.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206677.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206677.html閱讀全文

swp 2014-04-22 15:11 發(fā)表評論
]]>
sixleaves之Mysql結(jié)合php之核心sql語句http://m.shnenglu.com/sixleaves/archive/2014/04/14/206581.htmlswpswpMon, 14 Apr 2014 07:01:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/14/206581.htmlhttp://m.shnenglu.com/sixleaves/comments/206581.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/14/206581.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206581.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206581.html2.刪
3.改
4.查

swp 2014-04-14 15:01 發(fā)表評論
]]>
sixleaves之mysql基本入門語句http://m.shnenglu.com/sixleaves/archive/2014/04/14/206580.htmlswpswpMon, 14 Apr 2014 06:56:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/14/206580.htmlhttp://m.shnenglu.com/sixleaves/comments/206580.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/14/206580.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206580.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206580.html如下:
我們要解決的問題是怎么連接數(shù)據(jù)庫(需要的接口,和各種相應(yīng)參數(shù)是什么),怎么選中對應(yīng)的庫來使用(于是有了怎么查看庫,刪除庫,創(chuàng)建庫的問題),選中庫后怎么查看對應(yīng)表(于是有了刪除表,清空表的問題,創(chuàng)建表的問題)。
1.首先在windows中我們在cmd下來連接mysql作為對數(shù)據(jù)庫的一些基本聯(lián)系,連接數(shù)據(jù)庫的命令為mysql -u用戶名 -p密碼,我的root用戶密碼為111111,所以連接語句為mysql -uroot -p111111。
2.接著是怎么選中庫,在這之前你可以查看相應(yīng)的庫SHOW DATABASES;然后選中庫用USE,假設(shè)我選中mydb庫,語法就是USE mydb;對應(yīng)的刪除庫為DROP DATABASE mydb;
3.是查看表SHOW TABLES查看所有表,查看指定表詳細(xì)內(nèi)容用SELECT語句,最基本的為SELECT * FROM shop;輸出shop表內(nèi)容。刪除表為DROP TABLE shop,
清空表為truncate tablename,如truncate shop就清空了shop表,改表名,即rename table tablename to newtablename。如果決定全部清空,truncate比delete更快些。

swp 2014-04-14 14:56 發(fā)表評論
]]>
sixleaves之Mysql安裝篇(精簡記錄)http://m.shnenglu.com/sixleaves/archive/2014/04/14/206579.htmlswpswpMon, 14 Apr 2014 06:24:00 GMThttp://m.shnenglu.com/sixleaves/archive/2014/04/14/206579.htmlhttp://m.shnenglu.com/sixleaves/comments/206579.htmlhttp://m.shnenglu.com/sixleaves/archive/2014/04/14/206579.html#Feedback0http://m.shnenglu.com/sixleaves/comments/commentRss/206579.htmlhttp://m.shnenglu.com/sixleaves/services/trackbacks/206579.htmlOn Windows:
第一步是去下載php、mysql、apache軟件,mysql軟件可以去官網(wǎng)下、如果覺得下載速度慢,用專用的下載工具,開個(gè)會員什么滴,下載還是很快滴、下載要注意的事項(xiàng)是,如果你下載的是apache2 or apache1對應(yīng)下載php軟件必須是下載VC6編譯版本的,將會被淘汰,如果是xp系統(tǒng)就裝這個(gè)吧,如果是win7及之后系統(tǒng),建議到這里下載http://www.apachelounge.com/,選擇對應(yīng)版本的vc11的話,php也要是vc11版本的,建議選擇vc11版本。
第二步,安裝mysql、安裝mysql在window下很簡單,有幾個(gè)要注意的是,我們一般在安裝時(shí)候自己配置安裝環(huán)境,在安裝時(shí)第一先選擇軟件安裝的位置,第二部選擇(mysql server datafiles)mysql數(shù)據(jù)庫數(shù)據(jù)文件存放的位置,第三要記得選擇數(shù)據(jù)庫默認(rèn)的編碼為utf8,這樣有較好的兼容性。
第三步,注意選擇時(shí)選擇開發(fā)者模式還是服務(wù)器模式幾乎沒什么差別,無非是內(nèi)存占用的多少,在選擇數(shù)據(jù)庫類型時(shí),有三個(gè)選項(xiàng),分別是包含事務(wù)型,一種是只支持事務(wù),一種是不支持事務(wù)型,我們一般選擇第一個(gè)。接著還有一個(gè)數(shù)據(jù)存放位置,這個(gè)與剛才那個(gè)不同,這個(gè)數(shù)據(jù)專門指定了事務(wù)型數(shù)據(jù)存放的位置,這種數(shù)據(jù)對應(yīng)的表叫做innoDB表。


swp 2014-04-14 14:24 發(fā)表評論
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲黄色在线| 欧美日韩三区| 亚洲国产91精品在线观看| 午夜在线成人av| 在线一区二区三区做爰视频网站| 国产日本亚洲高清| 韩国女主播一区| 伊人久久综合| 亚洲精品视频二区| 亚洲婷婷综合久久一本伊一区| 亚洲视频网在线直播| 午夜精品一区二区三区在线视| 亚洲欧美视频| 一本色道久久综合亚洲精品按摩| 亚洲美女少妇无套啪啪呻吟| 亚洲精品一二区| 亚洲一区二区三区在线看| 欧美诱惑福利视频| 美女精品自拍一二三四| 亚洲国产日韩欧美在线图片| 艳女tv在线观看国产一区| 中文无字幕一区二区三区| 欧美中文在线免费| 欧美精品1区| 国产欧美日韩视频一区二区| 136国产福利精品导航网址应用| 99视频精品在线| 久久福利视频导航| 亚洲国产精品尤物yw在线观看| 一区二区三区蜜桃网| 久久国产精品久久久久久| 欧美极品aⅴ影院| 国产手机视频精品| 一区二区三区波多野结衣在线观看| 欧美一区免费| 在线视频日本亚洲性| 老司机精品久久| 国产免费观看久久黄| 99国产精品99久久久久久| 久久精品五月| 国产精品99久久久久久久女警 | 午夜欧美精品| 欧美日韩视频在线一区二区| 影音先锋日韩精品| 亚洲欧美一区二区精品久久久| 亚洲风情在线资源站| 欧美影院成年免费版| 国产精品国产亚洲精品看不卡15| 亚洲国产精品高清久久久| 久久精品首页| 欧美一区二区三区视频免费| 国产精品久久网| 亚洲无吗在线| 日韩亚洲欧美在线观看| 欧美国产免费| 亚洲国产高清一区| 美女在线一区二区| 久久久精彩视频| 韩国女主播一区| 久久天堂国产精品| 欧美在线视频一区二区三区| 国产欧美一区二区色老头| 午夜影院日韩| 性久久久久久久久久久久| 国产欧美日韩精品在线| 欧美一级黄色网| 亚洲综合精品自拍| 国产精品xnxxcom| 99这里有精品| 亚洲国产成人精品久久久国产成人一区 | 国产九九精品| 午夜日韩av| 亚洲一区不卡| 国产视频在线观看一区二区| 久久国产精品久久精品国产| 性高湖久久久久久久久| 国内视频一区| 欧美激情日韩| 欧美片第1页综合| 亚洲在线观看免费视频| 亚洲午夜一级| 韩国一区电影| 亚洲高清自拍| 欧美日韩精品伦理作品在线免费观看| 夜夜狂射影院欧美极品| 宅男噜噜噜66一区二区66| 国产精品久久久久毛片大屁完整版 | 欧美在线二区| 尤物网精品视频| 欧美激情一区二区| 欧美精品日日鲁夜夜添| 亚洲视频在线观看免费| 亚洲欧美成人一区二区三区| 国产欧美一区二区精品性| 免费成人在线视频网站| 欧美激情亚洲综合一区| 午夜精品影院| 蜜桃精品一区二区三区| 在线一区二区日韩| 久久久精品欧美丰满| 一本色道久久精品| 性欧美超级视频| 99re6这里只有精品| 午夜精品久久久久久99热软件| 亚洲国产欧美日韩精品| 亚洲午夜激情在线| 亚洲日本成人网| 亚洲欧美日韩网| 日韩午夜免费| 久久精品在这里| 亚洲少妇一区| 久久视频在线看| 亚洲女性裸体视频| 久久高清免费观看| 亚洲午夜免费视频| 美女国产一区| 久久精品一二三| 欧美日韩精品一区二区在线播放 | 亚洲精品中文字| 久久久www成人免费精品| 久久成人国产精品| 国产美女在线精品免费观看| 亚洲国产一区二区精品专区| 国产日韩在线视频| 日韩视频在线一区二区三区| 在线观看国产一区二区| 亚洲免费在线观看| 洋洋av久久久久久久一区| 久久久久高清| 久久九九国产精品| 国产精品一区在线观看你懂的| 亚洲日本无吗高清不卡| 亚洲国产小视频| 久久亚洲春色中文字幕久久久| 亚洲主播在线播放| 欧美日韩精品二区第二页| 亚洲欧洲精品一区二区精品久久久| 国产综合色在线| 欧美一级理论片| 久久不见久久见免费视频1| 国产精品欧美一区二区三区奶水| 日韩一级精品视频在线观看| 一本色道88久久加勒比精品| 欧美激情女人20p| 91久久精品一区二区别| 亚洲人体影院| 欧美精品 国产精品| 亚洲精品一二三| 亚洲一区久久久| 国产精品日日做人人爱| 亚洲欧美一区二区在线观看| 欧美一区二区黄色| 国产日产欧美精品| 亚洲欧美国产一区二区三区| 欧美在线一级va免费观看| 国产亚洲午夜| 久久综合九色欧美综合狠狠| 免费视频久久| 最新成人在线| 欧美激情无毛| 亚洲在线成人精品| 久久精品视频va| 影音先锋欧美精品| 久久伊人免费视频| 亚洲伦理在线免费看| 99一区二区| 国产精品一二一区| 久久久亚洲精品一区二区三区 | 欧美成年人视频网站欧美| 亚洲国产合集| 欧美激情久久久| 国产精品99久久久久久久久久久久| 欧美一区二区三区免费看| 亚洲大胆在线| 欧美日韩一区二区视频在线 | 久久久精品国产免费观看同学 | 亚洲国产精品一区制服丝袜| 亚洲视频欧美在线| 激情成人亚洲| 欧美日韩日本网| 老鸭窝毛片一区二区三区| 欧美破处大片在线视频| 小处雏高清一区二区三区| 亚洲福利视频一区| 亚洲最新在线视频| 狠狠色狠狠色综合人人| 欧美日韩视频一区二区| 久久综合中文字幕| 欧美精品一区二区三| 亚洲一区二区高清视频| 亚洲丰满在线| 欧美一区二区三区免费视| 亚洲精品国产精品乱码不99按摩 | 日韩一级精品视频在线观看| 国产精品日韩欧美| 欧美激情第五页| 裸体一区二区| 久久久国产一区二区| 性欧美大战久久久久久久免费观看| 亚洲乱码日产精品bd|