MySQL資料型別和運算子

2021-09-12 13:13:31 字數 3884 閱讀 1212

mysql具有豐富的資料型別,在建表和儲存過程中都需要指定資料型別

常用的資料型別有:

數值型別

整數型別

mysql主要提供的整數型別有:tinyint、smallint、mediumint、int、bigint。

create table emp

( id int(11),

name varchar(25),

deptid int(11),

salary float

)

id欄位的資料型別為int(11),注意後面的數字11,這表示的是該資料型別指定的顯示寬度,指定能夠顯示的數值中數字的個數。

例如:year int(4),該宣告指明,在year欄位中的資料一般只顯示4位數字的寬度。

顯示的寬度和資料型別的取值範圍是無關的。顯示寬度只是指明mysql最大可能顯示的數字個數,數值的位數小於指定的寬度時會由空格填充;如果插入了大於顯示寬度的值,只要該值不超過該型別的取值範圍,數值依然可以插入,而且能夠顯示出來。

例如:向year欄位插入乙個數值19999,當使用select查詢該列的時候,mysql顯示的將是完整的帶有5位數字的19999,而不是4位數字的值。

mysql中使用浮點數和定點數來表示小數。浮點型別有兩種:單精度float和雙精度double。定點型別只有一種:decimal。浮點型別和定點型別都可以用(m,n)來表示,其中m表示精度,表示總共的位數;n表示標度,是表示小數的位數。

型別描述

char(m)

儲存固定長度字串

varchar(m)

儲存可變長度字串

enum-

列舉型別-

set集合型別(集合中最多有64個成員)

blob

儲存二進位製大物件

text

儲存文字大物件

char和varchar型別

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

varchar(m)是長度可變的字串,m表示最大列長度。m的範圍是0~65535。

bit型別

bit(m),位欄位型別。m表示每個值的位數,範圍為1~64。如果m被省略,預設為1.如果為bit(m)列分配的值的長度小於m位,在值的左邊用0填充。例如:為bit(6)分配乙個值b』101,其效果與分配b『000101相同。

bit資料型別用來儲存位字段值,例如:以二進位制的形式儲存資料13,13的二進位制形式為1101,在這裡需要位數至少為4為bit型別,即可定義列型別為bit(4)

為了優化儲存,提高資料庫效能,在任何情況下均應使用最精確的型別

如果不需要小數部分,使用整數型別,否則使用float,double

-如果經常用於計算,精度要求高的用decimal

-如果日期儲存範圍大時使用datatime

-通常採用varchar型別,如果要提供處理速度,則採用char型別

算術運算子+

加法算運法

-減法運算

*乘法運算

/-除法演算法如果除數為0,返回null-

%求餘運算

比較運算子=

等於<=>

安全的等於(和=一樣用來做比較,但可以區分null)

<>(!=)

不等於(不能和null做比較)

<=-

小於等於(不能和null做比較)

>=

大於等於(不能和null做比較)

>

大於(不能和null做比較)

<-

小於(不能和null做比較)

is null

判斷乙個值是否為null

is not null

判斷乙個值是否不為null

least

有2個或多個引數時,返回最小值-

greatest

有2個或多個引數時,返回最大值

between and

判斷乙個值是否在兩個值之間

in判斷乙個值是in列中的任意乙個值-

not in

判斷乙個值不是in列中的任意乙個值

like

萬用字元匹配(%、_)

regexp-

正規表示式匹配(^、$、.、[….]、*)

邏輯運算子

運算子作用not或者!

邏輯非and或者&&

邏輯與or或者

邏輯或xor

邏輯異或

特殊字元字元

作用單引號『

字串用標識,如單獨使用需用轉義字元\』

雙引號「

如單獨使用,需要轉義字元\」

反斜槓|轉義字元

\r回車符

\n換行符

\tab

製表符\b

退格符型別

描述datetime

格式為yyyy-mm-dd hh:mm:ss

date

格式為yyyy-mm-dd

timestamp

格式為yyyy-mm-dd hh:mm:ss

time

hh:mm:ss

year

yyyy

year型別表示年,可以使用各種格式指定year的值

以4位字串或者4位數字格式表示year,取值範圍』1901』~『2155』,輸入格式為『yyyy』或者yyyy,例如:輸入』2010』或2010

以2位字串格式表示的year,範圍』00『』99『。』00『』69『和』70『~』99『範圍的值分別被轉換成2000-2069和1970-1999範圍的year的值。

以2位數字表示的year,範圍199。169和7099範圍的值分別被轉換為20012069和1970~1999範圍的year值。

time型別用在只需要時間資訊的值,在插入資料時要注意,因為可以採用非嚴格語法,支援

hh:mm:ss 10:05:05 10:05:05

hh:mm 23:23 23:23:00

d hh:mm 2 10:10 58:10:00 242+10:10 d代表天

d hh 3 02 74:00:00 243+10 小時部分小於10,前面補0

ss 10 00:00:10

hhmmss 101112 11:11:12 如果分鐘部分大於59,插入的會失敗

**date型別用在僅需要日期值時,沒有時間部分,在插入遵循 yyyy-mm-dd、 yy-mm-dd、 yyyymmdd、 yymmdd都可以,並且允許非嚴格語法,比如插入98.11.31 98/11/31 98@11@31,任何標點符合都可以做日期、時間的分割符

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

**datatime型別用在需要同時包括日期和時間資訊的值,格式為『yyyy-mm-dd hh:mm:ss』、『yyyymmddhhmmss』、 『yy-mm-dd hh:mm:ss』、『yymmddhhmmss』、 yyyymmddhhmmss、 yymmddhhmmss

****timestamp的顯示格式與datetime相同,但timestamp的取值範圍小於datetime的取值範圍,為『1970-01-01 00:00:01』 utc~『2038-01-19 03:14:07』 utc,其中utc為世界標準時間,在插入資料時,要保證在合法的取值範圍內。

**mysql資料型別:數值型、字元型、日期時間型

mysql運算子:算術運算子、比較運算子、邏輯運算子、位運算子

MySQL 資料型別和運算子

目錄 5.1.1 整數型別 5.1.2 浮點數型別和定點數型別 5.1.3 日期與時間型別 5.1.4 文字字串型別 字元字串 5.1.5 二進位制字串型別 位元組字串 5.2 如何選擇資料型別 5.3.2 算術運算子 5.3.3 比較運算子 5.3.4 邏輯運算子 5.3.5 位運算子 5.3.6...

資料型別和運算子 運算子

objective c 支援所有的基本算術運算子 除法運算子。除法運算子有些特殊,如果除法運算子的兩個運算元都是整數型別,則計算結果也是整數,就是將自然 數除法的結果斷取整。求餘運算子。它要求運算子兩邊的運算元必須是整數,他的計算結果是使用第乙個運算元來除以第二個運算元,得到 乙個整除的結果後,剩下...

MySQL 資料型別,運算子

3.decimal m,d 定點型別 當對精度要求較高的時候使用該欄位更好 整數和浮點數 如果不需要小數,則可以使用整數來儲存資料,如果需要小數部分,則使用浮點數,對於存入浮點資料列,存入的數值會對小數字進行四捨五入,浮點數有double和float,double的精度比float高 浮點數與定點數...