Questions tagged «sql»

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

2
如何在MySQL select语句中编写条件?
我正在使用MySQL,并且想在SQL中执行一种三元声明,例如: SELECT USER_ID, ((USER_ID = 1) ? 1 : 0) AS FIRST_USER FROM USER 结果将类似于: USER_ID | FIRST_USER 1 | 1 2 | 0 3 | 0 etc. 如何做到这一点?
70 sql  mysql 

3
什么是NDF文件?
SQL Server将MDF用于数据文件,将LDF用于日志文件,但是什么是NDF文件? 这些文件有什么好处?
70 sql  sql-server 


13
如何从查询中返回SQL数据类型?
我有一个SQL查询,它查询我不需要也不想理解的巨大数据库(例如,数百个视图/表,具有难以理解的名称,例如CMM-CPP-FAP-ADD)。该查询的结果需要存储在登台表中以提供报告。 我需要创建登台表,但是要挖掘成百上千个视图/表以查找此处表示的数据类型,我想知道是否有更好的方法来构造该表。 谁能建议我如何使用任何SQL Server 2008工具来判断SQL 2000数据库中的源数据类型? 作为一个一般的例子,我想从一个查询中知道: SELECT Auth_First_Name, Auth_Last_Name, Auth_Favorite_Number FROM Authors 除了实际结果,我想知道: Auth_First_Name is char(25) Auth_Last_Name is char(50) Auth_Favorite_Number is int 我对约束不感兴趣,我真的只想知道数据类型。

5
MySQL如何填充范围内的缺失日期?
我有一个包含2列的表格,日期和分数。它最多有30个条目,最近30天内每个条目一个。 date score ----------------- 1.8.2010 19 2.8.2010 21 4.8.2010 14 7.8.2010 10 10.8.2010 14 我的问题是缺少某些日期-我想看看: date score ----------------- 1.8.2010 19 2.8.2010 21 3.8.2010 0 4.8.2010 14 5.8.2010 0 6.8.2010 0 7.8.2010 10 ... 我需要从单个查询中获取:19,21,9,14,0,0,10,0,0,14 ...这意味着缺失的日期填充有0。 我知道如何获取所有值,以及如何使用服务器端语言遍历日期和缺少空格。但这是否可以在mysql中完成,所以我可以按日期对结果进行排序并得到丢失的片段。 编辑:在此表中还有另一个名为UserID的列,所以我有30.000用户,其中一些在此表中具有得分。如果日期<30天前,我会每天删除日期,因为我需要为每个用户提供最近30天的分数。原因是我正在绘制过去30天的用户活动图,并绘制一个图表,我需要用逗号分隔的30个值。因此,我可以说在查询中获得USERID = 10203活动,查询将获得30分,最近30天中的每一分。我希望我现在更加清楚。

3
系统表master..spt_values的用途是什么,其值的含义是什么?
系统表master..spt_values的目的是什么? 为什么提供它,以及应该如何使用它? 它的类型,低,高值的含义是什么? 更新: Google搜索提供了成千上万的“用途”,例如: 使用master..spt_values拆分列 它包含从0到2047的数字。这非常有用。例如,如果您需要用这个范围内的100个数字填充表格 用于建立索引 创建虚拟日历 以某种非直觉和复杂的方式获取使用对象的描述 枚举SQL Server数据库中的所有索引(Giuseppe Dimauro,devx.com) “ SQL Server 2005脚本显示磁盘空间使用情况” “这不值得谈论。此表是“超级”查找表的设计梦are” 一些帖子警告不要使用它,因为它可以在将来的SQL Server版本中删除,但是已经有代码脚本使用它来说明新的SQL Server 11(Denali)的新功能: 仅在SQL Server Denali中使用OFFSET N ROWS FETCH NEXT N ROWS才能轻松分页


13
ActiveRecord find_each结合限制和顺序
我正在尝试使用ActiveRecord的find_each方法运行约50,000条记录的查询,但是它似乎忽略了我的其他参数,如下所示: Thing.active.order("created_at DESC").limit(50000).find_each {|t| puts t.id } 除了要在50,000处停下来而不是按进行排序外created_at,这是在整个数据集上执行的结果查询: Thing Load (198.8ms) SELECT "things".* FROM "things" WHERE "things"."active" = 't' AND ("things"."id" > 373343) ORDER BY "things"."id" ASC LIMIT 1000 有没有办法获得类似的行为,find_each但具有最大总限制并遵守我的排序标准?


18
SQL连接表命名约定
我有2个表:用户和角色,并且有一个将这些表连接在一起的表。连接表中唯一的东西是链接两个表的ID。 我应该怎么称呼这张桌子?我从来没有真正看到过一个好的命名约定。 我以前见过的约定: UsersToRolesJoin UsersToRolesLink UsersToRoles会员资格 UsersRoles 例如: Users: Id Name Roles: Id Name TableThatJoinsTheTwo: Id UserId RoleId

2
在MySQL查询中结合UNION和LIMIT操作
我有一个“工作”和“公司”表,我想提取20个满足以下条件的工作: 仅来自两(2)个具名公司的职位 每个公司最多可以有10个工作 我曾尝试以下SELECT同UNION DISTINCT,但问题是,LIMIT 0,10适用于整个结果集。我希望它适用于每个公司。 如果每个公司没有10个工作,则查询应返回找到的所有工作。 SELECT c.name, j.title, j.`desc`, j.link FROM jobs_job j INNER JOIN companies_company c ON j.company_id = c.id WHERE c.name IN ('Company1') UNION DISTINCT SELECT c.name, j.title, j.`desc`, j.link FROM jobs_job j INNER JOIN companies_company c ON j.company_id = c.id WHERE c.name IN ('Company2') ORDER …
70 mysql  sql  union  limit 

16
我发现了一个例外!怎么办?
我已经开始使用try-catch块(有点晚了,我知道!),但是现在我不知道一旦捕获到异常,该如何处理。我该怎么办? Try connection.Open() Dim sqlCmd As New SqlCommand("do some SQL", connection) Dim sqlDa As New SqlDataAdapter(sqlCmd) sqlDa.Fill(dt) Catch ex As SQLException ' Ahhhh, what to do now!!!? Finally connection.Close() End Try
69 sql  vb.net  exception 

8
数据库/ SQL:如何存储经度/纬度数据?
性能问题... 我有一个具有地理位置数据(经度和纬度)的房屋数据库。 我想做的就是找到使用InnoDB数据库引擎将位置数据存储在MySQL(v5.0.24a)中的最佳方法,这样我就可以执行很多查询,以返回介于两者之间的所有主记录。 x1和x2latitude以及y1和y2 longitude。 现在,我的数据库架构是 --------------------- Homes --------------------- geolat - Float (10,6) geolng - Float (10,6) --------------------- 我的查询是: SELECT ... WHERE geolat BETWEEN x1 AND x2 AND geolng BETWEEN y1 AND y2 我上面描述的是使用Float(10,6)在MySQL中存储经度和纬度数据并分离出经度/纬度的最佳方法吗?如果没有,那是什么?存在浮点数,小数甚至空间作为数据类型。 从性能的角度来看,这是执行SQL的最佳方法吗?如果没有,那是什么? 使用其他MySQL数据库引擎有意义吗? 更新:仍然没有答案 我在下面有3个不同的答案。一个人说要用Float。一个人说要用INT。一个人说要用Spatial。 因此,我使用MySQL的“ EXPLAIN”语句来衡量SQL的执行速度。如果对经度和纬度数据类型使用INT或FLOAT,则似乎在SQL执行(结果集获取)方面绝对没有区别。 看起来使用“ BETWEEN”语句比使用“ >”或“ <” SQL语句快得多。使用“ BETWEEN”比使用“ >”和“ <”语句快将近3倍。 话虽如此,我仍然不确定使用Spatial会对性能产生什么影响,因为我不清楚我的MySQL版本(v5.0.24)是否支持它,以及如何启用它(如果支持) 。 …

6
SQL在日期之间选择
我正在运行sqlite以选择两个范围之间的数据作为销售报告。要从两个日期之间选择数据,我使用以下语句: SELECT * FROM test WHERE date BETWEEN "11/1/2011" AND "11/8/2011"; 该语句将获取所有日期,甚至超出条件的日期。您输入的日期格式与我输入的日期格式相同。我不确定发生了什么问题,但感谢您能找到的任何帮助。谢谢!
69 sql  sqlite 

4
了解涉及3个或更多表时JOIN的工作方式。[SQL]
我想知道是否有人可以帮助提高我对SQL JOIN的理解。[如果对该问题很重要,那么我正在特别考虑MS SQL Server。] 取3张表A,B [与A.AId有关的B有关的A]和C [与B.BId有关的C有关的B] 如果我撰写查询,例如 SELECT * FROM A JOIN B ON A.AId = B.AId 都很好-我对它的工作方式很满意。 表C(或添加其他D,E,....)时会发生什么 在这种情况下 SELECT * FROM A JOIN B ON A.AId = B.AId JOIN C ON C.BId = B.BId 什么是C加入?-是B表(及其中的值)吗?还是将C表联接到A + B联接的结果而得出的其他一些临时结果集? [这意味着并非B表中的所有值都不一定基于A,B的连接条件而位于临时结果集中A + B中] 我为什么要问的一个特定(且相当人为)的示例是因为我试图理解以下行为: Tables Account (AccountId, AccountBalanceDate, OpeningBalanceId, ClosingBalanceId) …
69 sql  join 

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.