首页 > 数据库技术 > 详细

SQL数据类型

时间:2019-11-23 15:44:31      阅读:118      评论:0      收藏:0      [点我收藏+]

MySQL支持的数据类型主要有:数值类型、时间/日期类型和字符串类型

1. 整数类型

技术分享图片

2. 浮点数和定点数类型

技术分享图片

3. 日期和时间类型

技术分享图片

4. 字符串类型

技术分享图片

 

实例讲解及分析

 

整型
CREATE TABLE tem(
    a TINYINT(5) UNSIGNED ZEROFILL,
    b INT(2)    
);
INSERT tem(a, b) VALUES (3, 5);

SELECT LENGTH(a) FROM tem;        -- 5, 应该返回的就是显示的字符长度
SELECT LENGTH(b) FROM tem;        -- 1

  尽管LENGTH(a)返回的是5, 它在内部存储占用的空间仍旧只是1字节,返回的5是显示字符串长度 -- 00003

 

字符串类型

 

CREATE TABLE str_db(
    a CHAR(4),
    b VARCHAR(4)
);

INSERT str_db VALUES(hhhh, hh);
INSERT str_db VALUES(你好呀你, 你好呀你);
-- insert str_db VALUES(‘hhhhX‘, ‘hhhh‘); -- 出错, 无论是前者多于4个字符还是后者都不行

SELECT LENGTH(a) FROM str_db;        // 4 & 12

---------------- 在CMD中修改RESULT字符集(默认GBK)
set session character_set_results=utf16;
SELECT LENGTH(a), CHAR_LENGTH(a) FROM str_db;    -- 4 & 12
SELECT CHAR_LENGTH(a) FROM str_db;    // 4 & 4

  两个结果均为 4 & 12,应该是说明了length对字符串返回的是存储的字符串实际占用了的内存空间,CHAR(n)既声明了其所能存储的字符数也声明了其占用的空间(与字符集有关),当然,CHAR类型使用的是固定长度空间,即便字符串没有使用其全部空间

  而CHAR_LENGTH返回的是实际字符数

技术分享图片

SQL数据类型

原文:https://www.cnblogs.com/chenxingyang/p/11917991.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!