2016-11-25-MYSQL-2

來源:互聯網
上載者:User

標籤:unique   關係   str   文本   刪除   tiny   字串類型   alt   creat   

 

         字串類型

                   char :255字    

                            char(字元數)

                            效率高

 

                   varchar    :(GBK<=32767字元  |  UTF8<=21845字元)

                            varchar(字元數)

                            儲存較為靈活

 

                   text  :長度長

                            tinytext,text,mediumtext,longtext

                            不需要指定長度,用於文本地區和自由輸入地區的儲存

 

                   enum        :枚舉類型,類似單選。只能插入選項中的選項值。

                            enum(‘值1‘,‘值2‘)

                            儲存為按編號(左至右)儲存,也就是第一個選項儲存在記憶體中為1,如此類推。

 

                   set    :集合類型,類似多選。只能插入選項中的選項值

                            set(‘值1‘,‘值2‘,‘值3‘,...)

                            插入值時順序不限,儲存與enum一樣按位置編號儲存。

                            特別注意:儲存——

                            e.g.  set("值1","值2","值3","值4","值5","值6")

                                           1      2     4  8     16    32

                            儲存的時候是按照該方式的位置編號儲存。

 

                   binary | varbinary | blob

                            二進位文本類型,儲存使用二進位形式。一般不使用    

 

                  

         列屬性              定義列(欄位)的屬性

                  

                   null  |  not null

                            :定義欄位能否為空白(預設為null)

                  

                   default

                            :給欄位一個預設值,當欄位沒有寫入值時使用預設值填充。一般配合not null使用。

                            此時在寫入值時可以直接寫入default,不用引號包裹。

 

                   primary key

                            主鍵,為欄位或欄位組合(多個欄位組合為一個主鍵)設定為主鍵,一般設定為能起到標識的欄位為主鍵,一個表格只能有一個主鍵。

                            在使用時很少使用組合主鍵,一般會另設一個與表格欄位無任何商務邏輯的欄位,並把該欄位設定為主鍵。

                            主鍵欄位不能有重複值,不可為空。

                            格式有  :欄位  primary key

                                     :primary key(欄位名)    定義欄位組時只能使用該格式

 

                   unique key

                            唯一鍵,定義後該欄位值不可重複,可以為空白值,可以定義多個(同一表格)

                           

                   auto_increment

                            自增長,被定義欄位再每次插入行記錄時自動寫入加1後的值。

                            注意  :使用欄位必須為整型,必須存在索引。

                            e.g.  (欄位 auto_increment

                                     )auto_increment 初始數值;

                                     預設為從0開始,當需要指定開始數值時,要在表格建立語句後加上auto_increment 初始數值 該句。

                            注意  :開啟自增長後依然可以手動寫入值,並且每次自增長都會以前邊出現的最大值為增長基,也就是說原本從0開始,增到1之後手動插入一行值為200的資料後,下次插入行將會從201開始計,並且即使刪除表格所有資料,並不會清空該增長機制(增長基不變)。重設自增長語句:truncate 表名。

 

                   comment

                            列注釋,為列進行注釋,使用show create table 表名後,注釋內容會顯示在表屬性之中。

                                    

         索引

                   每個表都會內建一些經過排序過的表格,在查詢時將使用這些表格式查詢。索引表格的機制將根據儲存引擎不同而不同。

                   能提高查詢效率,降低增刪改速度,佔用一定的儲存空間。

 

        

         實體與實體的關係

                   一對一  :設計表格時,兩個實體表格存在相同的主鍵欄位,並且主索引值為一一對應。

                   一對多  :設計表格時,兩個實體表格存在著一種關係——一個表格中的主索引值對應另一個表格的多個非主索引值。

                   多對多  :設計表格時,三個實體表格存在著,兩個實體表格的主索引值分別通過第三個表格聯絡起來。

 

         外鍵

                   當前只有innoDB儲存引擎才支援,項目中往往不用外鍵,而是借用其設計思想

                   alter table 表名 add foreign key 外鍵定義

                   foreign key 外鍵

                當一個表格的主索引值對應另一個表格的欄位值(非主鍵)時,那麼主鍵欄位的表被稱為父表,另一個被稱為子表(外鍵)。

                   也就是說,外鍵的值依賴於主鍵的值。插入外索引值必須在主鍵有與之對應的資料。

                   格式  :foreign key(外鍵欄位) references 主鍵欄位表名(主鍵欄位)。

        

                   主表更新

                            on update[級聯操作]  |  主表更新

                            on delete[級聯操作]  |  主表刪除

                                     級聯操作:1.cascade | 同步操作,當主表記錄刪除或更新的時候,從表也進行相應的刪除或更新

                                                 2.set null | 當主表記錄刪除或更新的時候,從表的外鍵欄位設定為空白

                                                 3.restrict | 拒絕主表的更新或刪除。

                   刪除外鍵

                            alter table 表名 drop foreign key 外鍵名

                            此處外鍵名不是欄位名,建立外鍵的時候若沒定義外鍵名,那麼系統會自動分配一個外鍵名。(查看方法show create table)

  儲存引擎

      

      引擎的選擇主要還是要注意其執行效率的快慢。

2016-11-25-MYSQL-2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.