zoukankan      html  css  js  c++  java
  • 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 分类:
     21 tinyint、smallint、mediumint、int/integer、bigint
     22 1     2        3    4        8
     23 
     24 特点:
     25 ① 如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigned关键字
     26 ② 如果插入的数值超出了整型的范围,会报out of range异常,并且插入临界值
     27 ③ 如果不设置长度,会有默认的长度
     28 长度代表了显示的最大宽度,如果不够会用0在左边填充,但必须搭配zerofill使用!
     29 
     30 */
     31 
     32 #1.如何设置无符号和有符号
     33 
     34 DROP TABLE IF EXISTS tab_int;
     35 CREATE TABLE tab_int(
     36     t1 INT(7) ZEROFILL,
     37     t2 INT(7) ZEROFILL 
     38 
     39 );
     40 
     41 DESC tab_int;
     42 
     43 
     44 INSERT INTO tab_int VALUES(-123456);
     45 INSERT INTO tab_int VALUES(-123456,-123456);
     46 INSERT INTO tab_int VALUES(2147483648,4294967296);
     47 
     48 INSERT INTO tab_int VALUES(123,123);
     49 
     50 
     51 SELECT * FROM tab_int;
     52 
     53 
     54 #二、小数
     55 /*
     56 分类:
     57 1.浮点型
     58 float(M,D)
     59 double(M,D)
     60 2.定点型
     61 dec(M,D)
     62 decimal(M,D)
     63 
     64 特点:
     65 
     66  67 M:整数部位+小数部位
     68 D:小数部位
     69 如果超过范围,则插入临界值
     70 
     71  72 M和D都可以省略
     73 如果是decimal,则M默认为10,D默认为0
     74 如果是float和double,则会根据插入的数值的精度来决定精度
     75 
     76 ③定点型的精确度较高,如果要求插入数值的精度较高如货币运算等则考虑使用
     77 
     78 
     79 */
     80 #测试M和D
     81 
     82 DROP TABLE tab_float;
     83 CREATE TABLE tab_float(
     84     f1 FLOAT,
     85     f2 DOUBLE,
     86     f3 DECIMAL
     87 );
     88 SELECT * FROM tab_float;
     89 DESC tab_float;
     90 
     91 INSERT INTO tab_float VALUES(123.4523,123.4523,123.4523);
     92 INSERT INTO tab_float VALUES(123.456,123.456,123.456);
     93 INSERT INTO tab_float VALUES(123.4,123.4,123.4);
     94 INSERT INTO tab_float VALUES(1523.4,1523.4,1523.4);
     95 
     96 
     97 
     98 #原则:
     99 /*
    100 所选择的类型越简单越好,能保存数值的类型越小越好
    101 
    102 */
    103 
    104 #三、字符型
    105 /*
    106 较短的文本:
    107 
    108 char
    109 varchar
    110 
    111 其他:
    112 
    113 binary和varbinary用于保存较短的二进制
    114 enum用于保存枚举
    115 set用于保存集合
    116 
    117 
    118 较长的文本:
    119 text
    120 blob(较大的二进制)
    121 
    122 特点:
    123 
    124 
    125 
    126     写法        M的意思                    特点            空间的耗费    效率
    127 char    char(M)        最大的字符数,可以省略,默认为1        固定长度的字符        比较耗费    高
    128 
    129 varchar varchar(M)    最大的字符数,不可以省略        可变长度的字符        比较节省    低
    130 */
    131 
    132 
    133 
    134 CREATE TABLE tab_char(
    135     c1 ENUM('a','b','c')
    136 
    137 
    138 );
    139 
    140 
    141 INSERT INTO tab_char VALUES('a');
    142 INSERT INTO tab_char VALUES('b');
    143 INSERT INTO tab_char VALUES('c');
    144 INSERT INTO tab_char VALUES('m');
    145 INSERT INTO tab_char VALUES('A');
    146 
    147 SELECT * FROM tab_set;
    148 
    149 
    150 
    151 CREATE TABLE tab_set(
    152 
    153     s1 SET('a','b','c','d')
    154 
    155 
    156 
    157 );
    158 INSERT INTO tab_set VALUES('a');
    159 INSERT INTO tab_set VALUES('A,B');
    160 INSERT INTO tab_set VALUES('a,c,d');
    161 
    162 
    163 #四、日期型
    164 
    165 /*
    166 
    167 分类:
    168 date只保存日期
    169 time 只保存时间
    170 year只保存年
    171 
    172 datetime保存日期+时间
    173 timestamp保存日期+时间
    174 
    175 
    176 特点:
    177 
    178         字节        范围        时区等的影响
    179 datetime                   8        1000——9999                      不受
    180 timestamp    4                   1970-2038                        受
    181 
    182 */
    183 
    184 
    185 CREATE TABLE tab_date(
    186     t1 DATETIME,
    187     t2 TIMESTAMP
    188 
    189 );
    190 
    191 
    192 
    193 INSERT INTO tab_date VALUES(NOW(),NOW());
    194 
    195 SELECT * FROM tab_date;
    196 
    197 
    198 SHOW VARIABLES LIKE 'time_zone';
    199 
    200 SET time_zone='+9:00';
  • 相关阅读:
    20210108 android学习
    20210106 android学习
    20210105 android学习
    20210104 android学习
    httpClient请求转发个人理解
    CefSharp如何判断页面是否加载完
    C#/WPF 使用的Task线程程序缺依旧响应缓慢问题
    修改LiveChart的提示显示位置
    Wpf双击放大缩小界面
    WPF设置无边框CefSharp显示不出来问题
  • 原文地址:https://www.cnblogs.com/deyo/p/13297144.html
Copyright © 2011-2022 走看看