• Mysql之数据类型(胖胖老师)



    like语句与通配符

    insert into teacher_1 values('胖胖', '男', 18),
    ('小明', '男', 19),
    ('张三', '男', 30),
    ('李四', '男', 27),
    ('张成', '男', 21),
    ('三胖', '女', 31),
    ('张三丰', '男', 66),
    ('张', '男', 11),
    ('王_白', '男', 14),
    ('王大白', '男', 19);

    需求一: 查询出姓张的人;
    select * from teacher_1 where name like '张%';   --%表示配置0个或者多个任意字符

    需求二: 查询出名字中第二个字符是'胖'的人;
    select * from teacher_1 where name like '_胖%';
    ps: %表示配置0个或者多个任意字符, _表示配置一个任意字符

    需求三: 查询出 名字中第一个和第二个字符是 '王'和'_' 的那个人;
    select * from teacher_1 where name like '王/_%' escape '/';
    select * from teacher_1 where name like '王\_%';

    ***********************************************************************************************************************

    数据类型
    1: 数值类型
    2: 日期类型
    3: 字符串类型
    ***********************************************************************************************************************

    1: 整形
    tinyint类型
    tinyint如果有符号范围则是(-128, 127), 如果无符号范围则是(0, 255);

    可以使用unsigned标识来定义是否符号, 加上unsigned标识则表示无符号, 默认是有符号的

    create table t_1(
        a tinyint,
        b tinyint unsigned
    );
    例: insert into t_1 values(-128, 127);
    例: insert into t_1 values(-128, -1);    --报错
    例: insert into t_1 values(255, 255);    --报错
    例: insert into t_1 values(-128, 255);

    定义数据的显示宽度
    create table t_2(
        a tinyint(2)
    );
    ps: 类型(2), 比如tinyint(2), (2)并不是表示最大只能输入2位数字的值;
        而是表示显示的最小宽度是多少, 如果想要达到显示最小宽度的目的,还需要使用zerofill(前导零填充)来标识
    例: insert into t_2 values(123);
    例: insert into t_2 values(1);

    alter table t_2 add b tinyint(2) zerofill;
    例: insert into t_2(b) values(2);
    例: insert into t_2(b) values(123);
    例: insert into t_2(b) values(-1);    --报错, 标识了zerofill后 也会默认加上一个unsigned;

    2: 小数型
    浮点类型
    float(单精度), double(双精度)
    create table t_3(
        a float,
        b double
    );
    例: insert into t_3(a, b) values(1234567890.123456789,1234567890.123456789);
        +------------+--------------------+
        | a          | b                  |
        +------------+--------------------+
        | 1234570000 | 1234567890.1234567 |
        +------------+--------------------+
        ps: float与double类型虽然可以表示一个很大的小数, 但是如果值超过精度位数,这里则会损失精度
            float默认精度位数是6位左右, double默认的精度位数是17左右;

    create table t_4(
        a float(4) zerofill
    );
    insert into t_4 values(12);
    insert into t_4 values(12345);


    create table t_5(
        a float(6, 2)
    );
    ps: 浮点型(M,D) 比如float(6, 2) 这里的6表示的是能够最大的所有位数(不包括符号和小数号), 2表示最大小数位数
    例: insert into t_5 values(1234.56);
    例: insert into t_5 values(123.56);
    例: insert into t_5 values(123.5);
    例: insert into t_5 values(12345.6);         --报错
    例: insert into t_5 values(1234.128);        --不报错,但会把多余的小数以四舍五入的方式截取掉


    定点数类型(decimal)
    ps: decimal(M,D)定点数型依赖于M和D, M的默认值是10, D的默认值是0; M一样表示总数位, D表示小数位  总数

    create table t_6(
        a decimal(21, 2) zerofill
    );
    例: insert into t_6 values(123456789123456789.12);
        +------------------------+
        | a                      |
        +------------------------+
        | 0123456789123456789.12 |
        +------------------------+
    ***********************************************************************************************************************

    日期类型
    datetime(年月日时分秒)与timestamp类型(时间戳)
    create table t_7(
        a datetime,
        b timestamp
    );
    例: insert into t_7 values('2012-08-08 08:08:08', 54389867575365); --报错, 时间戳存储时是整形,但是表示是日期型
    例: insert into t_7 values('2012-08-08 08:08:08', '2012-08-08 08:08:08');
    例: select a+0, b+0 from t_7;   --在检索时如果列+0, 时间的格式会整形来显示
        +-----------------------+----------------+
        | a+0                   | b+0            |
        +-----------------------+----------------+
        | 20120808080808.000000 | 20120808080808 |
        +-----------------------+----------------+
    例: insert into t_7 values('2012-08-08 08:08:08', '2038-01-20');   --报错
    例: insert into t_7 values('2012-08-08 08:08:08', '2038-01-19');   --不报错
    例: insert into t_7 values('2012*08*08', '2038*01*19');            --支持任意的分隔符日期
    例: insert into t_7 values('20120808', '20380119');                --也可以不用写分隔符
    例:insert into t_7 values('20128808', '20380119');                --报错


    Date类型
    create table t_t(
        a date,
        b datetime
    );
    例: insert into t_t values('2012-08-08 08:08:08', '2012-08-08 08:08:08');
    ps: Date类型是以YYYY-MM-DD形式显示日期, datetime以年月日时分秒形式来显示日期


    Time类型(D HH:MM:SS) D表示天
    ps: Time表示的一天中的日间
    create table t_8(
        a time
    );
    例: insert into t_8 values('2 08:08:08');
    例: insert into t_8 values('99:08:08');
    例: insert into t_8 values('990808');
    例:insert into t_8 values('99-08-08');     --报错

    year类型
    create table t_9(
        a year
    );
    例: insert into t_9 values('1901');
    例: insert into t_9 values('1900');
    ***********************************************************************************************************************

    3: 字符串类型
    char(M)     M表示严格限定的长度
    varchar(M)  M表示允许的最大长度;
    create table t_10(
        c char(4),
        v varchar(4)
    );
    例: insert into t_10 values('ab', 'ab');
    例: insert into t_10 values('ab', 'abcde');   --报错
    例: insert into t_10 values('abcde', 'ab');   --报错

    Text类型(长文本类型)--还有tinyText, longText
    create table t_11(
        a text,
        b tinytext
    );


    enum枚举类型
    create table t_12(
        sex enum('男','女','保密')
    );
    例: insert into t_12 values('不男不女');
    例: insert into t_12 values('男');


    set集合类型
    create table t_13(
        hobby set('eat', 'drink', 'sleep')
    );
    例: insert into t_13 values('eat,sleep');
    例:insert into t_13 values('eat,sleep,drink');
    例:insert into t_13 values('eat,sleep, drink');    --报错 不要有空格
    例:insert into t_13 values('eat,sleep,胖胖');      --胖胖

  • 相关阅读:
    读书笔记,《我还是喜欢东京——带你感受城市细节》
    学习笔记:Maven的ArcheType的学习笔记
    如何从中企动力(新网)转移域名到阿里云(万网)
    Maven自定义Archetype(zz)
    读书笔记,《Java 8实战》第五章,使用流
    读书笔记,《Java 8实战》,第四章,引入流
    读书笔记,《Java 8实战》,第三章,Lambda表达式
    读书笔记,《Java8实战》第一章,为什么要关心 Java8
    读书笔记,《深入理解java虚拟机》,第三章 垃圾收集器与内存分配策略
    行业知识:关于发电量与碳排放和等效植树的换算关系
  • 原文地址:https://www.cnblogs.com/wadmwz/p/7534723.html
Copyright © 2020-2023  润新知