軟體測試 MySQL(七 資料型別和運算子)

2021-09-14 05:12:49 字數 3755 閱讀 4439

mysql 支援多種資料型別。主要有數值型、日期/時間型別、字串型別

mysql中的整數型資料型別

資料型別

說明儲存需求(位元組)

有符號無符號

tinyint

很小的整數

1-128~127

0~255

smallint

小的整數

2-32768~32767

0~65535

meddiumint

中等大小的整數

3-8388608~8388607

0~16777215

int(integer)

普通大小的整數

4-2147483648~2147483647

0~4294967295

bigint

大整數8

-9223372036854775808~9223372036854775808

在mysql中定點數以字串的形式儲存,對精度要求較高時建議使用decimal.

mysql中的小數型別

型別名稱

說明儲存(位元組)

有符號範圍

無符號範圍

float

單精度浮點數

4-3.402823466e+38~-1.175494351e-38

0和1.175494351e-38~3.402823466e+38

double

雙精度浮點數

8-1.7976931348623157e+308~-2.2250738585072014e-308

0和2.2250738585072014e-308~1.7976931348623157e+308

decimal(m,d),dec

壓縮的「嚴格」定點數

m+2-

-日期與時間資料型別

型別名稱

日期格式

日期範圍

儲存(位元組)

year

yyyy

1901-2155

1time

hh:mm:ss

-838:59:59~838:59:59

3date

yyyy-mm-dd

1000-01-01~9999:59:59

3datetime

yyyy-mm-dd hh:mm:ss

1000-01-01 00:00:00~9999-12-31 23:59:59

8timestamp

yyyy-mm-dd hh:mm:ss

1970-01-01 00:00:01 utc~2038-01-19 03:14:07 utc4

1)year

以4位字串或者4位數字格式表示:範圍 1901~2155

以2位字串或者數字格式表示:範圍『0~69』指的是『2000~2069』,70~99值得是「1970~1999」 

2)time

為time列分配簡寫的時候注意:如果沒有冒號,mysql解釋值的時候,假定最右邊的兩位表示秒(mysql解釋time值為過趣時間而不是你當天時間)。相反如果time值中如果使用冒號則肯定被看成當天的時間,「『11:12』 表示11:12:00而不是00:11:12.

3)date型別

以'yyyy-mm-dd'或者'yyyymmdd'字串格式表示的日期,取值範圍為:『1000-01-01』~『9999-12-31』

以『yy-mm-dd』或者『yymmdd』字串格式表示的日期年的範圍『0~69』指的是『2000~2069』,70~99值得是「1970~1999」 

以yyyy-mm-dd或者yymmdd數字格式表示的的日期

使用current_date或者now(),插入當前系統日期

current_date只返回當前日期值,不包括時間部分

now()返回了日期和時間

## mysql允許不嚴格語法:任何標點符號都可以用做日期之間的間隔符。例如:『98-11-31』、『98.11.31』、『98/11/31』、『98@11@31』之間是等價的

4) datetime  

儲存是需要8個位元組

以'yyyy-mm-dd hh:mm:ss'或者'yyyymmdd hh:mm:ss'字串格式表示的日期,取值範圍為:『1000-01-01 00:00:00』~『9999-12-31 23:59:59』

以'yy-mm-dd hh:mm:ss'或者'yymmdd hh:mm:ss'字串格式表示的日期,yy取值範圍『0~69』指的是『2000~2069』,70~99值得是「1970~1999」 

以yyyymmddhhmmss或者yymmddhhmmss數字格式表示的的日期

## mysql允許不嚴格語法:任何標點符號都可以用做日期部分或者時間部分的間隔符。

5)timestamp 

timestamp與datetime顯示格式相同,顯示寬度固定在19個字元。日期格式:yyyy-mm-dd hh:mm:ss  

儲存時需要4個位元組

取值範圍小於datetime為:1970-01-01 00:00:01 utc ~ 2038-01-19 03:14:07 utc

timestamp與datetime除儲存位元組和支援範圍不同,還有乙個最大的區別在於datetime在儲存日期時按照實際輸入格式儲存與時區無關,而timestamp的值儲存的是utc(世界標準時間),儲存時對當前時區進行轉換,檢索時在轉換會當前時區,即查詢是按照當前時區不同現示不同的值。

設定時區:set time_zone = '+10:00'  #設定時區為東10區

mysql中文字字串資料型別

型別名稱

說明儲存需求

char(m)

固定長度非二進位制字串

m位元組,1<=m<=255

varchar(m)

變長非二進位制字串

l+1位元組,在此l<=m好1<=m<=255

tinytext

非常小的非二進位制字串

l+1位元組,在此l<2^8

text

正常大小非二進位制字串

l+2位元組,在此l<2^16

midiumtext

中等大小非二進位制字串

l+3位元組,在此l<2^24

longtexy

大的非二進位制字串

l+4位元組,在此l<2^32

enum

列舉型別,只能有乙個列舉字串的值

1個或者兩個位元組,取決於列舉值的數目(最大值65535)

set乙個設定,字串物件可以有另個或者多個set成員

1,2,3,4或8個位元組,取決於集合成員的數量(最多64個成員)

1)chaer和varchar型別

char(m)為固定長度字串,在定義時指定字串列長當儲存時在右側填充空格以達到指定的長度;m表示最大列長度,m範圍是0~255

varchar(m)是長度可變的字串,m是最大列長度,範圍是65535。varchar的最大實際長度由最長的行的大小和使用的字符集決定,而實際占用空間是字串的實際長度+1。

2)text

3)enum

enum是乙個字串物件,其值為表建立時在列規定中列舉的一列值:格式如下,

欄位名 enum(『值1』,『值2』,...)

算術運算子用於各類數值計算,包括加、減、乘、除、求餘

比較運算子用於比較,包括:大於、小於、等於、大於等於,小於等於、不等於,以及in、between and、is null、graetest、least、like、regexp

邏輯運算子的求職結果均為1(true)、0(false)包括:非(not、!)、與(and、&&)、或(or、||)

mysql資料型別用法 mysql資料型別和用法

歡迎進入linux社群論壇,與200萬技術人員互動交流 進入 mysql支援多種列型別 數值型別 日期 時間型別和字串 字元 型別。本章首先對這些列型別進行了概述,然後更加詳細地描述了各種列的型別,以及列型別儲存需求的總結。概述很簡單。關於具體列型別 歡迎進入linux社群論壇,與200萬技術人員互...

mysql 資料型別 真假 MySQL 資料型別

mysql基礎 資料型別 整型型別 根據所儲存的整數數值取值範圍不同,可分為以下五類 1 tinyint佔1個位元組 2 smallint佔2個位元組 3 mediumint 佔3個位元組 4 int佔4個位元組 5 bigint佔8個位元組 根據每種型別所佔的位元組數可確定其無符號整數和有符號整數...

mysql 郵箱 資料型別 mysql 資料型別

1 整型mysql資料型別含義 有符號 tinyint m 1個位元組 範圍 128 127 smallint m 2個位元組 範圍 32768 32767 mediumint m 3個位元組 範圍 8388608 8388607 int m 4個位元組 範圍 2147483648 21474836...