mysql: 工作中常见mybatis 之sql 用法

mysql 常用操作

建表tempTest ,里面基本涵盖工作中用到的数据类型

CREATE table tempTest (
 name varchar(50) DEFAULT NULL COMMENT '申请员工名称',
applyStaffId int(10) DEFAULT NULL COMMENT '申请员工id',
age  smallint(1) NOT NULL COMMENT '年龄',
cash decimal(14,2) DEFAULT '0.00' COMMENT '可用现金余额  这条记录中的值才是用户真正可用的钱',
createTime datetime DEFAULT NULL COMMENT '创建时间',
remark varchar(255) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试表tempTest';

desc tempTest 查看表结构:
这里写图片描述

* DML

写操作:

1  单条插入数据 eg::
INSERT INTO tempTest ( name ,applyStaffId  ,age  ,cash ,createTime ,remark ) values ( 'name5',5,5,5,NOW(),'rem5');

2  批量插入eg:
INSERT INTO tempTest( name ,applyStaffId  ,age  ,cash ,createTime ,remark) values   ('name7',7,7,7,NOW(),'rem7'),('name8',8,8,8,NOW(),'rem8')

读操作:

模糊查询读操作:
select * from tempTest a where  a.name like '%remark%' 

范围查询读操作
select * from tempTest a where  a.name in ('rem5','rem6')

* DDL

给某表加时间字段,建议下面方式添加,然后初始化一个时间就ok了

时间字段:①语句:
ALTER TABLE tempTest ADD COLUMN  `updateTime` timestamp not null default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP comment '更新时间'; 

执行完,可查看如图:
这里写图片描述

执行初始化sql

update tempTest set updateTime=NOW();

查看如下图:
这里写图片描述
好处:
这样新增的字段不必改代码,只要物理更新,就会更新updateTime时间。比如插入一条记录,并没有updateTime字段,但是查表却更新了该字段,所以①语句 添加该字段时,非空也是没问题的,不必改动代码。下图为效果,看update时间字段即使没插入值,但是查询依然有值eg::

INSERT INTO `tempTest` (`name`, `applyStaffId`, `age`, `cash`, `createTime`, `remark` ) VALUES (   'name9', 9, 9, 9.00, '2018-6-8 16:47:43', 'ark6' );
 select * from tempTest where  name='name9'

这里写图片描述

添加其他字段,建议不要设置非空,因为:运维一般上线先执行sql,后部署应用,在执行完sql后,应用部署之前,客户在平台做业务不会出错

ALTER table tempTest add COLUMN isAutoSeller SMALLINT(1) 
null DEFAULT 0  COMMENT '是否支持自动贩卖: 0 不支持 1 支持';

INSERT INTO `tempTest` (`name`, `applyStaffId`, `age`, `cash`, `createTime`, `remark` )
VALUES (   'name10', 10, 10, 10.00, NOW(), '嗨,海盗仙子' );
select * from tempTest;

结果:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/haidaoxianzi/article/details/80625991