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高 浮點數與定點數...