MySQL【四】基礎數據類型

MySQL基礎數據類型

 

數值類型

複製代碼
int:
    create table i1(id1 int,id2 tinyint,id3 int unsigned);
    create table i2(id1 int(2),id2 int(11));  對int類型的長度進行的約束無效
    給字段添加一個unsigned表示無符號
    
float:
    create table f1(f float(5,2),d double(5,2),d2 decimal(5,2));
    create table f2(f float,d double,d2 decimal);
    create table f3(d double,d2 decimal(65,30));
    float精確到小數點後5位
    double能多精確一些位數,但仍然存在不精確的狀況
    decimal默認是整數,可是經過設置,最多能夠表示到小數點後30位    
複製代碼

字符串類型

複製代碼
char:能表示的長度小,浪費存儲空間,讀寫速度快(定長字符串);
     char(5)  'abc'  'abc  '   'abcde'
     在顯示的時候會去掉全部空格顯示,對用戶的視覺形成欺騙
varchar:
      能表示的長度大,節省存儲空間,讀寫效率慢(變長字符串)
      varchar(5) 'ab'-->'ab2'   'abc'-->'abc3'   'abcde'-->'abcde5'
      越是長度固定char節省空間,越是長度不固定varchar節省空間
複製代碼

時間類型

複製代碼
datatime:
     now()表示當前時間
     year         now(),2019
     date         now(),20191010 '2019-01-01'
     time         now(),121212    '12:12:12'
     datetime     now(),20191010121212,'2019-01-01 12:12:12'
     timestamp 只能表示到2028年 一幫不用他表示時間
建立表: create table time1(y year,d date,t time); create table time2(dt datetime,ts timestamp); create table time2(dt datetime default current_timestamp,ts timestamp); 人爲設置datetime類型的默認值是當前時間 向表中添加數據: insert into time1 values(now(),now(),now());
複製代碼

set和enum類型

複製代碼
enum:枚舉,單選,且自動剔除不存在的選項
            enum('male','female')

set:集合,多選,自動剔除不存在的選項,自動去重
            set('洗腳','洗頭','抽菸','喝酒','燙頭')

# create table es(name char(10),sex enum('male','female'),hobby set('洗腳','洗頭','抽菸','喝酒','燙頭'));
# insert into es values('太白','male','燙頭,抽菸,洗腳,按摩');
# insert into es values('alex','人妖','燙頭');
# insert into es values('寶元','male','抽菸,喝酒,喝酒,喝酒')
複製代碼
相關文章
相關標籤/搜索