mysql中的資料型別和運算子詳細總結

2021-10-03 15:03:15 字數 4141 閱讀 1703

資料型別:

資料庫中也有自己支援的變數型別和允許使用型別的範圍限制,這都是為了能更好使用資料庫而設定,我們在進行資料型別定義時,也要嚴格遵守,不然後可能遇到意想不到的麻煩

數值型別:

1、bit(n),它是位型別,n代表指定的位數,它的範圍是1 ~ 64,如果不寫的話,預設是1,這種型別的資料在顯示時,是按acsii的型別顯示的

2、tinyint,它是乙個8位的整數型別,可以設定為無符號的和有符號的,設定方法就是在這個型別後面空一格,然後輸入unsigned,就可以設定為無符號,如果輸入signed就是有符號的,不過預設情況下是有符號,可以不顯示指定,如果設定這個型別是有符號的,那麼它的範圍是-128 ~ 127,如果是無符號的,那麼它的範圍就是0 ~ 255

3、bool,它是布林型別,0表示假,1表示真

4、smallint,它是乙個16位的整數型別,可以設定為無符號的和有符號的,設定方法就是在這個型別後面空一格,然後輸入unsigned,就可以設定為無符號,如果輸入signed就是有符號的,不過預設情況下是有符號,可以不顯示指定,如果設定這個型別是有符號的,那麼它的範圍是-2 ^ 15 ~ 2 ^ 15 - 1,如果是無符號的,那麼它的範圍就是0 ~ 2 ^ 16 - 1;

5、int,它是乙個32位的整數型別,可以設定為無符號的和有符號的,設定方法就是在這個型別後面空一格,然後輸入unsigned,就可以設定為無符號,如果輸入signed就是有符號的,不過預設情況下是有符號,可以不顯示指定,如果設定這個型別是有符號的,那麼它的範圍是-2 ^ 31 ~ 2 ^ 31 - 1,如果是無符號的,那麼它的範圍就是0 ~ 2 ^ 32 - 1;

6、bigint,它是乙個64位的整數型別可以設定為無符號的和有符號的,設定方法就是在這個型別後面空一格,然後輸入unsigned,就可以設定為無符號,如果輸入signed就是有符號的,不過預設情況下是有符號,可以不顯示指定,如果設定這個型別是有符號的,那麼它的範圍是-2 ^ 63 ~ 2 ^ 63 - 1,如果是無符號的,那麼它的範圍就是0 ~ 2 ^ 64 - 1;

7、float,它是單精度浮點型的資料型別,可以表示小數,占用4個位元組的大小,我們可以自己指定它能表示的整數大小和小數點位數,如果不指定它就按預設的資料進行顯示,如果我們要設定整數字數和小數點位數,可以在這樣在float後面進行設定,方法是float(n,m),n代表整數的位數,m代表小數點的位數,兩個加起來不能超過32位

8、double,它是雙精度浮點型的資料型別,可以表示小數,占用8個位元組的大小,我們可以自己指定它能表示的整數大小和小數點位數,如果不指定它就按預設的資料進行顯示,如果我們要設定整數字數和小數點位數,可以在這樣在double後面進行設定,方法是double(n,m),n代表整數的位數,m代表小數點的位數,兩個加起來不能超過64位

文字型別:

1、char(n),它是乙個8位元組的資料型別,和c語言不同,它不是代表乙個字元,而是代表乙個固定長度的字串(後續不能更改大小),n代表的字串的大小,範圍是0 ~ 255位元組,如果輸入的資料不夠設定的字串大小,則會將多於的地方補0,並且這個0不會顯示出來,另外當我們的表的編碼是utf8時,varchar(n)的引數n最大值是255/3=85,因為utf8中,乙個字元占用3個位元組,如果編碼是gbk,varchar(n)的引數n最大是255/2=127,因為gbk中,乙個字元占用2位元組

2、varchar(n),它是乙個65535位元組的資料型別,是乙個可變長的字串型別,相當於動態陣列,n表示這個可變長的字串大小(後續還可以更改大小),範圍是0 ~ 65535位元組,不過一般不能設定65535這麼大,因為會有1 ~ 3個位元組來記錄這個可變長字串的大小,另外當我們的表的編碼是utf8時,varchar(n)的引數n最大值是65532/3=21844,因為utf8中,乙個字元占用3個位元組,如果編碼是gbk,varchar(n)的引數n最大是65532/2=32766,因為gbk中,乙個字元占用2位元組,

3、text,它是乙個65535位元組的資料型別,它是乙個大文字的資料型別,也就是可以儲存一些文字亂碼,並且使用者自己也不能設定大小

二進位制型別:

1、blob,它是乙個65535位元組的資料型別,可以儲存二進位制資料,不過我們不能設定它的大小

2、tinyblob,它是乙個255位元組的資料型別,可以儲存二進位制資料,不過我們不能設定它的大小

3、longblob,它是乙個4g個位元組的資料型別,可以儲存二進位制資料,不過我們不能設定它的大小

日期型別:

1、date,它是乙個3位元組的型別,可以表示日期,表示的形式是,年-月-日,例如1946-1-1,它能表示的時間範圍是1000-01-01 ~ 9999-12-31

2、time,它是乙個3位元組的型別,可以表示時間,表示形式是,時:分:秒,例如12:30:55

3、datetime,它是乙個8位元組的型別,可以表示日期,表示的形式是,年-月-日 時:分:秒,例如1946-1-1 12:30:55,預設可以表示到秒,如果還想表示毫秒,可以設定精度,方法為datetime(n),n預設是1,可以表示到秒,如果設定為2,就可以表示毫秒了,它能表示的時間範圍是1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999

4、timestamp,它是乙個4位元組的型別,可以表示時間戳,表示形式是年-月-日 時:分:秒,例如1946-1-1 12:30:55,預設可以表示到秒,如果還想表示毫秒,可以設定精度,方法為timestamp(n),n預設是1,可以表示到秒,如果設定為2,就可以表示毫秒了,它能表示的時間範圍是1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999

字串物件型別:

1、enum,它是乙個64位元組的型別,它可以用來做列舉,例如我要寫乙個列舉男、女的字段,可以這樣定義,『性別』enum(『男』, 『女』);這種型別的列舉在進行記錄時,只能輸入乙個列舉的成員,例如我在插入資料時,只能新增男,或者新增女,不能同時新增男女成員,enum型別的列舉實際上是用整數進行列舉的,例如我剛才新增了『性別』enum(『男』, 『女』);,其中男就是整數1,女就是整數2,出於效能考慮最大可以新增到整數65535

2、set,它是乙個64位元組的型別,它可以用來做列舉,它和enum的區別是,在進行記錄時,可以同時記錄多個列舉的成員,例如 '性別』set(『男』, 『女』);,我在插入資料時,可以同時在乙個資料上將男和女同時記錄在這個型別的位置,set裡面的列舉也是用整數進行列舉的,出於效能考慮列舉最大的整數可以是64,因為在插入資料時,可能將這些成員全部插入進去

運算子:

比較運算子:

1、「>」「<」「>=」「<=":大於符號,小於符號,大於等於符號,小於等於符號

2、」=「:等於符號,因為它是作比較用的運算子,所以在出現null的情況,就不安全了,因為null= null的結果是null

3、」<=>「:它也是等於符號,但是相對於」=「符號來說,它是比較安全的符號,在出現null=null的情況時,會返回true

4、」!=「」<>「:這兩個符號都是不等於符號

5、「between a and b」:它是乙個範圍匹配符號,意思是a到b是乙個區間,也就是[a, b]如果我們輸入的值在這個範圍之間,那麼會返回true

6、」in(a, b, c, ……):它也是乙個範圍匹配符號,意思是如果我們輸入的值是括號中的任意乙個值,那麼會返回true

7、「is null」:直接判斷輸入的值,是否是null,如果是null返回true

8、「is not null」:直接判斷輸入的值,是否是null,如果不是null返回true

9、like:它是乙個模糊匹配運算子,通常要和萬用字元」%「或」_「搭配使用,%代表任意多個字元,_代表乙個字元,例如我們查詢所有字串中有m字元的字串,可以這樣寫」like %m%「,因為%代表任意多個字元,所以第乙個%表示m前面可以有任意多個字元,第二個百分號表示m後面可以有任意多個字元,這樣就可以查詢我們想要的結果了;_的用法和%相同,只不它代表乙個字元

10、all:這個運算子可以將它裡面的資料,都作為乙個個體和其它資料進行比較,一般要配合其它運算子進行使用,例如n < all(3,5,67),只有n比all裡面的所有資料都小,才返回true,也就說這個運算子可以把它裡面的資料,全部作為乙個個體來和其它資料進行比較

11、any:這個運算子可以將它裡面的資料,都作為乙個個體和其它資料進行比較,一般要配合其它運算子進行使用,例如n < any(3,5,67),只要n比any裡面的任一乙個資料小,就會返回true,也就說這個運算子可以把它裡面的資料,全部作為乙個個體來和其它資料進行比較

邏輯運算子:

and:與運算子

or:或運算子

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...

MySQL資料型別和運算子

mysql具有豐富的資料型別,在建表和儲存過程中都需要指定資料型別 常用的資料型別有 數值型別 整數型別 mysql主要提供的整數型別有 tinyint smallint mediumint int bigint。create table emp id int 11 name varchar 25 ...

資料型別和運算子 運算子

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