zoukankan      html  css  js  c++  java
  • 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';
  • 相关阅读:
    为Android编译bash
    编译toybox
    RGB信仰灯
    如何用Fiddler抓BlueStacks的HTTPS包
    Adobe Acrobat快捷方式
    [MS-SHLLINK]: Shell Link (.LNK) Binary File Format
    BZOJ 3993 星际战争
    BZOJ 3996 线性代数
    BZOJ 1797 最小割
    BZOJ 2726 任务安排
  • 原文地址:https://www.cnblogs.com/yanwuliu/p/13373581.html
Copyright © 2011-2022 走看看