有一天我学到了关于SQL的一些简单的东西: SELECT c FROM myTbl GROUP BY C 具有与以下相同的结果: SELECT DISTINCT C FROM myTble 我感到好奇的是,SQL引擎处理命令的方式有什么不同,还是真的是一回事? 我个人比较喜欢独特的语法,但我相信它比其他任何事都更习惯于习惯。 编辑:这不是一个关于聚合的问题。 了解使用GROUP BY与聚合函数。
我有两个使用集成安全性的应用程序。 一个在连接string中分配Integrated Security = true ,另一个设置Integrated Security = SSPI 。 在综合安全的背景下, SSPI和true的区别是什么?
检查问题此SELECT查询需要180秒才能完成 (请检查问题本身的注释)。 IN只能与一个值比较,但时间差异仍然很大。 为什么这样?
我想要这样转换一个string: '10/15/2008 10:06:32 PM' 转换为Sql Server中的等效DATETIME值。 在Oracle中,我会这样说: TO_DATE('10/15/2008 10:06:32 PM','MM/DD/YYYY HH:MI:SS AM') 这个问题意味着我必须将stringparsing为其中一种标准格式 ,然后使用其中一种代码进行转换。 对于这样一个普通的操作来说,这似乎很可笑。 有一个更简单的方法吗?
可能重复: T-SQL WHERE col IN(…) 什么是SQL Server查询的最大大小? (字符数) IN子句的最大大小? 我认为我看到了一些关于Oracle有1000个项目的限制,但是你可以用ANDing 2 INs来解决这个问题。 SQL Server中的类似问题? 更新那么,如果我需要从另一个系统(非关系数据库)中说1000个GUID并对SQL Server执行“JOIN in code”,那么最好的方法是将1000个GUID列表提交给IN子句还是有另一种更高效的技术? 我没有testing过这个,但我不知道我是否可以提交作为XML文档的GUID。 例如 <guids> <guid>809674df-1c22-46eb-bf9a-33dc78beb44a</guid> <guid>257f537f-9c6b-4f14-a90c-ee613b4287f3</guid> </guids> 然后对Doc和Table做一些XQuery JOIN。 效率低于1000条IN子句?
我有一个主键字段有AUTO_INCREMENT的MySQL表。 在阅读其他文章后,我注意到有同样问题和不同答案的人。 有些人build议不要使用这个function,有些则说不能“固定”。 我有: table: course fields: courseID, courseName 例如:表中logging的数量:18.如果我删除logging16,17和18 – 我期望input的下一个logging具有16的courseID,但是它将是19,因为最后input的courseID是18。 我的SQL知识并不奇妙,但无论如何刷新或更新这个计数与查询(或phpMyAdmin接口中的设置)? 该表格将与数据库中的其他人相关联。 鉴于所有的build议,我决定忽略这个“问题”。 我会简单地删除和添加logging,同时让自动增量做它的工作。 我想这个数字并不重要,因为它只被用作唯一标识符,并没有(如上所述) 业务意义。 对于那些可能与我原来的post混淆的人:我不想用这个字段来知道我有多lesslogging。 我只是希望数据库看起来整洁,并且有更多的一致性。
好像要合并两个或多个表,我们可以使用join或where。 彼此有什么优势?
在Microsoft SQL Server中,可以指定“不区分重音”的sorting规则(对于数据库,表或列),这意味着可能会执行类似查询 SELECT * FROM users WHERE name LIKE 'João' find一个与Joao名字。 我知道可以使用unaccent_string contrib函数从PostgreSQL中的string中删除重音,但是我想知道PostgreSQL是否支持这些“不区分变音”的sorting规则,所以上面的SELECT可以工作。
在devise表格的时候,我养成了一个习惯,那就是有一列是唯一的,而且是主键。 这取决于要求以三种方式实现: 自动递增的标识整数列。 唯一标识符(GUID) 可用作行标识符列的短字符(x)或整数(或其他相对较小的数字types)列 数字3将用于相当小的查找,大多数读取的表格可能具有唯一的静态长度string代码,或数字值(例如年份或其他数字)。 大多数情况下,所有其他表将具有自动递增整数或唯一标识符主键。 问题:-) 我最近开始使用没有一致的行标识符的数据库,主键当前在不同的列上聚集在一起。 一些例子: date时间/字符 date时间/整数 date时间/ VARCHAR 炭/ NVARCHAR / nvarchar的 这有没有一个有效的案例? 我会一直为这些情况定义一个身份或唯一标识符列。 另外还有很多没有主键的表格。 如果有的话,有什么理由呢? 我试图理解为什么桌子是按照原样devise的,这对我来说似乎是一个很大的混乱,但也许有充分的理由。 第三个问题可以帮助我解释答案:在使用多列来组成复合主键的情况下,这种方法与代理/人工键有什么特别的优势? 我主要在考虑性能,维护,pipe理等方面?
假设我有一个客户表和一个购买表。 每笔购买都属于一个客户。 我想在一个SELECT语句中获得所有客户的列表以及最后一次购买。 最佳做法是什么? 任何关于build立索引的build议? 请在答案中使用这些表格/列名称: 客户:身份证,姓名 购买:id,customer_id,item_id,date 而在更复杂的情况下,通过将最后一次购买放入客户表中,使数据库非规范化(性能明智)是否有益? 如果(购买)ID保证按datesorting,那么可以通过使用类似LIMIT 1简化来简化语句?