MySQL資料計算 mysql資料型別與運算子

2021-10-17 12:34:40 字數 3201 閱讀 1157

一、資料型別

1、整型

mysql資料型別

含義(有符號)

tinyint(m)

1個位元組  範圍(-128~127)

smallint(m)

2個位元組  範圍(-32768~32767)

mediumint(m)

3個位元組  範圍(-8388608~8388607)

int(m)

4個位元組  範圍(-2147483648~2147483647)

bigint(m)

8個位元組  範圍(+-9.22*10的18次方)

取值範圍如果加了unsigned,則最大值翻倍,如tinyint unsigned的取值範圍為(0~256)。

int(m)裡的m是表示select查詢結果集中的顯示寬度,並不影響實際的取值範圍,沒有影響到顯示的寬度,不知道這個m有什麼用。

2、浮點型(float和double)

mysql資料型別

含義float(m,d)

單精度浮點型    8位精度(4位元組)     m總個數,d小數字

double(m,d)

雙精度浮點型    16位精度(8位元組)    m總個數,d小數字

設乙個字段定義為float(5,3),如果插入乙個數123.45678,實際資料庫裡存的是123.457,但總個數還以實際為準,即6位。

3、定點數

浮點型在資料庫中存放的是近似值,而定點型別在資料庫中存放的是精確值。

decimal(m,d) 引數m<65 是總個數,d<30且 d

4、字串(char,varchar,_text)

mysql資料型別

含義char(n)

固定長度,最多255個字元

varchar(n)

固定長度,最多65535個字元

tinytext

可變長度,最多255個字元

text

可變長度,最多65535個字元

mediumtext

可變長度,最多2的24次方-1個字元

longtext

可變長度,最多2的32次方-1個字元

char和varchar:

1.char(n) 若存入字元數小於n,則以空格補於其後,查詢之時再將空格去掉。所以char型別儲存的字串末尾不能有空格,varchar不限於此。

2.char(n) 固定長度,char(4)不管是存入幾個字元,都將占用4個位元組,varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),所以varchar(4),存入3個字元將占用4個位元組。

3.char型別的字串檢索速度要比varchar型別的快。

varchar和text:

1.varchar可指定n,text不能指定,內部儲存varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),text是實際字元數+2個位元組。

2.text型別不能有預設值。

3.varchar可直接建立索引,text建立索引要指定前多少個字元。varchar查詢速度快於text,在都建立索引的情況下,text的索引似乎不起作用。

5.二進位制資料(_blob)

1._blob和_text儲存方式不同,_text以文字方式儲存,英文儲存區分大小寫,而_blob是以二進位制方式儲存,不分大小寫。

2._blob儲存的資料只能整體讀出。

3._text可以指定字符集,_blo不用指定字符集。

6.日期時間型別

mysql資料型別

含義date

日期 '2008-12-2'

time

時間 '12:25:36'

datetime

日期時間 '2008-12-2 22:06:44'

timestamp

自動儲存記錄修改時間

若定義乙個欄位為timestamp,這個欄位裡的時間資料會隨其他字段修改的時候自動重新整理,所以這個資料型別的字段可以存放這條記錄最後被修改的時間。

資料型別的屬性

mysql關鍵字

含義null

資料列可包含null值

not null

資料列不允許包含null值

default

預設值primary key

主鍵auto_increment

自動遞增,適用於整數型別

unsigned

無符號character set name

指定乙個字符集

二、運算子、

mysql支援多種型別的運算子,這些運算子可以用來連線表示式的項。主要包括算術運算子,比較運算子,邏輯運算子和位運算子

1、算術運算子:

2、比較運算子:

比較運算子中需要注意"=","<>"和"<=>"的區別。"="用於比較運算元是否相等,相等為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'

3、邏輯運算子、

邏輯運算子:"not或!"表示邏輯非,"and或&&"表示邏輯與,"or或||"表示邏輯或,"xor"表示邏輯異或。

4、位運算子、

mysql 儲存資料 怎麼用mysql儲存資料

seetings中 mysql的基本引數 sql host localhost sql db name spider sql sheetname douban sql user root sql password pipelines中 建構函式用於初始化mysql的各項引數 def init sel...

mysql匯出的資料 mysql匯出匯入資料

使用sql語句匯出資料 匯出時如果不寫絕對路徑,會提示the mysql server is running with the secure file priv option so it cannot execute this statement。使用 show variables like sec...

資料透視表mysql 簡單談談MySQL資料透視表

我有一張這樣的產品零件表 部分part id part type product id 1 a 1 2 b 1 3 a 2 4 b 2 5 a 3 6 b 3 我想要乙個返回如下 的查詢 product id part a id part b id 1 1 2 2 3 4 3 5 6 在實際實施中,...