您好,登錄后才能下訂單哦!
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~127 | 0-255 |
SMALLINT | -32768~32767 | 0~65535 |
MEDIUMINT | -8388608~8388607 | 0~16777215 |
INT | -2147483648~2147483647 | 0~4294967295 |
BIGINT | -9223372036854775808~9223372036854775807 | 0~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)
日期與時間類型
類型名稱 | 日期格式 | 日期范圍 | 存儲需求 |
YEAR | YYYY | 1901~2155 | 1字節(jié) |
TIME | HH:MM:SS | -838:59:59~838:59:59 | 3字節(jié) |
DATE | YYYY-MM-DD | 1000-01-01~9999-12-31 | 3字節(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) | 非常小的BLOB | L+1字節(jié),L<2^8 |
BLOB(M) | 小BLOB | L+2字節(jié),L<2^16 |
MEDIUMBLOB(M) | 中等大小的BLOB | L+3字節(jié),L<2^24 |
LONGBLOB(M) | 非常大的BLOB | L+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) ^ -(符號),~(位反轉) | |
最高 | ! |
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。