<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                **目錄** [TOC] # 1 Character Set與Collation 任何資訊技術在處理資料的時候,如果只是單純的數值和運算,那就不會有太復雜的問題;如果處理的資料是文字的話,就會面臨世界上各種不同語言的問題。以資料庫來說,它必須正確的儲存各種不同語言的文字,也就是一個資料庫中,有可能同時儲存繁體和簡體中文、法文等不同語言的文字。 電腦在處理文字資料大多是使用一個「編碼」來表示某一個字,對MySQL資料庫來說,為了要處理不同語言的文字,它使用一套編碼來處理一種語言的文字,稱為「字元集、character set」。以英文字母來說,每一個字母都有一個編碼,例如A=65、B=66、C=67。 MySQL可以依照你的需要為資料庫設定不同的字元集: ![](http://box.kancloud.cn/2015-09-15_55f7e7fc6b63c.jpg) Collation指的是在一個字元集中,所有字元的大小排序規則。以英文字母來說,我們會依照A到Z的順序當成大小的順序,小寫的字母也是一樣的。這樣的大小順序是依照編碼的大小來決定的,MySQL把它稱為「binary collation」。 可是在真實的世界中,大小順序卻不是這么單純,有時候你會把大小寫的英文字母當成是一樣的,例如大寫的A和小寫的a。在這種情況下,大寫和小寫的字母會被當成是一樣的大小,然后再依照編碼來決定,例如大寫A的編碼比小寫a的編碼小。MySQL把這樣的方式稱為「case-insensitive collation」。 ![](http://box.kancloud.cn/2015-09-15_55f7e7fcddcec.jpg) 在決定大小順序的時候,如果只有考慮字母大小寫因素的話,那還不算是太復雜的。如果再考慮各種不同語言特性的話,在決定大小順序的時候就會變得很復雜。以繁體中文來說,它是沒有區分大小寫的,而且一個中文字會包含一個以上的位元組,其它的語言也都會有類似的情況。 ## 1.1 Character Set MySQL資料庫把各種不同字元集的編碼資料紀錄在系統資料庫中,你可以使用下列的指令查詢MySQL資料庫支援的字元集資訊: ~~~ SHOW CHARACTER SET ~~~ 執行上列的查詢指令后可以得到下列的結果: ![](http://box.kancloud.cn/2015-09-15_55f7e7fd8170e.jpg) ## 1.2 COLLATION MySQL除了支援各種不同的字元集,讓資料庫可以儲存不同語言的文字外,每一種字元集都可以依照實際需要,搭配不同的Collation設定。你可以使用下列的指令查詢MySQL支援的Collation資訊: ~~~ SHOW COLLATION ~~~ 執行上列的查詢指令后可以得到下列的結果: ![](http://box.kancloud.cn/2015-09-15_55f7e8031669a.jpg) 你也可以使用類似「WHERE」子句中的條件設定,查詢某一種字元集支援的Collation資訊: ![](http://box.kancloud.cn/2015-09-15_55f7e8036e2f2.jpg) 你可以從Collation名稱分辨出排序的準則: ![](http://box.kancloud.cn/2015-09-15_55f7e8043ad86.jpg) # 2 資料庫 資料庫(Database)是用來保存各種資料元件的容器,在安裝好MySQL資料庫伺服器軟體后,就可以依照自己的需求建立資料庫,MySQL對于資料庫的數量并沒有限制: ![](http://box.kancloud.cn/2015-09-15_55f7e8099f234.jpg) 每一個MySQL資料庫伺服器軟體都會使用一個儲存資料的資料夾,稱為「data directory」。在這個資料夾下,每建立一個資料庫,MySQL都會建立一個資料夾,稱為「資料庫資料夾、database directory」,一個資料庫包含的檔案就會放在各自的資料庫資料夾中: ![](http://box.kancloud.cn/2015-09-15_55f7e809f249e.jpg) 注:使用`SHOW VARIABLES LIKE 'datadir'`敘述,可以查詢MySQL資料庫伺服器使用的資料庫資料夾。 因為一個資料庫會是檔案系統中的一個資料夾,所以你要特別留意下列的特性: * 雖然MySQL對于資料庫的數量并沒有限制,可是你要注意MySQL資料庫伺服器軟體所安裝的作業系統,它對于資料夾與檔案大小的限制。 * MySQL使用資料庫名稱作為資料庫資料夾的名稱,所以你要特別注意大小寫的問題。在資料夾名稱不分大小寫的作業系統(例如Windows),資料庫名稱「MyDB」和「mydb」是一樣的;可是在資料夾名稱會區分大小寫的作業系統(例如Linux),資料庫名稱「MyDB」和「mydb」就不一樣了。 * 每一個資料庫資料夾中都有一個特別的檔案,檔案名稱是「db.opt」,這個檔案的內容是資料庫的字元集與collation設定。 注:MySQL把「DATABASE」與「SCHEMA」當成是一樣的,所有你在后續使用的指令,都可以把「DATABASE」換成「SCHEMA」。 ## 2.1 建立資料庫 下列是建立資料庫的語法: ![](http://box.kancloud.cn/2015-09-15_55f7e80a7237c.jpg) 在你執行新增資料庫的指令以后,MySQL會使用你指定的資料庫名稱建立一個資料庫資料夾: ![](http://box.kancloud.cn/2015-09-15_55f7e80ae8ca2.jpg) 如果你指定的資料庫名稱已經存在了,MySQL會產生一個錯誤訊息: ![](http://box.kancloud.cn/2015-09-15_55f7e8103f279.jpg) 為了避免上列的錯誤,你可以在建立資料庫的時候加入「IF NOT EXISTS」,如果你指定的資料庫名稱不存在,同樣會建立新的資料庫;如果已經存在,MySQL只會產生警告訊息: ![](http://box.kancloud.cn/2015-09-15_55f7e81099822.jpg) 你可以在建立資料庫的時候指定資料庫預設的字元集與collation,如果沒有指定的話,就會使用MySQL伺服器預設的設定: ![](http://box.kancloud.cn/2015-09-15_55f7e810eac21.jpg) 注:如果沒有修改過MySQL設定的話,預設的字元集是「latin1」,Collation是「latin1_swedish_ci」。 建立資料庫的時候指定字元集與collation會有一些不同的組合,例如下列只有指定字元集的話,MySQL會使用你指定字元集的預設collation: ![](http://box.kancloud.cn/2015-09-15_55f7e8114f51f.jpg) 另外一種是只有使用「COLLATE」指定collation,MySQL會使用你指定collation所屬的字元集: ![](http://box.kancloud.cn/2015-09-15_55f7e811acd33.jpg) 注:建立資料庫的時候,不管你有沒有指定,資料庫都會有預設的字元集與collation。以后在這個資料庫建立的表格,都會使用資料庫預設的字元集與collation。 ## 2.2 修改資料庫 建立資料庫以后,你唯一能執行的修改是資料庫預設的字元集與collation。下列是修改資料庫設定的語法: ![](http://box.kancloud.cn/2015-09-15_55f7e81201953.jpg) 下列的敘述執行修改資料庫預設的字元集與collation。在修改的時候,如果只有指定字元或只有指定collation的話,設定的規則與建立資料庫一樣: ![](http://box.kancloud.cn/2015-09-15_55f7e81201953.jpg) 注:修改資料庫的字元集是或Collation,并不會影響原來已經存在的表格。 ## 2.3 刪除資料庫 下列是刪除資料庫的語法: ![](http://box.kancloud.cn/2015-09-15_55f7e81201953.jpg) 如果在刪除資料庫的敘述中指定的資料庫名稱不存在,MySQL會產生一個錯誤訊息: ![](http://box.kancloud.cn/2015-09-15_55f7e81818fcf.jpg) 為了避免上列的錯誤,你可以在刪除資料庫的時候,加入「IF EXISTS」指令,如果你指定的資料庫名稱存在,同樣會刪除指定的資料庫;如果不存在,MySQL只會產生警告訊息: ![](http://box.kancloud.cn/2015-09-15_55f7e818617e2.jpg) 注:執行刪除資料庫的敘述,MySQL不會再跟你確認是否刪除資料庫,而是直接刪除;刪除資料庫以后,表示資料庫資料夾也會從檔案系統中刪除,除非你另外還有這個資料庫的備份,否則原來在資料庫中的所有資料就全部消失了。 ## 2.4 取得資料庫資訊 MySQL提供「SHOW」指定讓你取得跟資料庫相關的資訊,執行下列的指令可以取得MySQL伺服器中所有資料庫的名稱: ![](http://box.kancloud.cn/2015-09-15_55f7e818b9d23.jpg) 你也可以執行下列的指令取得建立資料庫的敘述: ![](http://box.kancloud.cn/2015-09-15_55f7e81e15fc0.jpg) MySQL資料庫伺服器有一個很重要的資料庫,名稱為「information_schema」,這個資料庫通常會把它稱為「系統資料庫」,資料庫中儲存伺服器所有重要的資訊。跟資料庫相關的資訊儲存在「SCHEMATA」表格中,所以你可以使用查詢敘述取得所有資料庫的相關資訊: ![](http://box.kancloud.cn/2015-09-15_55f7e81e63dd6.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看