国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL CHAR和VARCHAR數據類型介紹

2024-07-24 12:34:47
字體:
來源:轉載
供稿:網友
  CHAR類型是固定長度的,長度范圍為0到255。如果存儲的值不覆蓋字段長度,存儲數據的其他的部分會在值的右邊自動添加空格。
 
  VARCHAR字段中的值是可變長度的字符串,長度范圍為0到65535。VARCHAR字段的值以1字節或2字節的長度前綴加上數據的方式存儲。長度前綴指示了字段存儲的字節數,如果一個字段存儲的值不超過255字節,它使用一個長度前綴,如果字段存儲的值超過了255字節,它使用兩個長度前綴。
 
  如果沒有啟用嚴格SQL模式,分配給CHAR或VARCHAR字段超過字段最大長度的值,這個值會被截斷保存到數據庫中,并會產生一個警告。對于VARCHAR字段來說,不管使用什么樣的SQL模式,分配給VARCHAR字段超過字段最大長度的值,在值插入前,超過字段最大長度的部分會被截斷,并會產生一個警告。對于CHAR字段來說,不管使用什么樣的SQL模式,超過字段最大長度的部分會被截斷,并隱式插入到數據庫中。
 
  --測試①
 
  MariaDB [test]> show variables like '%sql%mode%';
  +---------------+--------------------------------------------+
  | Variable_name | Value                                      |
  +---------------+--------------------------------------------+
  | sql_mode      | NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
  +---------------+--------------------------------------------+
  1 row in set (0.26 sec)
 
  MariaDB [test]> drop table vc;
  Query OK, 0 rows affected (0.04 sec)
 
  MariaDB [test]> CREATE TABLE vc (v VARCHAR(4), c CHAR(4));
  Query OK, 0 rows affected (0.54 sec)
 
  MariaDB [test]> INSERT INTO vc VALUES ('ab  ', 'ab  ');
  Query OK, 1 row affected (0.14 sec)
 
  --查看插入的數據中是否保留空格
 
  MariaDB [test]> SELECT CONCAT('(', v, ')'), CONCAT('(', c, ')') FROM vc;
  +---------------------+---------------------+
  | CONCAT('(', v, ')') | CONCAT('(', c, ')') |
  +---------------------+---------------------+
  | (ab  )              | (ab)                |
  +---------------------+---------------------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> select length(v),length(c) from vc;
  +-----------+-----------+
  | length(v) | length(c) |
  +-----------+-----------+
  |         4 |         2 |
  +-----------+-----------+
  1 row in set (0.00 sec)
 
  --插入超過字段最大值的數據到表中
 
  MariaDB [test]> insert into vc values('abcdefg','abcedeg');
  Query OK, 1 row affected, 2 warnings (0.03 sec)
 
  MariaDB [test]> show warnings;
  +---------+------+----------------------------------------+
  | Level   | Code | Message                                |
  +---------+------+----------------------------------------+
  | Warning | 1265 | Data truncated for column 'v' at row 1 |
  | Warning | 1265 | Data truncated for column 'c' at row 1 |
  +---------+------+----------------------------------------+
  2 rows in set (0.00 sec)
 
  MariaDB [test]> select * from vc;
  +------+------+
  | v    | c    |
  +------+------+
  | ab   | ab   |
  | abcd | abce |
  +------+------+
  2 rows in set (0.00 sec)
 
  --測試②
 
  MariaDB [test]> CREATE TABLE names (myname CHAR(10));
  Query OK, 0 rows affected (0.13 sec)
 
  MariaDB [test]> INSERT INTO names VALUES ('Monty');
  Query OK, 1 row affected (0.00 sec)
 
  --查看表中數據在WHERE條件中使用=的條件中帶空格的執行情況
 
  MariaDB [test]> SELECT myname = 'Monty', myname = 'Monty  ' FROM names;
  +------------------+--------------------+
  | myname = 'Monty' | myname = 'Monty  ' |
  +------------------+--------------------+
  |                1 |                  1 |
  +------------------+--------------------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names;
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> select length(myname) from names;
  +----------------+
  | length(myname) |
  +----------------+
  |              5 |
  +----------------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname = 'Monty';
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname = 'Monty ';
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname = 'Monty  ';
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname = 'Monty   ';
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname = 'Monty    ';
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname = 'Monty     ';
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname = 'Monty      ';
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname = 'Monty       ';
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  --查看表中的數據在like條件下的執行情況
 
  MariaDB [test]> SELECT myname LIKE 'Monty', myname LIKE 'Monty  ' FROM names;
  +---------------------+-----------------------+
  | myname LIKE 'Monty' | myname LIKE 'Monty  ' |
  +---------------------+-----------------------+
  |                   1 |                     0 |
  +---------------------+-----------------------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname like '%Monty%';
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname like 'Monty%';
  +--------+
  | myname |
  +--------+
  | Monty  |
  +--------+
  1 row in set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname like 'Monty %';
  Empty set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname like 'Monty  %';
  Empty set (0.00 sec)
 
  MariaDB [test]> SELECT * FROM names where myname like 'Monty   %';
  Empty set (0.00 sec)

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 醴陵市| 云南省| 营口市| 静乐县| 高碑店市| 武威市| 剑阁县| 酉阳| 浦东新区| 宁化县| 韶山市| 崇仁县| 周宁县| 德安县| 晋城| 阿坝县| 蓬莱市| 凤翔县| 锦州市| 吴堡县| 新巴尔虎左旗| 将乐县| 惠水县| 平遥县| 宽甸| 邵东县| 湘阴县| 永丰县| 依兰县| 日照市| 普定县| 郑州市| 阿拉善盟| 双城市| 巴塘县| 奉贤区| 扎鲁特旗| 屏山县| 潼关县| 延边| 台江县|