MySQL基礎篇 03 資料型別 列型別

2021-10-07 14:39:37 字數 2779 閱讀 2618

字串型別

時間日期型別

mysql記錄的長度

數值型別資料:都是數值!系統將數值型別分為整數型別和小數型別

tinyint:迷你整型,使用1個位元組儲存:常用

smallint:小整型,使用2個位元組儲存

mediumint:中整型,使用3個位元組儲存

int/integer:標準整型,使用4個位元組儲存:常用

bigint:大整型,使用8個位元組儲存

插入資料:只能插入整型,只能插入範圍內的整型:其實使用字串的數字形式也是可以的:『5』

如果插入的資料是小數或字串形式的小數,那麼系統會先進行四捨五入轉換為整型後在儲存資料表中

插入資料超過了範圍:嚴格模式與非嚴格模式:嚴格模式會報錯;非嚴格模式不會報錯,但資料會不正確

檢視表結果發現,每個欄位的資料型別後面都會自帶乙個小括號,裡面指定數字

顯示寬度:沒有特別的含義,只是預設的告訴使用者可以顯示的形式而已:實際上使用者可以控制的,這種控制不會改變資料本身的大小

顯示寬度的意義:在於當資料不夠顯示寬度的時候,會自動讓資料變成對應的數顯寬度:通常需要搭配乙個前導0來增加寬度,不改變值大小:zerofill(零填充):零填充會導致資料型別自動變為無符號:因為如果在負數前面新增前導0,系統會認為是乙個算術運算,而不是乙個值:例如0-123

零填充的意義:保證資料的格式

float精度

1. 數學領域中的精度一般指有效數字,是十進位制位數,而計算機中的精度通常是指 二進位制位數。

2. 乙個前提:進製轉換不會導致精度變化

3. 浮點數的精度決定於尾數部分,而尾數佔了23個二進位制位,2^23轉化為十進位制數為 8388608個十進位制位,因此有一種說法是float的十進位制精度為 7 位,但是由於其並不能表示所有7位十進位制數(0000000~9999999),因此也有種說法是其精度為7位。

4. 尾數表示範圍:2^23 = 8388608

實際儲存的資料

char(4)

varchar(4)

char占用位元組

varchar占用位元組

abcd

abcd

abcd

4 * 3 = 12

4 * 3 + 1 = 13aa

a4 * 3 = 12

1* 3 + 1 = 4

abcd e××

資料超過長度

資料超過長度

alter table my_set change hpbby bobby set('籃球', '足球', '桌球', '羽毛球', '排球', '撞球', '網球',  '棒球');
-- 插入資料: 時間日期格式的資料採用字串形式

)charset utf8; -- utf8字符集編碼

name varchar(21844) -- 分配21844 * 3 + 2 = 63332 + 2 = 65534 < 65535

)charset utf8; -- utf8字符集編碼

name varchar(32766) -- 系統需要分配32766*2+2=65532+2 = 65534 bytes

)charset gbk; -- gbk字符集

mysql基礎篇 資料型別(列屬性)

資料型別 mysql對資料進行統一的分類,統一的進行管理,更好的利用有限的空間。分三大類 數值型別 字串型別和時間日期型別。系統將數值型分為整數型和小數型。在sql中因為更多要考慮如何節省磁碟空間,所以系統將整型又細分成了5類。建立一張整型表 int m m表示顯示寬度,從左到右填充空格。搭配zer...

Python基礎 03資料型別

2.相關函式 3.資料型別轉換函式 4.整數 int 5.浮點數 6.布林值 數字型別 bool 布林型別 非數字型別 tuple 元組 list 列表 dict 字典 set 集合 不可變型別 特點 這些資料都是不可以直接修改的,如果在修改或賦值時,都會開闢乙個新空間 可變型別 特點 這個些資料型...

MySQL 教程 03 資料型別

取值範圍如果加了 unsigned,則最大值翻倍,如 tinyint unsigned 的取值範圍為 0 256 設乙個字段定義為 float 5,3 如果插入乙個數 123.45678,實際資料庫裡存的是123.457,但總個數還是以實際為準,即 6 位。浮點型在資料庫中存放的是近似值,而定點型別...