MySQL基本資料型別2(一站到底,從簡到難)

2021-08-20 13:17:03 字數 2741 閱讀 9552

我們可以看到資料型別是可以分為這幾大類的

數值型別

文字,二進位制型別

時間日期

string型別

下面我們就從數值型別為大家講解;

1,數值型別

在學習數值型別時我們應關注些什麼呢?根據經驗關注點應該在可取值的範圍吧,也就是最小值和最大值,我會在下表中為大家

列出(1)

有興趣的朋友可以做一做邊界值的測試;

這裡有一點要特殊說明,算是給大家的建議盡量不使用unsigned,因為可能帶來一些意想不到的效果(主要體現在做運算上)。另外,對於int型別可能存放不下的資料,int unsigned同樣可能存放不下,與其如此,還不如設計時,將int型別提公升為bigint型別。

(2)bit[(m)] 位欄位型別;m表示每個值的位數,範圍從1到64。如果m被忽略,預設為1

注意;bit欄位在顯示時,是按照ascii碼對應的值顯示。

下面我實際操作一下來驗證這個結論

大家知道a的ascii碼對應的值就是65,所以說這個結論經驗證實是正確的。

那麼問題來了,我們什麼時候用這種型別合適呢?

其實是這樣的,如果我們有這樣的值,只存放0或1,這時可以定義bit(1)。這樣可以節省空間,並且在一定程度上檢驗錯誤,例如如果插入2的話就會超過範圍,並報錯。

(3)小數

1》float

float[(m, d)][unsigned] m指定顯示長度,d指定小數字數,占用空間4個位元組

小數:float(4,2)表示的範圍是-99.99 ~ 99.99,mysql在儲存值時會進行四捨五入。

如果定義的是float(4,2) unsigned 這時,因為把它指定為無符號的數,範圍是 0 ~ 99.99

2》decimal

decimal(m, d) [unsigned] 定點數m指定長度,d表示小數點的位數

decimal(5,2) 表示的範圍是 -999.99 ~ 999.99 decimal(5,2) unsigned 表示的範圍 0 ~ 999.99

建議:如果希望小數的精度高,推薦使用decimal。下面可以通過事實來證明了啊

4字串char(l): 固定長度字串,l是可以儲存的長度,單位為字元,最大長度值可以為255

char(l) 表示可以存放l個字元,可以是字母或漢字,但是不能超過l個。 最多只能是255

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位元組)。

注意,這裡有乙個現象我覺的大家有必要思考  為神魔上面的成功了,而下面的沒有成功呢。

那是因為,mysql規定,一行記錄的長度不能超過65535,而我們的大 小4(int)+21844(varchar)*3+3>65535

5日期和時間型別

datetime 時間日期格式 'yyyy-mm-dd hh:ii:ss' 表示範圍從1000到9999,占用八字節

date:日期 'yyyy-mm-dd',占用三位元組

timestamp:時間戳,從2023年開始的 yyyy-mm-dd hh:ii:ss 格式和datetime完全一致,占用四位元組

新增資料時,時間戳自動補上當前時間

更新資料

6 列舉和set

有乙個調查表votes,需要調查人的喜好。

比如(登山,游泳,籃球,武術)中去選擇(可以多選)這時可以考慮set集合型別。

(男,女)[單選]這時可以考慮列舉型別。

注意;select * from votes where hobby='登山';不能查詢出所有,愛好為登山的人,應使用find_ in_ set:

select * from votes where find_in_set('登山', hobby);

資料型別呢我們就學習到這裡了,下一次我準備了表的約束,把它說給你聽

mysql的多表查詢(2)(一站到底,從簡到難)

還是用前面的三個表 一,多行子查詢 返回多行記錄的子查詢 1.使用關鍵字in 例如 顯示同乙個宿舍樓 1號宿舍樓 的同學,注意這裡用in 而不用 因為where後符合條件的id有多個值,in 說明滿足其中乙個就可以了 2,在多行子查詢中使用all操作符 顯示數學成績比測控2班的所有同學的成績高的同學...

mysql 基本資料型別 MySQL基本資料型別

char 和 varchar 型別 char 型別用於定長字串,並且必須在圓括號內用乙個大小修飾符來定義。這個大小修飾符的範圍從 0 255。比指定長度大的值將被截短,而比指定長度小的值將會用空格作填補。char 型別可以使用 binary 修飾符。當用於比較運算時,這個修飾符使 char 以二進位...

MySql 基本資料型別

型別 大小描述 char length length位元組 定長字段,長度為0 255個位元組 varchar length string長度 1位元組 變長字段,在mysql5.03以前,長度為0 255個位元組,在5.0.3以後,最大長度為65535位元組。乙個utf8字元佔3個位元組 乙個gb...