溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

四、MySQL的數(shù)據(jù)類型和運算符

發(fā)布時間:2020-06-17 11:00:49 來源:網(wǎng)絡 閱讀:1497 作者:少年不在了 欄目:MySQL數(shù)據(jù)庫

4.1、MySQL數(shù)據(jù)類型介紹

 MySQL支持多種數(shù)據(jù)類型,主要有數(shù)值類型、日期/時間類型和字符串類型。

數(shù)值數(shù)據(jù)類型:

  包括整數(shù)類型   TINYINT、SMALLINT、MEDIUMINT、INT、BIFINT、

  浮點小數(shù)據(jù)類型 FLOAT、DOUBLE

  定點小數(shù)類型   DECIMAL

日期/時間類型:

  YEAR、TIME、DATE、DATETIME、TIMESTAMP

字符串類型:

  CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SET

整數(shù)類

MySQL中的整數(shù)型數(shù)據(jù)類型

類型名稱說明存儲需求
TINYINT很小的整數(shù)1個字節(jié)
SMALLINT
小的整數(shù)2個字節(jié)
MEDIUMINT
中等大小的整數(shù)3個字節(jié)
INT
普通大小的整數(shù)4個字節(jié)
BIGINT
大整數(shù)5個字節(jié)

不同整數(shù)類型的取值范圍

數(shù)據(jù)類型有符號無符號
TINYINT-128~1270-255
SMALLINT-32768~327670~65535
MEDIUMINT-8388608~83886070~16777215
INT-2147483648~21474836470~4294967295
BIGINT-9223372036854775808~92233720368547758070~18446744073709551615
mysql> CREATE TABLE tmp1(x TINYINT,y SMALLINT,z MEDIUMINT,m INT,n BIGINT);
Query OK, 0 rows affected (0.05 sec)

mysql> DESC tmp1;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| x     | tinyint(4)   | YES  |     | NULL    |       |
| y     | smallint(6)  | YES  |     | NULL    |       |
| z     | mediumint(9) | YES  |     | NULL    |       |
| m     | int(11)      | YES  |     | NULL    |       |
| n     | bigint(20)   | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

浮點數(shù)類型和定點數(shù)類型


數(shù)據(jù)類型說明存儲需求
FLOAT
單精度浮點數(shù)4個字節(jié)
DOUBLE
雙精度浮點數(shù)8個字節(jié)
DECIMAL(M,D)
壓縮的"嚴格"定點數(shù)M+2個字節(jié)
mysql> CREATE TABLE tmp2 (x FLOAT(5,1), y DOUBLE(5,1),z DECIMAL(5,1));
Query OK, 0 rows affected (0.02 sec)

mysql> DESC tmp2;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| x     | float(5,1)   | YES  |     | NULL    |       |
| y     | double(5,1)  | YES  |     | NULL    |       |
| z     | decimal(5,1) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

日期與時間類型


類型名稱日期格式日期范圍存儲需求
YEARYYYY1901~21551字節(jié)
TIME
HH:MM:SS-838:59:59~838:59:593字節(jié)
DATEYYYY-MM-DD1000-01-01~9999-12-313字節(jié)
DATETIME
YYYY-MM-DD HH:MM:SS

1000-01-01 00:00:00~

9999-12-31 23:59:59

8字節(jié)
TIMESTAMP
YYYY-MM-DD HH:MM:SS

1970-01-01 00:00:01 utc~

2038-01-19 03:14:07 utc

4字節(jié)


文本字符串類型


類型名稱說明存儲需求
CHAR(M)固定長度非二進制字符串M字節(jié), 1<=M<=255
VARCHAR(M)變長非二進制字符串L+1字節(jié),L<=M和 1<=M<=255
TINYTEXT非常小的非二進制字符串L+1字節(jié),L<2^8
TEXT
小的非二進制字符串L+2字節(jié),L<2^16
MEDIUMTEXT
中等大小的二進制字符串L+3字節(jié),L<2^24
LONGTEXT
大的非二進制字符串L+4字節(jié),L<2^32
ENUM
枚舉類型,只能有一個枚舉字符串值1或2個字節(jié),取決于枚舉值的數(shù)目(最大值65535)
SET

一個設置,字符串對象可以有零個或

多個SET成員

1,2,3,4或8個字節(jié),取決于集合成員的數(shù)量(最多64個成員)


二進制字符串類型

類型名稱說明存儲需求
BIT(M)位字段類型大約(M+7)/8個字節(jié)
BINARY(M)
固定長度二進制字符串M個字節(jié)
VARBINARY(M)
可變長度二進制字符串M+1個字節(jié)
TINYBLOB(M)
非常小的BLOBL+1字節(jié),L<2^8
BLOB(M)
小BLOBL+2字節(jié),L<2^16
MEDIUMBLOB(M)
中等大小的BLOBL+3字節(jié),L<2^24
LONGBLOB(M)
非常大的BLOBL+4字節(jié),L<2^32

4.2、常見運算符介紹

  運算符連接表達式中各個操作數(shù),其作用是用來指明對操作數(shù)所進行的運算。運用運算符可以更加靈活地使用表中的數(shù)據(jù),常見的運算符類型有:算術運算符、比較運算符、邏輯運算符、位運算符。

算術運算符

 算術運算符是SQL中最基本的運算符,包括加、減、乘、除、求余。

運算符作用
+加法運算
-
減法運算
*
乘法運算
/
除法運算,返回商
%
求余運算,返回余數(shù)
mysql> CREATE TABLE tmp14 (num INT);
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO tmp14 value(64);
Query OK, 1 row affected (0.01 sec)

mysql> SELECT num,num+10,num-3+5,num+36.5 FROM tmp14;
+------+--------+---------+----------+
| num  | num+10 | num-3+5 | num+36.5 |
+------+--------+---------+----------+
|   64 |     74 |      66 |    100.5 |
+------+--------+---------+----------+
1 row in set (0.00 sec)

mysql> SELECT num,num/0,num%0 FROM tmp14;
+------+-------+-------+
| num  | num/0 | num%0 |
+------+-------+-------+
|   64 |  NULL |  NULL |
+------+-------+-------+
1 row in set (0.00 sec)

比較運算符


運算符作用
=等于
<=>
安全的等于
<>(!=)
不等于
<=
小于等于
>=
大于等于
>
大于
IS NULL判斷一個值是否為NULL
IS NOT NULL
判斷一個值是否不為NULL
LEAST
有兩個或多個參數(shù)時,返回最小值
GREATEST兩個或多個參數(shù)時,返回最大值
BETWEEN AND
判斷一個值是否落在兩個值之間
ISNULL與IS NULL 作用相同
IN
判斷一個值是IN列表中任意一個值
NOT IN判斷一個值不是IN列表中任意一個值
LIKE
通配符匹配
REGEXP
正則表達式匹配


邏輯運算符


運算符作用
NOT或者|邏輯非
AND或者&&
邏輯與
OR 或者||
邏輯或
XOR
邏輯異或


位運算符


運算符作用
|位或
&位與
^
位異或
<<
位左移
>>
位右移
~位取反,反轉所有位

運算符的優(yōu)先級


優(yōu)先級運算符
最低=(賦值運算),:=

||,OR

XOR

&&,AND

NOT

BETWEEN,CASE,WHEN,THEN,ELSE

=(比較運算),<=>,>=,>,<=,<,<>,!=,IS,LIKE,REGEXP,IN

|

&

<<,>>

-,+

*,/(DIV),%(MOD)

^

-(符號),~(位反轉)


最高
!


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI