MySQL基礎類型

數據類型分類

在這裏插入圖片描述

數值類型

在這裏插入圖片描述

tinyint類型

在這裏插入圖片描述

  • 在MySQL中,整型可以指定是有符號的和無符號的,默認是有符號的。tinyint類型有符號範圍:-127~128,是的,上述操作的後兩條插入的age值超過了類型範圍。所以結果是這樣的:
    在這裏插入圖片描述
  • 可以通過UNSIGNED來說明某個字段是無符號的
    在這裏插入圖片描述

float

float[(m, d)] [unsigned] : M指定顯示長度,d指定小數位數,佔用空間4個字節。
在這裏插入圖片描述

decimal

decimal(m, d) [unsigned] : 定點數m指定長度,d表示小數點的位數。
decimal(5,2) unsigned 表示的範圍 0 ~ 999.99
在這裏插入圖片描述
deciamal的精度更高,如果實際需求對精度要求較高應該選擇deciamal。
decimal和float很像,float表示的精度大約是7位。
decimal整數最大位數m爲65。支持小數最大位數d是30。如果d被省略,默認爲0.如果m被省略,默認是10。

字符串類型

char

char(L): 固定長度字符串,L是可以存儲的長度,單位爲字符,最大長度值可以爲255。
在這裏插入圖片描述
char(2) 表示可以存放兩個字符,可以是字母或漢字,但是不能超過2個,會被截斷。

varchar

varchar(L): 可變長度字符串,L表示字符長度,最大長度65535個字節。
在這裏插入圖片描述
關於varchar(len),len到底是多大,這個len值,和表的編碼密切相關:

  • varchar長度可以指定爲0到65535之間的值,但是有1 - 3 個字節用於記錄數據大小,所以說有效字節數是65532。
  • 當我們的表的編碼是utf8時,varchar(n)的參數n最大值是65532/3=21844[因爲utf中,一個字符佔用3個字節],如果編碼是gbk,varchar(n)的參數n最大是65532/2=32766(因爲gbk中,一個字符佔用2字節)。
    在這裏插入圖片描述

char、varchar、text三種類型對比

  1. char長度固定, 即每條數據佔用等長字節空間;適合用在身份證號碼、手機號碼等定。
  2. varchar可變長度,可以設置最大長度;適合用在長度可變的屬性。
  3. text不設置長度, 當不知道屬性的最大長度時,適合用text。

按照查詢速度: char最快, varchar次之,text最慢。

日期和時間類型

常用的日期有如下三個:
datetime 時間日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示範圍從1000到9999,佔用八字節。
date:日期 ‘yyyy-mm-dd’,佔用三字節。
timestamp:時間戳,從1970年開始的 yyyy-mm-dd HH:ii:ss格式和datetime完全一致,佔用四字節。
在這裏插入圖片描述
添加數據時,時間戳自動補上當前時間。
更新數據時,時間戳自動更新當前時間。
在這裏插入圖片描述

enum和set

  • enum:枚舉,“單選”類型;
    enum(‘選項1’,‘選項2’,‘選項3’,…);
    該設定只是提供了若干個選項的值,最終一個單元格中,實際只存儲了其中一個值;而且出於效率考慮,這些值實際存儲的是“數字”,因爲這些選項的每個選項值依次對應如下數字:1,2,3,…最多65535個;當我們添加枚舉值時,也可以添加對應的數字編號。
  • set:集合,“多選”類型;
    set(‘選項值1’,‘選項值2’,‘選項值3’, …);
    該設定只是提供了若干個選項的值,最終一個單元格中,設計可存儲了其中任意多個值;而且出於效率考慮,這些值實際存儲的是“數字”,因爲這些選項的每個選項值依次對應如下數字:1,2,4,8,16,32,… 最多64個。

說明:不建議在添加枚舉值,集合值的時候採用數字的方式,因爲不利於閱讀。

有一個調查表votes,需要調查人的喜好, 比如(登山,游泳,籃球,武術)中去選擇(可以多選),(男,女)[單選]
在這裏插入圖片描述
有如下數據,想查找所有喜歡游泳的人,使用如下查詢語句:
在這裏插入圖片描述
不能查詢出所有,愛好有游泳的人。集合查詢使用find_ in_ set函數:

find_in_set(sub,str_list) :如果 sub 在 str_list 中,則返回下標;如果不在,返回0; str_list 用逗
號分隔的字符串。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章