MySQL中的常用基本資料型別
MySQL中常用的資料型別:
varchar :
變長字串,使用時我們必須設定其長度,最大值”理論值”65535個,實際上最大隻能存65533個,但考慮到儲存的字元編碼的不同,也會有進一步的減少。比如:
- 如果儲存從中文gbk,則最多是65533/2個;
- 如果儲存中文utf-8,則最多儲存65533/3個
此型別的實際長度是儲存內容決定,而設定的值是最多可儲存的字元個數。
注意:這裡的儲存限制,其實都來源於一個表格的”一行”的資料儲存的最大容量顯示。
char :
定長字串,使用時需要設定其長度,如果不設定,預設是1,最大理論值是255個。
定長字串,適用於儲存的資料都是可遇見的明確的固定長度的字元,比如手機號,身份證號,但是在實際儲存的時候,如果少於設定的值,也可以儲存,但會使用空格填充空餘部分。
enum :
單選項字串資料型別。它非常適用於儲存表單介面中的”單選項值”,它設定的時候,需要給定”固定的幾個選項” 儲存的時候就只儲存其中的一個值。
形式如下:
enum("選項1","選項2","選項3"……)
實際內部:
這些字串的選項值對應的是如下的數字值:1、2、3、4、5……最多65535個選項
使用enum作為sex的資料型別:
create table tab_test_enum (id int primary key auto_increment,name varchar(10),sex enum('boy','girl'));
向表中插入資料:
第一種方式:
insert into tab_test_enum (name,sex)values('wangke','boy');
第二種方式:
insert into tab_test_enum (name,sex)values('xiaohong',2);
注:由於在內部,每一個選項值都對應著一個數字,因此這裡我們可以直接插入數字。
當前表中內容:
set :
多選字串的資料型別。它非常適用於儲存表單介面中的”多選項值“;它設定的時候,需要給定”固定的幾個選項”,然後在儲存的時候,就可以儲存其中若干個值。
形式如下:
set("選項1","選項2","選項3"……)
實際內部:
這些字串選項對應的是如下的數字值:1,2,4,8,16,……最多64個選項。
建立表使用set作為hobby的資料型別:
create table tab_test_set(id int primary key auto_increment,name varchar(10),hobbyset('coding','eat','play','sleep'));
插入資料的兩種方式:
第一種方式:
insert into tab_test_set(name,hobby)values('wangke','eat,play,sleep');
第二種方式:
insert into tab_test_set(name,hobby)values('xiaohong',14);
兩種方式插入的hobby的內容是一樣的,第二種方式中的14是所有hobby選項值相加所得(2+4+8)。
當前表中內容:
text :
“長文字”字元型別,通常,其儲存的型別不佔距表格中行的資料容量限制,其本身不佔距表中一行的資料容量的限制,其本身最長可儲存65535個字元
其他同類字串型別:smalltext,tinytext,longtext
其他:
binary型別: 定長二進位制字串型別,裡面儲存的是二進位制值
varbinary型別: 變長二進位制字串型別,裡面儲存的是二進位制值
blob型別: 二進位制資料型別,裡面儲存的是二進位制值,但其適用於儲存”圖片”,”其他檔案”等,由於在資料庫中操作的效率問題,極少使用。
時間型別:
datetime(時間日期型別)
date(日期型別
time(時間型別)
year(年份型別)
timestamp(時間戳型別):就是指一個時間的”資料值”–本質其實就是一個數字。它的一個重要作用:能夠自動獲得時間戳的資料值–相當於”now()”(注:這個欄位通常不需要插入資料)
注:在應用中,時間日期型別,再我們自己給定的資料情形下,需要使用’單引號’引起來,跟字串一樣。
演示時間日期型別的欄位的使用:
/*像表中插入時間*/
insert into tab_time(my_datetime,my_date,my_time,my_year)value('2017-4-13 16:41:34','2017-4-13','16:41:34','2017');
使用now()函式可以直接獲取當前時間
記錄MySQL學習筆記 ^ - ^