SQL教程——常見的資料型別

請保持優秀。發表於2020-12-01

本教程中所使用的資料庫的建表語句都在“SQL教程——索引”這篇文章中,點選連結直達:索引&建表語句

摘要:本文主要介紹SQL的DDL語法

 

常見的資料型別

 

數值型:

    整型

    小數:

        定點數

        浮點數

字元型:

    較短的文字:char、varchar

    較長的文字:text、blob(二進位制的資料型別)

日期型

 

整型

#1.整型

 

 

 

特點:

  1. 如果不設定無符號還是有符號,預設是有符號,如果想設定無符號,需要新增unsigned關鍵字

  2. 如果插入的數值超出了整型的範圍,會報out of range異常, 並且插入臨界值

  3. 如果不設定長度,會有預設的長度。

    長度代表了顯示的最大寬度,如果不夠會用0在左邊填充,但必須搭配zerofill使用,而且加上zerofill後就是無符號了,只能是正值。

 

#2.小數

 

 

特點:

  1. M和D都可以省略,

    如果是decimal,則M預設為10,D默人為0;

    如果是float和double,則會根據插入的數值的精度來確定精度。

  2. 定點型的精確度較高,如果要求插入的資料型別精確度較高如貨幣運算則考慮使用它

 

原則:

所選擇的資料型別越簡單越好,能儲存數值的型別越小越好

 

#測試M和D

create table tab_float(

    f1 float(5, 2),

    f2 double(5,2),

    f3 decimal(5,2)

);

 

插入的精度超過要求的2,f1、f2不報錯但無效,f3會報錯。

插入的精度低於要求的2,f1、f2、f3不報錯但會自動用0填充。

 



字元型

 

char和varhcar型別

說明:用來儲存MySQL中較短的字串

 

 

M的含義:char最多儲存的字元數 

 

 

其它:

binary和varbinary用於儲存較短的二進位制

enum用於儲存列舉

set用於儲存集合

create table tab_es (

    e1 enum('a', 'b', 'c')

    s1 set('a', 'b', 'c', 'd')

);

 

insert into tab_es values('a', 'a,b')

它們倆的區別:

enum一次插一個,

set一次插好多個。

 

 

日期型

 

 

 

 

特點:

 

 

create table tab_date (

    t1 DATETIME,

    t2 TIMESTAMP

);



insert into tab_date values(now(), now());



show variables like 'time_zone';

set_time_zone = '+9:00';

 

相關文章