首页 > 数据库技术 > 详细

Mysql学习笔记(015)-数据类型

时间:2020-03-05 18:56:29      阅读:76      评论:0      收藏:0      [点我收藏+]

数据类型

  1 #常见的数据类型
  2 /*
  3 数值型:
  4     整型
  5     小数:
  6         定点数    
  7         浮点型
  8 字符型:
  9     较短的文本:char、vachar
 10     较长的文本:text,blob(较长的二进制数据)
 11 日期型:
 12     
 13 
 14 */
 15 
 16 #一、整型
 17 /*
 18 tinyint、smallint、mediumint、int/integer、bigint
 19 1      2        3    4        5
 20 特点:
 21 ①如果不设置无符号还是有符号,默认是设置有符号,如果想设置无符号,需要添加unsigned关键字
 22 ②如果插入的数值超出了整型的范围,会报out of range异常,并且插入临界值(实验是无任何值插入,版本缘故)
 23 ③如果不设置长度,会有默认的长度
 24 长度代表了显示的最大宽度,如果不够会用0在左边填充,但必须搭配zerofill使用;
 25 
 26 */  
 27 #1、如何设置无符号和有符号
 28 
 29 DROP TABLE IF EXISTS tab_int;
 30 CREATE TABLE tab_int(
 31     t1 INT(7) INSERT INTO tab_int VALUES(-123456,-123456);,
 32     t2 INT(7) ZEROFILL
 33 );
 34 DESC tab_int;
 35 
 36 INSERT INTO tab_int VALUES(-123456)
 37 INSERT INTO tab_int VALUES(-123456,-123456);
 38 INSERT INTO tab_int VALUES(2147483648,4294967296);
 39 
 40 INSERT INTO tab_int VALUES(123,123)
 41 
 42 SELECT * FROM tab_int;
 43 SELECT VERSION()
 44 
 45 #二、小数
 46 /*
 47 1.浮点型
 48 float(M,D)
 49 double(M,D)
 50 2.定点型
 51 dec(M,D)
 52 decimal(M,D)
 53 
 54 特点:
 55 ①M和D
 56 M:表整数部位+小数部位
 57 D:小数部位
 58 如果超过范围,则插入临界值(5.7版本不插入)
 59 
 60 ②M和D都可以省略
 61 如果是decimal,则M默认为10,D默认为0
 62 如果是float和double,则会根据插入的数值的精度决定精度
 63 
 64 ③定点型的精度较高,如果要求插入数值的精度较高如货币运算则考虑使用
 65 */
 66 
 67 #测试M和D
 68 
 69 DROP TABLE IF EXISTS tab_float;
 70 CREATE TABLE tab_float(
 71     f1 FLOAT,
 72     f2 DOUBLE,
 73     f3 DECIMAL
 74 );
 75 
 76 INSERT INTO tab_float VALUES(123.45,123.45,123.45);
 77 INSERT INTO tab_float VALUES(123.456,123.456,123.456);
 78 INSERT INTO tab_float VALUES(123.45,123.45,123.4);
 79 INSERT INTO tab_float VALUES(1523.45,1523.45,1523.4);
 80 
 81 SELECT * FROM tab_float;
 82 DESC tab_float;
 83 
 84 #原则:
 85 /*
 86 所选择的类型越简单越好,能保存的数值类型越小越好
 87 */
 88 
 89 #三、字符型
 90 /*
 91 较短的文本:
 92 char
 93 varchar
 94 
 95 其他:
 96 binary和varbinary用于保存较短的二进制
 97 enum用于保存枚举
 98 set用于保存集合
 99 
100 较长的文本:
101 text
102 blob(二进制数据)
103 
104 特点:
105 
106     写法        M的意思                特点        空间的耗费    效率
107 char    char(M)        最大的字符数,可以省略,默认为1    固定长度的字符    比较耗费    高
108 
109 varchar    varchar(M)    最大的字符数,不可以省略    可变长度的字符    比较节省    低
110 
111 
112 */
113 
114 CREATE TABLE tab_char(
115     c1 ENUM(a,b,c)
116 );
117 
118 INSERT INTO tab_char VALUES(a);
119 INSERT INTO tab_char VALUES(b);
120 INSERT INTO tab_char VALUES(c);
121 INSERT INTO tab_char VALUES(m);
122 INSERT INTO tab_char VALUES(A);
123 SELECT * FROM tab_char;
124 
125 DROP TABLE IF EXISTS tab_set;
126 CREATE TABLE tab_set(
127     s1 SET(a,b,c,d)
128 );
129 INSERT INTO tab_set VALUES(a);
130 INSERT INTO tab_set VALUES(A,B);
131 INSERT INTO tab_set VALUES(a,c,d);
132 SELECT * FROM tab_set;
133 
134 
135 #四、日期型
136 /*
137 date,datetime,timestamp,time,year
138 分类:
139 date只保存日期
140 time只保存时间
141 year 只保存年
142 
143 datetime保存日期+时间
144 timestamp保存日期+时间
145 
146 
147 特点:
148         字节    范围        对时区的影响
149 datetime    8    1000-9999    不受
150 timestamp    4    1970-2038    受    
151 */
152 
153 CREATE TABLE tab_date(
154     t1 DATETIME,
155     t2 TIMESTAMP#会随着时区变化,接近所在当前时区
156 );
157 
158 INSERT INTO tab_date VALUES(NOW(),NOW());
159 SELECT * FROM tab_date;
160 SHOW VARIABLES LIKE time_zone;
161 
162 SET time_zone=+9:00;

 

案例讲解

小结

Mysql学习笔记(015)-数据类型

原文:https://www.cnblogs.com/landerhu/p/12421680.html

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