![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
常用方法
文章平均质量分 51
为了生活
一片星空~
毕业l来北京快一年的菜鸟
展开
-
mysql时间与字符串之间相互转换
1.时间转字符串DATE_FORMAT(日期,格式字符串)SELECT DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%s’);2.字符串转时间STR_TO_DATE(字符串,日志格式)SELECT STR_TO_DATE(‘2019-01-20 16:01:45’, ‘%Y-%m-%d %H:%i:%s’);3.时间转时间戳select unix_timestamp(now());4.字符串转时间戳select unix_timestamp(‘2019-01-20转载 2021-04-01 16:46:43 · 1363 阅读 · 0 评论 -
MySQL计算两个日期相差的天数、月数、年数
MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数、分钟数、小时数、天数、周数、季度数、月数、年数,当前日期增加或者减少一天、一周等等。SELECT TIMESTAMPDIFF(类型,开始时间,结束时间)相差的秒数:SELECT TIMESTAMPDIFF(SECOND,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))相差的分钟数:SELECT TIMESTAMPDIFF(MINUTE,'1993-0转载 2021-03-14 15:22:41 · 1161 阅读 · 0 评论 -
ResultSet结果集的使用
一、ResultSet结果集的简介查询数据库时,返回的是一个二维的结果集,我们需要用到ResultSet来遍历结果集,获取每一行的数据。二、使用ResultSet遍历查询结果boolean next() 将光标从当前位置向前移一行。String getString(int columnIndex) 以java编程语言中String的形式获取此ResultSet对象的当前行中指定列的值String getString(String columnLabel) 以java编程语言中S...转载 2021-03-14 14:31:55 · 1478 阅读 · 0 评论 -
操作mysql/orcal,数据库表锁了,怎么办?
mysql表卡住锁死如何解决:问题原因:在进行数据库表进行修改的时候,卡住,鼠标箭头变圈,导致不能对表进行操作,重启也不能,主要原因是因为,mysql的线程还在执行,所以在进行其他线程操作会导致表锁死解决办法:(该sql命令为查出所有线程)新建查询,执行sql: show full processlist;执行下面sql:(该sql命令为干掉某个线程)17735为线程id找到卡死或者等待的线程使用: kill 17735最后刷新mysql即可原文链接:https://blog.csdn.n原创 2021-03-03 18:50:02 · 511 阅读 · 1 评论 -
虚拟列的实现
MySQL 5.7 虚拟列 (virtual columns)Generated Column在MySQL 5.7中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column,前者只将Generated Column保存在数据字典中(表的元数据),并不会将这一列数据持久化到磁盘上;后者会将Generated Column持久化到磁盘上,而不是每次读取的时候计算所得。很明显,后者存放了可以通过已有数据计算而得的数据,需要更转载 2020-10-31 14:00:48 · 515 阅读 · 0 评论 -
Mysql 5.7 虚拟列的作用
Mysql 5.7 中推出了一个非常实用的功能虚拟列 Generated (Virtual) Columns对于它的用途,我们通过一个场景来说明案例:假设有一个表,其中包含一个 date 类型的列SimpleDate dateSimpleDate 是一个常用的查询字段,并需要对其执行日期函数,例如SELECT … WHERE dayofweek(SimpleDate) = 3 …此时的问题是 即使对 SimpleDate 建立索引,这个查询语句也无法使用,因为日期函数阻止了索引为了提高查询转载 2020-10-31 13:56:01 · 890 阅读 · 0 评论 -
sql优化3-索引的进一步理解
sql优化1-报表效率问题:https://blog.csdn.net/qq_44691484/article/details/106678831sql优化2-培训列表优化:https://blog.csdn.net/qq_44691484/article/details/108851138在第一次碰到优化问题时:场景,列表中加了年限这个条件,每天最多一万张保单开票信息,那一次没加索引,尝试的是优化sql,优化的子查询,以及左连接,以及更改业务逻辑,实现的优化,保证一分钟内能够查出,那次八九张表进行原创 2020-10-15 15:29:08 · 139 阅读 · 0 评论 -
sql 优化2-培训管理
上篇;https://blog.csdn.net/qq_44691484/article/details/106678831背景:这周接了一个另一个项目的列表展示问题,测试环境对于正确性验证完毕后,投产,发现生产卡死,一万八千条数据,前台卡死,后台发现是一个sql 122秒,还原版本进行优化原始sql :SELECT aaa.*FROM ( ( SELECT '确认' C_CHECK_STATUS_desc, '0' BASEFLAG, tpc.C_O原创 2020-09-28 16:05:14 · 355 阅读 · 0 评论 -
sql多表连接详解
JOIN连接:除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。JOIN: 如果表中有至少一个匹配,则返回行LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行FULL JOIN: 只要其中一个表中存在匹配,就返回行INNER JOIN(内连接)和自然连接一样,交集数据Join连接图解:on和whereON后面的条原创 2020-06-12 00:25:51 · 1257 阅读 · 0 评论 -
sql优化1-报表效率问题
情况:负责的其中一张报表,左连接八张表,其中子查询多个,where条件多个,一分钟只能查询1000条左右数据,要进行优化想法:前期想,除了已有的索引,再加入适量索引,最终结论是被pass掉,不合适之后做法:1.查询字段首先查询字段从少增加,包括子查询,依次增加,找到那个属性或者子查询获得的时间长2.多表连接我们使用的左连接,保证主表信息(但要保证从表只有一条信息进行对接)从基础表,依次左连接,或者取出连接表,找出响应时间长的表3.where条件在条件中,依次注释条件,找出时间最长的限制原创 2020-06-11 00:33:24 · 268 阅读 · 0 评论 -
创建索引
1、创建表的同时 指定create table t1( id int not null, name char(30) not null, unique index UniqIdx(id))2、在已经存在的表创建索引使用ALTER TABLE 语句创建索引1.执行语句alter table book add index BkName(bookname(30))2.show index 查看表中索引show index from book可以看到新增了一个索引创建唯一索引:a原创 2020-10-31 14:11:27 · 7891 阅读 · 0 评论 -
【SQL】CAST()函数,(CAST AS decimal)
语法:CAST (expression AS data_type)参数说明:expression:任何有效的SQServer表达式。AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。 data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。要返回一个合法的数值,在本例中,精度与小数位数分别为9与2。这表示本例能够支持的最大的整数值是9999999,而最小的小数是0.01。SELECT CAST(‘12原创 2020-10-10 17:22:33 · 7557 阅读 · 0 评论 -
sql 截取字符串
1、SUBSTRING——任意位置取子串2、left() 和right()——左右两端取子串示例:declare usr.INST_ID varchar(100);set usr.INST_ID=‘gwengnwelgkweg’;select SUBSTRING(usr.INST_ID,0,8)–从左边第一位开始,截取8位select SUBSTRING(usr.INST_ID,Len(usr.INST_ID)-4,4)–截取后4位SUBSTRING(usr.INST_ID,5) orgc原创 2020-07-03 11:10:04 · 2523 阅读 · 0 评论 -
sql case when 判断方法
例题:CASE WHEN par.internetcompanyflag = ‘1’ THEN par.partnershortnameWHEN par.partnershortname is null THEN ‘-’ELSE ‘你猜’END as INSORGNAME就跟正常的if判断思维一致。希望能够帮助到你们。原创 2020-06-30 11:22:30 · 364 阅读 · 0 评论 -
union all 使子查询排序失效
情况:在使用暂存时,列表使用union all 合并sql数据时,第一部分暂存数据排序失效原因:union all的优先级会比order by 的优先级更高,优先执行union all两种方式:如果获取整个union all ,再排序,select rest.* from (语句1 union all 语句2) rest order by rest.createtime;每个子集先排序,后合并将语句1和语句2在包上一层select,例如 select t.* from (原创 2020-06-09 23:54:59 · 1077 阅读 · 1 评论 -
update不能在FROM子句中为更新指定目标表
复杂的修改语句,报错:不能在FROM子句中为更新指定目标表 (You can’t specify target table ‘xxx’ for update in FROM clause )…你需要用到临时表,替换,下面一个小例子:UPDATE tbinvoicedetails invoaSET invoa.flag = ‘0’WHEREinvoa.invoicecode IN (SELECTinvp.invoicecodeFROMtbinvoicedetails invpWHERE原创 2020-06-09 00:16:43 · 2290 阅读 · 0 评论 -
sql子查询使用分割,拼接字符串
例如:逗号分隔,拼接字符串select group_concat(payDef.NODEDESC)from tbcooperationinvoiceinfo coop LEFT JOIN tbcodetypedef payDef ON coop.paytype = payDef.NODECODE and payDef.CODETYPE = ‘PAYTYPES’原创 2020-06-09 00:15:28 · 1132 阅读 · 1 评论 -
sql使用DATE_FORMAT格式化日期
一:样例sql使用format格式化查询字段;例如:select DATE_FORMAT(operatetime,’%y-%m-%d %H:%i:%s’) operatetime from tbrecord where id = ‘1’结果:2020-06-08 17:56:59二:方法参数其中format具体参数如下:修饰符 含义%M 月的名字 (January…December)%W 星期的名字 (Sunday…Saturday)%D 有英文后缀的某月的第几天 (0th, 1s原创 2020-06-09 00:13:56 · 10072 阅读 · 0 评论 -
sql between and的边界问题
操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期不同的数据库对于between and 的处理方式不一定:偶尔情况是:前台入参:2017-04-06 18:01:01,到数据库实际是2017-04-06 00:00:00 ,那么2017-04-06 18:01:01的数据就差不到了,处理方式如下:1.后台对此参数进行处理,截取拼接成2017-04-06 23:59:59,那么2017-04-06 18:01:01就行看到了2.Sql 使用form原创 2020-06-09 00:12:43 · 745 阅读 · 0 评论 -
inception之alert修改表结构
1.背景当自己所做的项目,上线之后,1.对表结构修改;2.对生产环境数据问题,进行处理时,一般这两种情况,会走inception工具进行处理。 (只能执行简单的sql)今天描述第一种情况,表结构修改(DDL)2.DDL-修改表结构(1)增加字段alter table 表名 add 字段名 字段类型;alter table student add name varchar(10);(2)修改字段方式一:alter table 表名 modify column 字段名 类型;alter原创 2020-06-09 00:11:27 · 351 阅读 · 0 评论 -
sql判断字符串是否包含某个字符串
SELECT * FROM ‘表名’ WHERE LOCATE(‘包含的字符串’,‘字段’) > 0原创 2020-06-07 18:03:20 · 25143 阅读 · 0 评论 -
sql替换null空值
1.isnull替换select keyId,isnull(info,‘替换null值’) as info from testgo2.case when 替换CASE WHENorg2.orgshortname IS NOT NULL THEN org2.orgshortnameELSE org3.orgshortnameEND as INSORGNAME,3.coalesce替换coalesce(iam.invoiceno ,'-') as COUNTNO,...原创 2020-06-07 17:59:50 · 4650 阅读 · 0 评论 -
sql替换空格
一:去除空格去掉左边空格 SELECT LTRIM(pus.USER_CNAME) from u_base_user pus去掉右边空格 SELECT RTRIM(pus.USER_CNAME) from u_base_user pus去掉两把空格 SELECT TRIM(pus.USER_CNAME) from u_base_user pus二:替换空格mysql replace 函数语法:replace(object,search,replace)意思:把object中出现search的全原创 2020-06-07 17:44:04 · 3349 阅读 · 0 评论