lyt经典版MySQL基础——常见的数据类型

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