随笔分类 -  MySQL/PostgreSQL数据库知识

摘要:一、order by case when 理解 —— 根据一个字段的多个值进行排序 先看例子: 查询 user 表,根据用户状态排序。状态为1的排在最前面 >其次是状态为0 >状态为4 >状态为3 >状态为2 >状态为6 >状态为其他的 select * from user where...... 阅读全文
posted @ 2020-06-12 17:23 古兰精 阅读(9931) 评论(0) 推荐(1) 编辑
摘要:大表分表后每个表的结构相同,可以用sql的union。比如a,b表结构相同可以通过union来联接 select * from a union all select * from b where ... 一、Union和Union All到底有什么区别 Union:对两个结果集进行并集操作,不包括重 阅读全文
posted @ 2020-05-09 13:56 古兰精 阅读(8887) 评论(0) 推荐(0) 编辑
摘要:在数据库的增删改查操作中,使用最频繁的就是查询操作。而在所有查询操作中,统计数量操作更是经常被用到。关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT。但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐。不信的话请尝 阅读全文
posted @ 2018-03-14 09:24 古兰精 阅读(10686) 评论(1) 推荐(1) 编辑
摘要:一、实验结论 这里有一篇文章有做实验:mysql中or和in的效率问题,分三中情况进行测试,分别是: 第一种情况:in和or所在列为主键的情形 第二种情况:in和or所在列创建有索引的情形 第二种情况:in和or所在列没有索引的情形 最后得出的结论如下: 1、in或or在字段有添加索引的情况下,查询 阅读全文
posted @ 2018-02-26 23:33 古兰精 阅读(893) 评论(0) 推荐(1) 编辑
摘要:一直以来MySQL查询数量到底谁最快,一直是一个比较热的话题,且很多人搞不懂真相,本文将带你从底层原理去了解,到底count(*)、count(1)、count(id)、count(字段)谁更快。 一、执行计划 + + + | Table | Create Table | employees | C 阅读全文
posted @ 2018-01-04 18:37 古兰精 阅读(464) 评论(0) 推荐(0) 编辑
摘要:一、基本语法 INSERT INTO "表格1" ("栏位1", "栏位2", ...) SELECT "栏位3", "栏位4", ... FROM "表格2" 1、从一张表中查询到的数据插入到另一张表 INSERT INTO A ([姓名] ,[部门]) SELECT [name] ,[DEP] 阅读全文
posted @ 2017-11-03 18:30 古兰精 阅读(1825) 评论(0) 推荐(0) 编辑
摘要:一、关于时间差查询的一个小技巧 1、求2个时间差,通常用datediff函数:DATEDIFF(datepart,startdate,enddate) startdate 和 enddate 参数是合法的日期表达式。 datepart 参数可以是小时、分、秒等 但是sql里datediff是三个参数 阅读全文
posted @ 2017-11-03 16:55 古兰精 阅读(8594) 评论(0) 推荐(1) 编辑
摘要:一、like 操作符 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。 1、基本语法:% 表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示 // 从 “Persons” 表中选取居住在以 “N” 开始的城市里的人 SELECT * F 阅读全文
posted @ 2017-10-12 17:34 古兰精 阅读(12062) 评论(0) 推荐(0) 编辑
摘要:一、order by排序中如何处理null的数据 1、Oracle 里: order by colum asc 时,null默认被放在最后 order by colum desc 时,null默认被放在最前 nulls first 时,强制null放在最前,不为null的按声明顺序[asc|desc 阅读全文
posted @ 2017-09-28 23:01 古兰精 阅读(3522) 评论(0) 推荐(0) 编辑
摘要:上面这样的数据,想要的结果是:如果matchResult为2的话,代表是黑名单。同一个softId,version,pcInfoId的代表是同一个软件,需要去重;同时,如果相同软件里面只要有一个matchResult为2的话,那么同一个softId,version,pcInfoId的数据全部不要。 阅读全文
posted @ 2017-09-26 23:38 古兰精 阅读(652) 评论(0) 推荐(0) 编辑
摘要:一、MySQL 子查询 子查询是将一个 SELECT 语句的查询结果作为中间结果,供另一个 SQL 语句调用。MySQL 支持 SQL 标准要求的所有子查询格式和操作,也扩展了特有的几种特性。子查询没有固定的语法,一个子查询的例子如下: 对应的两个数据表如下: article 文章表: user 用 阅读全文
posted @ 2017-09-26 22:30 古兰精 阅读(2274) 评论(0) 推荐(0) 编辑
摘要:一、HQL语句中数据类型转换: 我们需要从数据库中取出序号最大的记录,想到的方法就是使用order by子句进行排序(desc倒序),然后取出第一个对象,可是当初设计数据库时(我们是在原来的数据库的基础上开发新系统),竟然将序号字段的类型设成了varchar2,真是让人郁闷,这样的话,如果排序的话, 阅读全文
posted @ 2017-09-26 16:58 古兰精 阅读(2826) 评论(0) 推荐(0) 编辑
摘要:CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。 一、语法: CAST (expression AS data_type) 参数说明: expression:任何有效的SQServer表达式。 AS:用于 阅读全文
posted @ 2017-09-26 15:17 古兰精 阅读(37479) 评论(0) 推荐(1) 编辑
摘要:一、LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。 语法:SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern; 通过使用 NOT 关键字,您可以选取不匹配模式的记录。 二、CONCAT()函数用于将 阅读全文
posted @ 2017-09-22 18:28 古兰精 阅读(4481) 评论(0) 推荐(0) 编辑
摘要:一、unexpected token: * 的解决办法 首先要搞清楚sql与hql的区别! sql操作的是数据库表,而hql操作的是对象! sql中“select * from table”,而hql中" from table对象"! 因为sql用惯了,习惯*,但是hql不认识! 试试:直接 fro 阅读全文
posted @ 2017-09-15 14:16 古兰精 阅读(8838) 评论(0) 推荐(0) 编辑
摘要:一、窗口函数有什么用 在日常工作中,经常会遇到需要在每组内排名,比如下面的业务需求: 排名问题:每个部门按业绩来排名topN问题:找出每个部门排名前N的员工进行奖励 面对这类需求,就需要使用sql的高级功能窗口函数了。 二、什么是窗口函数 窗口函数,也叫OLAP函数(Online Anallytic 阅读全文
posted @ 2017-09-03 13:19 古兰精 阅读(1046) 评论(0) 推荐(1) 编辑
摘要:一、sql中all、any、some用法 1、All:对所有数据都满足条件,整个条件才成立,例如:5大于所有返回的id select * from #A where 5>All(select id from #A) 2、Any:只要有一条数据满足条件,整个条件成立,例如:3大于1,2 二、MySQL 阅读全文
posted @ 2017-08-31 23:19 古兰精 阅读(1348) 评论(0) 推荐(0) 编辑
摘要:对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得 阅读全文
posted @ 2017-08-31 22:41 古兰精 阅读(696) 评论(0) 推荐(0) 编辑
摘要:一、如何查找重复数据? 1、题目:编写一个SQL查询,查找学生表中所有重复的学生名。 2、解题思路: (1)看到“找重复”的关键字眼,首先要用分组函数(group by),再用聚合函数中的计数函数count()给姓名列计数。 (2)分组汇总后,生成了一个字段:姓名 + 计数的临时表。从这个表里选出计 阅读全文
posted @ 2017-08-20 20:05 古兰精 阅读(4426) 评论(0) 推荐(1) 编辑
摘要:一、事务的理解: 1、事务的特性: 1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。 2) 一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务 阅读全文
posted @ 2017-08-19 22:37 古兰精 阅读(3620) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示