MySQL服務 - MySQL列類型、SQL模式、資料字典

來源:互聯網
上載者:User

標籤:

一、MySQL列類型的作用:

      列類型可以簡單理解為用來對使用者往列種儲存資料時做某種範圍"限定",它可以定義資料的有效值(字元、數字等)、所能佔據的最大儲存空間、字元長度(定長或變長)、是否能夠被索引、如何被索引及如何排序等。在關係型資料庫系統中,為了實現資料的易於管理,必須為表欄位(列)指定對應的列類型。MySQL的列類型可以分為4類:字元型、數值型、日期及時間型、自有類型。

1.字元型:

      字元型限定值只能為字元,MySQL的字元類型如下:

類型            最大字元長度         名稱及特性char            255                定長字串,區分大小寫varchar         65535              變長字串,區分大小寫binary          255                二進位定長字串,區分大小寫varbinary       65535              二進位變長字串,區分大小寫tinytext        255                text類型是文本大Object Storage Service,就是說它儲存的並不是資料本身,而是一個指標,指向資料的儲存所在位置;text不區分大小寫text            65535mediumtext      16777215longtext        4294967295tinyblob        255                blob類型是二進位大Object Storage Service,它是text的二進位形式,區分大小寫blob            65535mediumblob      16777215longblob        4294967295
2.數值型:

      數值型限定只能儲存數值類資料,MySQL的數實值型別如下:

類型            名稱              取值範圍(有符號,無符號)TINYINT         最小整數      -128到127,0到255SMALLINT        小整數            -32768到32767,0到65535MEDIUMINT       中整數            -8388607到8388607,0到16777215INT             整數        -2147483647到2147483647,0到4294967295BIGINT          大整數            -9223372036854775807到9223372036854775807,0到18446744073709551615decimal         十進位            FLOAT           單精確度浮點DOUBAL          雙精確度浮點
3.日期及時間型:

      日期時間型用來記錄日期或時間,MySQL的日期時間類型如下:

類型                名稱                取值範圍
DATE 日期 ‘1000-01-01‘到‘9999-12-31‘TIME 時間 ‘-838:59:59‘到‘838:59:59‘DATETIME 日期時間 ‘1000-01-01 00:00:00‘到‘9999-12-31 23:59:59‘TIMESTAMP 時間戳記         ‘1970-01-01 00:00:00‘到’2037年某時‘YEAR 年 4位格式:1901到2155,2位格式:1970-2069(70-69),或:0000
4.自有類型:

      自有類型是MySQL內建的類型,有兩種:

SET:字串集合,事先給出多個元素(最多64個)供使用者選擇,使用者可以選多個元素填入
ENUM:枚舉,事先給出多個元素(最多65536個)供使用者選擇,使用者只能選一個元素填入
二、MySQL的SQL模式:

      MySQL伺服器可以以不同的SQL模式來操作,並且可以為不同用戶端應用不同模式。這樣每個應用程式可以根據自己的需求來定製伺服器的操作模式。這類模式定義了MySQL應支援的SQL文法,以及應該在資料上執行何種確認檢查。這樣,就能在眾多不同的環境下、與其他資料庫伺服器一起更容易地使用MySQL。MySQL常用的有三種SQL模式,傳統模式、strict 模式和ANSI模式。MySQL的SQL模式預設為空白,該模式為非strict 模式。

      可以通過如下命令查看MySQL當前的SQL模式:

mysql> SHOW GLOBAL VARIABLES LIKE ‘sql_mode‘;mysql> SELECT @@sql_mode;

       可以通過如下命令設定MySQL的SQL模式:

mysql> SET [GLOBAL|SESSION] sql_mode=‘modes‘;

      或啟動MySQL時指定SQL模式:

shell> mysqld --sql-mode="modes"
1.TRADITIONAL,傳統模式:

      該模式的簡單描述是當在列中插入不正確的值時“給出錯誤而不是警告”。注釋:一旦發現錯誤立即放棄INSERT/UPDATE。如果你使用非事務儲存引擎,那麼出現錯誤前進行的資料更改不會“復原”,會導致結果更新“只進行了一部分”。

mysql> SET [GLOBAL|SESSION] sql_mode=‘TRADITIONAL‘;
2.STRICT,strict 模式:

      如果不能將給定的值插入到表中,則放棄該語句。strict 模式具有兩種:STRICT_TRANS_TABLES和STRICT_ALL_TABLES。STRICT_TRANS_TABLES對支援事務的表實行strict 模式,STRICT_ALL_TALBES在所有表執行strict 模式。

mysql> SET [GLOBAL|SESSION] sql_mode=‘STRICT_TRANS_TABLES‘;mysql> SET [GLOBAL|SESSION] sql_mode=‘STRICT_ALL_TABLES‘;
3.ANSI模式:

      更改操作的文法和行為,使其更適合標準的SQL。

三、資料字典:

      資料字典就類似於系統編目或花名冊(和目錄不太相同),它儲存資料庫伺服器上的中繼資料資訊(資料庫的整體屬性資訊)。中繼資料資訊包括:關係(表)的名字、每個關係的各欄位的名字、各欄位的資料類型和長度約束、每個關係上的視圖的名字及視圖的定義、授權使用者的名字、使用者的授權和賬戶資訊、統計類的資料:、每個關係欄位的個數、每個關係中的行數、每個關係的儲存方法;

     在mysql上儲存中繼資料的資料庫有:mysql庫、infomation_schema庫、和performance_schema庫,performance_schema庫是一個虛擬庫,類似於Linux的/proc等偽檔案系統。

 

MySQL服務 - MySQL列類型、SQL模式、資料字典

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.