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,胖胖');      --胖胖

Mysql之数据类型(胖胖老师)的更多相关文章

  1. mysql的数据类型和字段属性

    本文内容: 数据类型 数值类型 整数型 浮点型 定点型 日期时间类型 字符串类型 补充: 显示宽度与zerofll 记录长度 字段属性 空\不为空值:NULL.NOT NULL 主键:primary ...

  2. MySql数据库数据类型及约束介绍

    1,MySql中数据类型介绍 整型及浮点型 数据类型 存储范围 字节 TINYINT 有符号值:-2^到2^7-1 无符号值:0到2^8-1 2 SMALLINT 有符号值:-2^15到2^15-1 ...

  3. MySQL数据库3 - MySQL常用数据类型

    一. MySql常用数据类型 数据类型:整数(tinyint smailint int bigint) 定点数 decimal(p,s) ------ 小数点位置固定的       ---> 数 ...

  4. Mysql常用数据类型

    Mysql常用数据类型 数字: 字符串: 时间:

  5. MySQL日期数据类型、时间类型使用总结

    MySQL日期数据类型.时间类型使用总结 MySQL日期数据类型.MySQL时间类型使用总结,需要的朋友可以参考下.   MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型    ...

  6. MySQL日期数据类型、MySQL时间类型使用总结

    MySQL:MySQL日期数据类型.MySQL时间类型使用总结 MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型 存储空间 日期格式 日期范围 ------------ --- ...

  7. MySQL数据库数据类型之集合类型SET测试总结

    MySQL数据库提供针对字符串存储的一种特殊数据类型:集合类型SET,这种数据类型可以给予我们更多提高性能.降低存储容量和降低程序代码理解的技巧,前面介绍了首先介绍了四种数据类型的特性总结,其后又分别 ...

  8. mysql 的数据类型

    mysql 的数据类型(描述的是字段)三大类:一.整型:1.tinyint(M),其中M是显示宽度,需要配合zerofill,就是前面0填充,存储单位为1个字节(8位),无符文是最大能存储范围0000 ...

  9. MySQL的数据类型(转)

    MySQL的数据类型 1.整数 TINYINT: 8 bit 存储空间 SMALLINT: 16 bit 存储空间 MEDIUMINT: 24 bit 存储空间 INT: 32 bit 存储空间 BI ...

随机推荐

  1. [学习笔记] 模拟退火 (Simulated Annealing)

    真没想到这东西真的在考场上用到了...顺便水篇blog以示诈尸好了(逃 模拟退火算法 模拟退火是一种随机化算法, 用于求函数的极值qwq 比如给出一个问题, 我们要求最优解的值, 但是可能的方案数量极 ...

  2. Property 'id' not found on type java.lang.String

    改为 忘写了$符,取不出来,因此报错!

  3. 【Redis使用系列】redis设置登陆密码

    找到安装redis的配置文件,找到redis.comf文件找到#requirepass foobared 新建一行 requirepass  xxxx 你的密码 ,然后重启.再登录的时候可以登录,但是 ...

  4. 第二次作业:软件分析之Steam的前世今生

    摘要:本次作业我将介绍一下Steam的相关内容,以及对Steam的相关调研测评,以及需求分析,最后就是对Steam的建议以及在中国的发展提出相应的建议 一.相关信息      Steam是一个整合游戏 ...

  5. C语言博客作业--一二维数组。

    一.PTA实验作业 题目1:7-1 将数组中的数逆序存放 1. 本题PTA提交列表 2. 设计思路 定义三个整型变量n用来存放整数个数i,j是循环数 scanf("%d",& ...

  6. Bate版敏捷冲刺报告--day0

    1 团队介绍 团队组成: PM:齐爽爽(258) 小组成员:马帅(248),何健(267),蔡凯峰(285)  Git链接:https://github.com/WHUSE2017/C-team 2 ...

  7. 将数组写入Plist文件中

    -(void)writeToPlist:(NSArray *)uploadingfiles  Name:(NSString *)name {                  NSMutableArr ...

  8. System.Reflection名称空间下的程序集类Assembly应用.

    利用反射中的程序集类(Assembly--抽象类)动态加载类库(.dll)或者可执行程序(.exe). 优点:①.可以消除if条件的逻辑判断.②.减少内存资源.③.有利于程序扩展. 缺点... 使用静 ...

  9. JAVA_SE基础——16.方法

    接触过C语言的同学,这小章节很容易接受.Java中的方法是类似与C语言中的函数  功能和调用方法都类似  只不过叫法不一样  因为java是面向对象  c是面向过程    仅仅是叫法不同.. . 看到 ...

  10. System V IPC 之消息队列

    消息队列和共享内存.信号量一样,同属 System V IPC 通信机制.消息队列是一系列连续排列的消息,保存在内核中,通过消息队列的引用标识符来访问.使用消息队列的好处是对每个消息指定了特定消息类型 ...