Questions tagged «sql»

结构化查询语言(SQL)是用于查询数据库的语言。问题应包括代码示例,表结构,示例数据以及正在使用的DBMS实现的标签(例如MySQL,PostgreSQL,Oracle,MS SQL Server,IBM DB2等)。如果您的问题仅涉及特定的DBMS(使用特定的扩展名/功能),请改用该DBMS的标签。使用SQL标记的问题的答案应使用ISO / IEC标准SQL。

3
未解析对对象[INFORMATION_SCHEMA]的引用。[TABLES]
我创建了一个访问[INFORMATION_SCHEMA].[TABLES]视图的UDF : CREATE FUNCTION [dbo].[CountTables] ( @name sysname ) RETURNS INT AS BEGIN RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name ); END 在Visual Studio中,视图的架构和名称均标有警告: SQL71502:功能:[dbo]。[CountTables]有对对象[INFORMATION_SCHEMA]。[TABLES]的引用。 我仍然可以发布数据库项目而没有任何问题,并且UDF确实可以正常运行。IntelliSense为我填充了视图的名称,因此它似乎没有问题。 我还尝试过更改实现以使用sys.objects该视图,而不是使用此视图,但是也对该视图也给予了相同的警告。 如何解决此警告?



30
从集合/数组/列表创建逗号分隔的字符串的最复杂的方法?
在使用数据库的过程中,我注意到我编写了查询字符串,并且在此字符串中,我必须对列表/数组/集合的where子句施加一些限制。应该看起来像这样: select * from customer where customer.id in (34, 26, ..., 2); 您可以通过将其简化为以下问题来简化此问题:您具有字符串集合,并且只想在一个字符串中创建一个以逗号分隔的字符串列表。 到目前为止,我使用的方法是这样的: String result = ""; boolean first = true; for(String string : collectionOfStrings) { if(first) { result+=string; first=false; } else { result+=","+string; } } 但这就像您看到的非常难看。您不会一眼就看到那里发生了什么,特别是当构造的字符串(如每个SQL查询)变得复杂时。 您的(更多)优雅方式是什么?
98 java  sql  string 

2
清理用户密码
在对它们提供哈希值并将其存储在数据库中之前,应如何转义或清除用户提供的密码? 当PHP开发人员出于安全目的考虑对用户密码进行哈希处理时,他们通常会像对待其他任何用户提供的数据一样考虑这些密码。这个主题经常出现在与密码存储有关的PHP问题中。开发人员通常希望在散列密码并将其存储在数据库中之前使用诸如escape_string()(在各种迭代中)htmlspecialchars(),addslashes()和等功能清除密码。
98 php  sql  pdo  hash 

5
集群与非集群
我对SQL(Server 2008)的较低层次的了解是有限的,现在我们的DBA对此提出了挑战。让我解释一下这种情况:(我已经提到一些明显的陈述,希望我是对的,但是如果您发现有问题,请告诉我)。 我们有一张桌子,上面放着人们的“法院命令”。创建表(名称:CourtOrder)时,我的创建方式如下: CREATE TABLE dbo.CourtOrder ( CourtOrderID INT NOT NULL IDENTITY(1,1), (Primary Key) PersonId INT NOT NULL, + around 20 other fields of different types. ) 然后,我将非聚集索引应用于主键(以提高效率)。我的理由是,它是一个唯一字段(主键),应该像我们经常为主要目的进行索引那样进行索引Select from table where primary key = ... 然后,我在PersonId上应用了CLUSTERED索引。原因是按物理方式将特定人员的订单分组,因为绝大多数工作都在为一个人获取订单。所以,select from mytable where personId = ... 我现在已经对此感到困惑。有人告诉我,应该将聚簇索引放在主键上,而普通索引放在personId上。我觉得这很奇怪。首先,为什么要在唯一列上放置聚集索引?什么是集群?当然这是对聚集索引的浪费吗?我相信普通索引将用于唯一列。同样,对索引进行聚类将意味着我们无法对不同的列进行聚类(每个表一个,对吗?)。 被告知我犯了一个错误的原因是,他们认为在PersonId上放置聚簇索引会使插入速度变慢。对于选择速度提高5%的情况,插入和更新速度将降低95%。那是正确和有效的吗? 他们说,因为我们对personId进行了群集,所以在我们插入或更改PersonId时,SQL Server必须重新排列数据。 所以然后我问,为什么SQL这么慢,为什么会有CLUSTERED INDEX的概念呢?像他们说的那样慢吗?我应该如何设置索引以获得最佳性能?我本以为SELECT的使用比INSERT还要多...但是他们说我们在INSERTS上存在锁定问题... 希望可以有人帮帮我。


3
PostgreSQL是否支持“不区分重音”的排序规则?
在Microsoft SQL Server中,可以指定“不区分重音”的排序规则(对于数据库,表或列),这意味着可以对诸如 SELECT * FROM users WHERE name LIKE 'João' 查找具有Joao名称的行。 我知道可以使用unaccent_string contrib函数从PostgreSQL的字符串中去除重音符号,但是我想知道PostgreSQL是否支持这些“不区分重音符号”的排序规则,因此SELECT上述方法可行。

10
查找关联计数大于零的所有记录
我正在尝试做一些我认为很简单但似乎并非如此的事情。 我的项目模型有很多职位空缺。 class Project < ActiveRecord::Base has_many :vacancies, :dependent => :destroy end 我要获得所有至少有1个空缺的项目。我尝试过这样的事情: Project.joins(:vacancies).where('count(vacancies) > 0') 但它说 SQLite3::SQLException: no such column: vacancies: SELECT "projects".* FROM "projects" INNER JOIN "vacancies" ON "vacancies"."project_id" = "projects"."id" WHERE ("projects"."deleted_at" IS NULL) AND (count(vacancies) > 0)。

7
如何跨多个列查找重复项?
所以我想在下面做这样的SQL代码: select s.id, s.name,s.city from stuff s group by s.name having count(where city and name are identical) > 1 要产生以下内容((但请忽略仅名称或城市匹配的地方,必须在两列中同时出现): id name city 904834 jim London 904835 jim London 90145 Fred Paris 90132 Fred Paris 90133 Fred Paris

16
从SQL语句中的字段中删除前导零
我正在处理从SQLServer数据库读取以生成提取文件的SQL查询。从特定字段(最简单的VARCHAR(10)字段)中删除前导零的要求之一。因此,例如,如果该字段包含“ 00001A”,则SELECT语句需要将数据返回为“ 1A”。 SQL中是否可以通过这种方式轻松删除前导零?我知道有一个RTRIM功能,但这似乎只能删除空格。
98 sql  sql-server  tsql 

18
从周号获取周开始日期和周结束日期
我有一个查询,该查询计算数据库中成员的结婚日期。 SELECT SUM(NumberOfBrides) AS [Wedding Count] , DATEPART( wk, WeddingDate) AS [Week Number] , DATEPART( year, WeddingDate) AS [Year] FROM MemberWeddingDates GROUP BY DATEPART(year, WeddingDate), DATEPART(wk, WeddingDate) ORDER BY SUM(NumberOfBrides) DESC 在结果集中表示每周的开始和结束时如何计算? SELECT SUM(NumberOfBrides) AS [Wedding Count] , DATEPART(wk, WeddingDate) AS [Week Number] , DATEPART(year, WeddingDate) AS [Year] , ??? …

10
使用SQL视图的充分理由是什么?
我正在阅读SQL Server 2008圣经,并且涵盖了视图部分。但是作者确实没有解释观点的目的。视图有什么用?我应该在我的网站上使用它们吗?它们有什么好处?
98 sql  sql-server 

5
SQLite插入-重复键更新(UPSERT)
MySQL有这样的东西: INSERT INTO visits (ip, hits) VALUES ('127.0.0.1', 1) ON DUPLICATE KEY UPDATE hits = hits + 1; 据我所知,SQLite中不存在此功能,我想知道的是,是否有任何方法可以实现相同的效果而不必执行两个查询。另外,如果这不可能,那么您更喜欢什么: SELECT +(插入或更新)或 UPDATE(如果UPDATE失败,则 + INSERT )
98 sql  mysql  database  sqlite  upsert 

6
SQL更新查询中的汇总函数?
我试图将一个表中的值设置为另一表中的值的总和。遵循以下原则: UPDATE table1 SET field1 = SUM(table2.field2) FROM table1 INNER JOIN table2 ON table1.field3 = table2.field3 GROUP BY table1.field3 当然,按照目前的情况,它将不起作用- SET不支持SUM,也不支持GROUP BY。 我应该知道这一点,但是我的脑海中一片空白。我究竟做错了什么?
98 sql  sql-server  tsql 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.