1. 程式人生 > >MySQL資料型別與運算子

MySQL資料型別與運算子

一、資料型別

在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述

【char和varchar】:

  • char(n) 若存入字元數小於n,則以空格補於其後,查詢之時再將空格去掉。所以char型別儲存的字串末尾不能有空格,varchar不限於此。
  • char(n) 固定長度,char(4)不管是存入幾個字元,都將佔用4個位元組,varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),所以varchar(4),存入3個字元將佔用4個位元組。
  • char型別的字串檢索速度要比varchar型別的快。

【varchar和text】:

  • varchar可指定n,text不能指定,內部儲存varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),text是實際字元數+2個位元組。
  • text型別不能有預設值。
  • varchar可直接建立索引,text建立索引要指定前多少個字元。varchar查詢速度快於text,在都建立索引的情況下,text的索引似乎不起作用。

在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述

二、運算子

在這裡插入圖片描述 在這裡插入圖片描述

  比較運算子中需要注意"=","<>“和”<=>“的區別。”=“用於比較運算元是否相等,相等為1,但是不能用於比較NULL(NULL=NULL),”<>“的操作和”=“的意思剛好相反,也可以寫作”!=",也不能用於比較NULL。"<=>“和”="意思相同,但是可以用來比較NULL(NULL<=>NULL 返回值為1)。LIKE作為萬用字元的匹配,REGEXP或RLIKE可以作為正則表示式的匹配。

  • BETWEEN運算子的格式:a between min and max ,例如:select 10 between 1 and 20;
  • IN運算子的格式:a IN (value1, value2),例如:select 3 in (3,4,5);
  • like運算子格式:a like %123%,當含有字串123時返回1,否則返回0,例如:select 123456 like ‘123%’, 123456 like “%123%”;
  • REGEXP運算子格式:str regexp str_pat,當str中含有str_pat相匹配的字串時,則返回1,否則返回0。例如:select ‘abcdef’ regexp ‘ab’,‘abcdef’ regexp ‘k’。

在這裡插入圖片描述 在這裡插入圖片描述