您好,登錄后才能下訂單哦!
4.1、MySQL數據類型介紹
MySQL支持多種數據類型,主要有數值類型、日期/時間類型和字符串類型。
數值數據類型: 包括整數類型 TINYINT、SMALLINT、MEDIUMINT、INT、BIFINT、 浮點小數據類型 FLOAT、DOUBLE 定點小數類型 DECIMAL 日期/時間類型: YEAR、TIME、DATE、DATETIME、TIMESTAMP 字符串類型: CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SET |
整數類
MySQL中的整數型數據類型
類型名稱 | 說明 | 存儲需求 |
TINYINT | 很小的整數 | 1個字節 |
SMALLINT | 小的整數 | 2個字節 |
MEDIUMINT | 中等大小的整數 | 3個字節 |
INT | 普通大小的整數 | 4個字節 |
BIGINT | 大整數 | 5個字節 |
不同整數類型的取值范圍
數據類型 | 有符號 | 無符號 |
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)
浮點數類型和定點數類型
數據類型 | 說明 | 存儲需求 |
FLOAT | 單精度浮點數 | 4個字節 |
DOUBLE | 雙精度浮點數 | 8個字節 |
DECIMAL(M,D) | 壓縮的"嚴格"定點數 | M+2個字節 |
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字節 |
TIME | HH:MM:SS | -838:59:59~838:59:59 | 3字節 |
DATE | YYYY-MM-DD | 1000-01-01~9999-12-31 | 3字節 |
DATETIME | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00~ 9999-12-31 23:59:59 | 8字節 |
TIMESTAMP | YYYY-MM-DD HH:MM:SS | 1970-01-01 00:00:01 utc~ 2038-01-19 03:14:07 utc | 4字節 |
文本字符串類型
類型名稱 | 說明 | 存儲需求 |
CHAR(M) | 固定長度非二進制字符串 | M字節, 1<=M<=255 |
VARCHAR(M) | 變長非二進制字符串 | L+1字節,L<=M和 1<=M<=255 |
TINYTEXT | 非常小的非二進制字符串 | L+1字節,L<2^8 |
TEXT | 小的非二進制字符串 | L+2字節,L<2^16 |
MEDIUMTEXT | 中等大小的二進制字符串 | L+3字節,L<2^24 |
LONGTEXT | 大的非二進制字符串 | L+4字節,L<2^32 |
ENUM | 枚舉類型,只能有一個枚舉字符串值 | 1或2個字節,取決于枚舉值的數目(最大值65535) |
SET | 一個設置,字符串對象可以有零個或 多個SET成員 | 1,2,3,4或8個字節,取決于集合成員的數量(最多64個成員) |
二進制字符串類型
類型名稱 | 說明 | 存儲需求 |
BIT(M) | 位字段類型 | 大約(M+7)/8個字節 |
BINARY(M) | 固定長度二進制字符串 | M個字節 |
VARBINARY(M) | 可變長度二進制字符串 | M+1個字節 |
TINYBLOB(M) | 非常小的BLOB | L+1字節,L<2^8 |
BLOB(M) | 小BLOB | L+2字節,L<2^16 |
MEDIUMBLOB(M) | 中等大小的BLOB | L+3字節,L<2^24 |
LONGBLOB(M) | 非常大的BLOB | L+4字節,L<2^32 |
4.2、常見運算符介紹
運算符連接表達式中各個操作數,其作用是用來指明對操作數所進行的運算。運用運算符可以更加靈活地使用表中的數據,常見的運算符類型有:算術運算符、比較運算符、邏輯運算符、位運算符。
算術運算符
算術運算符是SQL中最基本的運算符,包括加、減、乘、除、求余。
運算符 | 作用 |
+ | 加法運算 |
- | 減法運算 |
* | 乘法運算 |
/ | 除法運算,返回商 |
% | 求余運算,返回余數 |
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 | 有兩個或多個參數時,返回最小值 |
GREATEST | 兩個或多個參數時,返回最大值 |
BETWEEN AND | 判斷一個值是否落在兩個值之間 |
ISNULL | 與IS NULL 作用相同 |
IN | 判斷一個值是IN列表中任意一個值 |
NOT IN | 判斷一個值不是IN列表中任意一個值 |
LIKE | 通配符匹配 |
REGEXP | 正則表達式匹配 |
邏輯運算符
運算符 | 作用 |
NOT或者| | 邏輯非 |
AND或者&& | 邏輯與 |
OR 或者|| | 邏輯或 |
XOR | 邏輯異或 |
位運算符
運算符 | 作用 |
| | 位或 |
& | 位與 |
^ | 位異或 |
<< | 位左移 |
>> | 位右移 |
~ | 位取反,反轉所有位 |
運算符的優先級
優先級 | 運算符 |
最低 | =(賦值運算),:= |
||,OR XOR &&,AND NOT BETWEEN,CASE,WHEN,THEN,ELSE =(比較運算),<=>,>=,>,<=,<,<>,!=,IS,LIKE,REGEXP,IN | & <<,>> -,+ *,/(DIV),%(MOD) ^ -(符號),~(位反轉) | |
最高 | ! |
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。