数据库-Sql&Hql
文章平均质量分 53
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
MySQL中的semi-join
http://www.linuxidc.com/Linux/2015-05/117523.htmhttps://cloud.tencent.com/developer/article/14277021. 背景介绍什么是semi-join?所谓的semi-join是指semi-join子查询。 当一张表在另一张表找到匹配的记录之后,半连接(semi-jion)返回第一张表中的记录。与条件连接相反,即使在右节点中找到几条匹配的记录,左节点 的表也只会返回一条记录。另外,右节点的表一条记录也不会返回。转载 2020-08-04 14:18:30 · 710 阅读 · 0 评论 -
update 修改单表的多个字段,造成数据混乱
1、问题描述今天 QQ群里在讨论一个问题,在某个环境里面,需要修改单个表的多个字段,造成了数据混乱,跟理想修改的数据不一致。1.1、模拟问题现象#注意:创建的表没有主键,且 t1 表是 innodb 引擎root@localhost[keme]>createtablet1(aint,bint,primarykey(a));QueryOK,0rowsaffected(0.02sec)root@localhost[keme]>insertint...转载 2020-06-16 13:25:34 · 1203 阅读 · 0 评论 -
基于LBS的地理位置附近的搜索以及由近及远的排序(MYSQL)
目前基于LBS地理位置的搜索已经应用非常广了,的确是个很方便的东西。我们做程序的就是要考虑如何通过这些功能,来做出更符合用户的内容来。1,如何获取位置例如微信,可以通过发送地理位置来获取到当前用户的经纬度。查看在网页端,可以使用html5获取地理定位。查看2,数据表设计数据库中要预存自己的位置数据,如何获取数据请查看相关地图api。字段:十进原创 2016-10-19 10:42:36 · 8925 阅读 · 0 评论 -
MySQL删除重复数据只保留最新的一条
MySQL删除重复数据并保留最新的一条,网上有些博客写的有问题,因为他们只考虑到或者说他们的重复数据最多只有两条,当重复数据大于2时,就会出现问题。案例描述:按天删除表中重复数据只保留最新的一条(这里按照id越大,数据越新),注意,一天中可能出现多条数据。重复数据以name为准,即name相同视为重复案例表结构和数据CREATE TABLE `test` ( `id` in...转载 2019-10-29 15:54:45 · 1557 阅读 · 0 评论 -
SQL中EXISTS与IN的效率问题
一起学习一下;有两个简单例子,以说明 “exists”和“in”的效率问题1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T12) select * from T1 where T1.a in (select T2.a from T2) ;转载 2014-05-16 23:10:26 · 10806 阅读 · 2 评论 -
通过PL/SQL导入excel文件
PL/SQL 和SQL Sever导入excel数据的原理类似,就是找到一个导入excel数据的功能项,按照步骤走就是了。下面是一个些细节过程,希望对像我这样的菜鸟有帮助。 1、准备excel表。 右击数据表—选择edit data.选择数据,右击,选择Copy to Excel 2、调整ex转载 2015-02-16 13:56:50 · 1362 阅读 · 0 评论 -
使用子查询可提升 COUNT DISTINCT 速度 50 倍
注:这些技术是通用的,只不过我们选择使用Postgres的语法。使用独特的pgAdminIII生成解释图形。很有用,但太慢Count distinct是SQL分析时的祸根,因此它是我第一篇博客的不二选择。首先:如果你有一个大的且能够容忍不精确的数据集,那像HyperLogLog这样的概率计数器应该是你最好的选择。(我们会在以后的博客中谈到HyperLogLog。)但对于需要转载 2016-06-22 11:15:43 · 14691 阅读 · 0 评论 -
Oracle 删除重复数据只留一条
查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录转载 2013-11-05 10:15:52 · 1477 阅读 · 0 评论 -
Oracle中如何删除重复数据
我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样。 一、对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧。 下面语句可以查询出那些数据是重复的: select 字段1,字段2,count(*) fr转载 2013-11-05 10:23:21 · 1448 阅读 · 0 评论 -
mysql删除重复记录,保存Id最小的一条
方法1:1、创建一个临时表,选取需要的数据。2、清空原表。3、临时表数据导入到原表。4、删除临时表。mysql> select * from student;+----+------+| ID | NAME |+----+------+| 11 | aa || 12 | aa || 13 | bb || 14 | bb || 15 | bb |转载 2016-12-02 18:59:12 · 1645 阅读 · 0 评论 -
order by 语句对null字段的默认排序
转自:http://m.blog.csdn.net/article/details?id=6554168在使用order by语句进行查询结果排序时,不同的数据库对于被排序字段数据行为null的情况,处理方式有所不同,这里我们主要考虑oracle和mysql数据库。首先我们直接给出结论:leeyee 写道【Oracle 结论】 order by colum as转载 2017-04-12 10:34:30 · 5129 阅读 · 0 评论 -
分析函数 OVER(PARTITION BY... ORDER BY...)的讲解
http://blog.csdn.net/east_mrchiu/article/details/70183428这个函数长这个样子:OVER(PARTITION BY... ORDER BY...)顾名思义,PARTITION 中文是分割的意思,ORDER 是排序的意思,所以翻译一下就是先把一组数据按照制定的字段进行分割成各种组,然后组内按照某个字段排序。以实际案转载 2018-02-27 10:59:57 · 11924 阅读 · 1 评论 -
分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总
https://blog.csdn.net/rfb0204421/article/details/7672207https://blog.csdn.net/wawmg/article/details/40840093语法:sum(col1) over(partition by col2 order by col3 )准备数据:DEPT_IDENAME...转载 2018-12-25 16:46:36 · 3699 阅读 · 1 评论 -
oracle sql语言模糊查询--通配符like的使用教程
oracle在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像...”的数据记录,以下是可使用的通配符:% 零或者多个字符_ 单一任何字符(下划线)\ 特殊字符 oracle10g以上支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,RE转载 2014-02-11 15:09:03 · 3026 阅读 · 0 评论 -
SELECT INTO 语句将标识列添加到表 该表的列 'ID' 已继承了标识属性
from:http://www.cnblogs.com/icewindq/SQL 2005标识列继承问题 在点击查看列表时,出现了以下一个异常:无法使用 SELECT INTO 语句将标识列添加到表 '#TMP_FB37F2DD_6103_414A_931B_6EB0D9664369',该表的列 'ID' 已继承了标识属性。这个主要我们在取数据时,用到了一个分转载 2013-11-29 16:19:56 · 5813 阅读 · 0 评论 -
LEFT JOIN后AND与WHERE的异同
1、AND 过滤之后再连接2、WHERE 连接之后再过滤下面以具体例子来说明:(1)、建表及插入测试数据 [c-sharp]view plaincopyprint?--建测试表 create table FACT_TAB ( ID INTEGER, STATUS VARCHAR2(8) ); create table DIM_STATU转载 2013-11-26 14:54:18 · 2419 阅读 · 0 评论 -
关于oracle中 != 及 null 使用注意点
titlestepname 关于继续开展下半年度集团早高峰保驾工作的通知传阅 关于继续开展下半年度集团早高峰保驾工作的通知null关于配合国资委协同办公平台统一权限配置的相关事宜null执行如下语句:select t.title,t.stepname from t_todo_item t where t.loginname='ST/G00100000原创 2013-07-09 09:42:23 · 15377 阅读 · 0 评论 -
Oracle sql语句练习(转)
1. 创建TableSpace、用户及给用户分派权限 可以通过Oracle客户端工具Enterprise Manager Console连接相应数据库,通过图形化操作来完成,这里我记录通过sqlplus连接到Oracle,通过命令来完成创建TableSpace、用户及给用户分派权限:Sql代码create tablespace testall datafile '转载 2013-05-30 14:35:54 · 1350 阅读 · 0 评论 -
hibernate查询%_等特殊字符
在sql中%,_等为特殊字符,有时候我们需要查询这些特殊字符,这个时候就需要转义了。下面这两句话就是进行转义。select username from gg_user where username like '%xiao/_%' escape '/'; select username from gg_user where username like '%xiao/%%' escap转载 2013-10-16 17:05:11 · 8679 阅读 · 0 评论 -
Oracle escape 关键字
英文解释:It is necessary to use an "escape" character to locate the characters '_' and '%' in a column. The keyword ESCAPE followed by the character used as the delimitor of choice is coded after the转载 2013-10-16 17:02:07 · 1576 阅读 · 1 评论 -
在HQL中有两种方法实现使用参数占用符
1、使用? 使用?设置参数占位符,之后通过setString()和setInteger()等方法为其赋值。如: Query query = session.createQuery("from Guestbook where id query.setInteger(0,12);2、使用名称 使用名称作为占位符不用依照参数的顺序来设置参数,并且使用H转载 2013-09-27 16:51:20 · 2347 阅读 · 0 评论 -
Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
在Hibernate中如果通过[java] view plaincopysession.createSQLQuery("select '合计' as name from dual").list() 查询,返回值中只会有一个“合”字。经查,常量在数据库中被认为是CHAR类型的,Hibernate取值时将其保存为Char转载 2013-09-25 15:53:10 · 2024 阅读 · 0 评论 -
sql语句中条件查询like的效率,及使用规范.
引用“我在做数据库查询的时候,发现了一个奇怪的问题,在使用like关键字的时候,速度其慢,效率极低。不明白是什么原因,请大家讲解一下,为什么like慢,而其他的两个快。3个查询不同的地方用红色做了标识。我数据表中的数据量如下FDAEnterprise 数据513条,TYHJL里面的数据为22516条。我有如下一个查询语句:查询所花费的时间是13秒。 select top 15转载 2013-08-29 13:37:31 · 18190 阅读 · 0 评论 -
ROW_NUMBER() OVER函数的基本用法
转自:http://www.cnblogs.com/icebutterfly/archive/2009/08/05/1539657.html语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER B转载 2014-04-10 09:57:30 · 3700 阅读 · 0 评论 -
oracle 判断字段是否为是数字 regexp_like用法 正则表达式
ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同,转载 2013-01-30 14:42:27 · 42081 阅读 · 0 评论 -
Oracle 按时间段分组统计 (使用LEVEL)
想要按时间段分组查询,首先要了解level,connect by,oracle时间的加减. 关于level这里不多说,我只写出一个查询语句:[sql] view plaincopy ---level 是一个伪例 select level from dual connect by level ---结果:1 2 3转载 2013-04-01 14:56:49 · 11061 阅读 · 0 评论 -
orale null 测试 and 关于Oracle中的不等于号
create table testequal (id number,name varchar2(100)); (1)当数据类型为 varchar2时, 插入‘’,相当于null (2)当数据类型为 varchar2时,select * from testequal where nameselect * from testequal where name转载 2013-03-29 22:38:01 · 3795 阅读 · 0 评论 -
left join on and与left join on where的区别
left join on and与left join on where的区别 分享inner jion没这个特殊性,则条件放在on中和where中,返回的结果集是相同的。 tab1: id psize 1 10 2 20 3 30 表2 tab2: psize name 10 AAA 20 BBB 20 CC转载 2013-11-26 14:58:23 · 1345 阅读 · 0 评论 -
UPDATE语句如何关联两个表
请问UPDATE语句如何关联两个表? MS SQLSERVER 7.0如有A,B两个表,A :字段cust_id,cust_nameB :字段cust_id,cust_name如何用一个UPDATE语句关联字段cust_id把A中cust_name改为相对应的B表中的cust_name?记得在ORACLE里是可以的,MSSQL里就不知道怎么写了,这种情况只能用游标来处理吗?转载 2013-07-09 10:00:28 · 23303 阅读 · 0 评论