mysql常用操作

记录mysql常用操作

1.添加字段

ALTER TABLE table_name ADD column_name datatype

例如:alter table student add name varchar;

2.删除字段

ALTER TABLE table_name DROP COLUMN column_name

例如:alter table student drop column name;

删除多个字段

alter table table_name drop column column_name,

                                    drop column column_name2;

例如:alter table student drop column name,

                                      drop column age;

3.用sql生成sql

 

concat,inner join,left join ,is null,insert 这些就是下面需要使用的sql知识 

SELECT 
CONCAT("INSERT into records(nRecordType,nRecordFileType,nRecordStatus,strRecordName,nUserId,nCollectRegionId,startTime,endTime,streamNo,nRepairDevId,strCollectIp,dvrPort,dvrUserName,dvrPwd,nCollectChan,countNum) values ('1','1','2','",t.fileName,"','",t.userId,"','",t.regionId,"','",t.startTime,"','",t.endTime,"','",t.streamNo,"','",t.devId,"','",t.strIP,"','8000','admin', '807CAD0037D8ECFE0E7946D67DB38762','",t.devChannel,"','0');")
 from 
(SELECT p.fileName,p.userId,p.regionId ,p.startTime,p.endTime,p.streamNo,p.devId,d.strIP,p.devChannel from
prosaverecord p 
INNER JOIN device d on p.devId = d.id
LEFT JOIN records r on p.fileName = r.strRecordName and p.startTime = r.startTime and p.endTime = r.endTime 
where r.id is null) t;
=======生成的sql=======
INSERT into records(nRecordType,nRecordFileType,nRecordStatus,strRecordName,nUserId,nCollectRegionId,startTime,endTime,streamNo,nRepairDevId,strCollectIp,dvrPort,dvrUserName,dvrPwd,nCollectChan,countNum) values ('1','1','2','录像20190626100850-李思','7','5','2019-06-26 10:08:49','2019-06-26 10:09:10','1x.2x.13x.9x_8000_33','95','1x.2x.13x.9x','8000','admin', '807CAD0037D8ECFE0E7946D67DB38762','33','0');
===============
最新版本-更强的适应性,并且对空字段做了处理
===
select concat("insert into records(nHistoryRecordId,nCollectRegionId,nUserId,strRecordName,nRecordType,nRecordFileType,nRecordStatus,startTime,endTime,streamNo,nRepairDevId,strCollectIp,dvrPort,dvrUserName,dvrPwd,nCollectChan,screenshotSrc,countNum,dtBusinessTime) values ('",t.id,"','",t.regionId,"','",t.userId,"','",t.fileName,"','","1","','","1","','","2","','",t.startTime,"','",t.endTime,"','",t.streamNo,"','",t.devId,"','",t.strIp,"','",t.nPort,"','",t.strUser,"','",t.strPassword,"','",t.devChannel,"','",t.screenshotSrc,"','","0","','",t.dtBusinessTime,"');") 
 as cstr from (
SELECT p.id,p.regionId,p.userId, p.fileName,p.startTime,p.endTime,p.streamNo,p.devId,d.strIP,d.nPort,d.strUser,d.strPassword,p.devChannel,ifnull(p.screenshotSrc,'') screenshotSrc,p.dtBusinessTime from
prosaverecord p 
INNER JOIN device d on p.devId = d.id
where  p.cvr = 57 and p.upload = 1
) t ORDER BY t.id;

=========如果有的字段为空,会生产空的sql语句,所以用这个语句来检测是否生成了空的sql=========
select * from (
select concat("insert into records(nHistoryRecordId,nCollectRegionId,nUserId,strRecordName,nRecordType,nRecordFileType,nRecordStatus,startTime,endTime,streamNo,nRepairDevId,strCollectIp,dvrPort,dvrUserName,dvrPwd,nCollectChan,screenshotSrc,countNum,dtBusinessTime) values ('",t.id,"','",t.regionId,"','",t.userId,"','",t.fileName,"','","1","','","1","','","2","','",t.startTime,"','",t.endTime,"','",t.streamNo,"','",t.devId,"','",t.strIp,"','",t.nPort,"','",t.strUser,"','",t.strPassword,"','",t.devChannel,"','",t.screenshotSrc,"','","0","','",t.dtBusinessTime,"');") 
 as cstr from (
SELECT p.id,p.regionId,p.userId, p.fileName,p.startTime,p.endTime,p.streamNo,p.devId,d.strIP,d.nPort,d.strUser,d.strPassword,p.devChannel,ifnull(p.screenshotSrc,'') screenshotSrc,p.dtBusinessTime from
prosaverecord p 
INNER JOIN device d on p.devId = d.id
where  p.cvr = 57 and p.upload = 1
) t ORDER BY t.id
) tt
where tt.cstr is null;

然后用navicat导出

选择txt,并且选择文本限定符为无(否则生成的sql带有"")

最后得到可执行的sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值