MySQL資料型別筆記

2022-09-07 12:39:13 字數 2157 閱讀 9374

型別(寬度):指的是查詢的顯示寬度,而非儲存寬度,儲存寬度隨型別而定,不寫寬度的時候,預設是型別的最大值顯示的寬度值

案例

create table student (

id int,

name char(6),

born_year year,

birth_date date,

class_time time,

reg_time datetime

);# 會預設以其對應的格式內容插入

insert into student values(1, 'egon', now(), now(), now(), now());

datetime和timestamp的區別

datatime的日期範圍是1001 - 2023年,timestamp的時間愛你範圍是1970 - 2023年

datetime佔據8個位元組,timestamp佔據4個位元組

datetime儲存時間與時區無關,timestamp儲存時間與時區有關

案例

# 寬度指的是字元的個數

create table t1(name char(5));

create table t2 (name varchar(5));

insert into t1 values('李傑'); # '李傑 ' 補全到3個空格到5個寬度

insert into t2 values('李傑'); # '李傑' 有多少存多少

# 檢視儲存的長度

select char_length(name) from t1; # 2 mysql char取的時候會自動去除空格

select char_length(name) from t2; # 存的是2個,取的也是2個

修改mysql的模式,來查詢char的儲存長度

set sql_mode = 'pad_char_to_full_length';
mysql查詢的時候,char補全空格的,查詢的會自動去除空格進行查詢

select name from t1 where name = '李傑'; # 有空格還是無空格的都能查

# 末尾去空格查詢只適用等號,不適用like

select name from t1 where name like '李傑';

末尾去空格查詢只適用等號,不適用like

varchar 還會用乙個位元組儲存資料的長度

length: 檢視位元組數

char_length: 檢視字元數

char填充空格來滿足固定長度,但是在查詢時會很不要臉的刪除尾部的空格(裝作好像自己沒有浪費過空間一樣),然後更改sql_mode讓其顯出原形。

訪問資料很快

浪費空間

varchar

更加節省空間,存資料更精準

訪問資料比較慢,得先獲取頭

大部分場景使用char,儲存空間不是一種限制了。建表時盡量的把定長的資料往前放,變長的資料往後放。

欄位的值只能在給定的範圍中選擇,如:單選框,多選框

enum單選,只能在給定的範圍內選乙個值,如:性別

set多選,在給定的範圍內可以選擇乙個或多個的值 如:愛好

案例

create table consumer (

id int,

name char(16),

*** enum("male", "female", "other"),

level enum('vip1', 'vip2', 'vip3'),

hobbies set('play', 'music', 'read', 'run')

);insert into consumer values (1, 'egon', 'male', 'vip1', 'music,read')

set插入數值是,引號內多個值以逗號隔開

如果傳入不在範圍之內的,插入之後查詢結果為空

加入命令列的模式下,輸入的sql語句打錯了或者最後一句輸入了乙個逗號而不是分號;

可以輸入\c終止執行

MySQL 資料型別 筆記

mysql中定義資料欄位的型別對你資料庫的優化是非常重要的。mysql支援多種型別,大致可以分為三類 數值 日期 時間和字串 字元 型別。mysql支援所有標準sql數值資料型別。這些型別包括嚴格數值資料型別 integer smallint decimal和numeric 以及近似數值資料型別 f...

(MySQL筆記)MySQL資料型別

mysql筆記 mysql資料型別 mysql筆記 搭建mysql資料庫系統 mysql的直接量指的是乙個直接的值,是乙個固定的 不會改變的值。直接量的資料型別分為這麼幾類 數值 字元 時間 布林。整型直接量 乙個整數,可以帶正負號 如 15 32 小數直接量 帶有小數點或者不帶小數點的數,可以帶正...

mysql筆記3 資料型別

整數型別 tinyint smallint mediumint int bigint 8 16 24 32 64 可選屬性 unsigned 對字元寬度的定義,如int 11 這並不會限制值的範圍,只是規定了客戶端顯示字元的個數,在儲存的時候,int 1 和int 21 是一樣的 可以使用decim...