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