Questions tagged «sql»

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

8
SQL连接与SQL子查询(性能)?
我想知道我是否有类似这样的联接查询- Select E.Id,E.Name from Employee E join Dept D on E.DeptId=D.Id 和一个类似这样的子查询 - Select E.Id,E.Name from Employee Where DeptId in (Select Id from Dept) 当我考虑性能时,两个查询中的哪个查询会更快,为什么? 还有一段时间我应该优先选择另一个吗? 抱歉,这太琐碎了,之前问过,但是我对此感到困惑。另外,如果你们能建议我一些我可以用来衡量两个查询性能的工具,那将是很棒的。非常感谢!

13
如何从Oracle SQL中仅选择1行?
我想使用oracle语法从table中仅选择1行DUAL。例如,我要执行以下查询: SELECT user FROM DUAL ...它会有40条记录 但是我只需要一个记录。...而且,我希望没有WHERE子句就可以实现。 我在table_name字段中需要一些东西,例如: SELECT FirstRow(user) FROM DUAL
110 sql  oracle  oracle9i 


14
ResultSet到JSON的最有效转换?
以下代码ResultSet使用JSONArray和将转换为JSON字符串JSONObject。 import org.json.JSONArray; import org.json.JSONObject; import org.json.JSONException; import java.sql.SQLException; import java.sql.ResultSet; import java.sql.ResultSetMetaData; public class ResultSetConverter { public static JSONArray convert( ResultSet rs ) throws SQLException, JSONException { JSONArray json = new JSONArray(); ResultSetMetaData rsmd = rs.getMetaData(); while(rs.next()) { int numColumns = rsmd.getColumnCount(); JSONObject obj = new JSONObject(); for (int …
109 java  sql  json  resultset 


4
测试SQL查询的最佳方法
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 我遇到了一个问题,就是我们不断使复杂的SQL查询出错。从本质上讲,这导致将邮件发送给错误的客户以及类似的其他“问题”。 每个人创建这样的SQL查询的经验是什么?我们每隔一周就会创建一组新的数据。 所以这是我的一些想法及其局限性: 创建测试数据尽管这将证明我们拥有所有正确的数据,但不会强制排除生产中的异常情况。这些数据今天被认为是错误的,但可能在10年前是正确的。它没有记录,因此我们仅在提取数据后才知道。 创建维恩图和数据映射这似乎是测试查询设计的可靠方法,但是不能保证实现的正确性。它使开发人员提前计划并在编写时考虑发生了什么。 感谢您的输入,可以解决我的问题。
109 sql  unit-testing 

6
如何将datetime值插入SQLite数据库?
我正在尝试将datetime值插入SQLite数据库。它似乎成功了,但是当我尝试检索该值时,出现了一个错误: <无法读取数据> SQL语句是: create table myTable (name varchar(25), myDate DATETIME) insert into myTable (name,mydate) Values ('fred','jan 1 2009 13:22:15')
109 sql  datetime  sqlite 


4
选择大于/小于x字符的内容
想知道是否有可能在SQL中选择比x个字符多/少的字符。 例如,我有一个雇员表,我想显示其名称中具有超过4个字符的所有雇员名称。 这是一个示例表 ID EmpName Dept 1 Johnny ACC 2 Dan IT 3 Amriel PR 4 Amy HR
109 sql 

9
sqlite中有自动增量功能吗?
我试图primary key在Sqlite3中创建一个具有自动增量的表。我不确定这是否真的可能,但是我希望仅指定其他领域。 例如: CREATE TABLE people (id integer primary key auto increment, first_name varchar(20), last_name varchar(20)); 然后,当我添加一个值时,我希望只需要这样做: INSERT INTO people VALUES ("John", "Smith"); 这有可能吗? 我在Windows 7 sqlite3下运行cygwin。
109 sql  sqlite  cygwin 

8
在SQL Server中避免在INSERT INTO SELECT查询中重复
我有以下两个表: Table1 ---------- ID Name 1 A 2 B 3 C Table2 ---------- ID Name 1 Z 我需要从数据插入Table1到Table2。我可以使用以下语法: INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1 但是,在我的情况下,可能存在重复的ID Table2(在我的情况下,它只是“ 1”),我不想再次复制该ID ,因为这会引发错误。 我可以这样写: IF NOT EXISTS(SELECT 1 FROM Table2 WHERE Id=1) INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1 …



4
如何在列上创建唯一约束(SQL Server 2008 R2)?
我有SQL Server 2008 R2,我想设置一个唯一列。 似乎有两种方法可以做到这一点:“唯一索引”和“唯一约束”。尽管大多数人建议使用唯一性约束,但它们与我了解的差别不大,因为您也会自动获得索引。 如何创建唯一约束? ALTER TABLE Customer ADD CONSTRAINT U_Name UNIQUE(Name) 是否可以通过SQL Server Management Studio创建唯一约束?

13
数据库的事务日志已满
我有一个运行时间很长的过程,可以在整个过程中保持打开事务。 我无法控制它的执行方式。 由于事务在整个持续时间内保持打开状态,因此当事务日志填满时,SQL Server无法增加日志文件的大小。 因此,该过程因错误而失败"The transaction log for database 'xxx' is full"。 我试图通过增加数据库属性中事务日志文件的大小来防止这种情况,但是却出现了相同的错误。 不知道下一步该怎么做。该过程运行了几个小时,因此反复试验并不容易。 有任何想法吗? 如果有人感兴趣,该过程就是组织导入 Microsoft Dynamics CRM 4.0. 有足够的磁盘空间,我们在简单的日志记录模式下保存了日志,并且在启动该过程之前已经备份了日志。 -=-=-=-=-更新-=-=-=-=- 到目前为止,感谢所有评论。以下是使我相信由于打开的事务日志不会增长的原因: 我收到以下错误... Import Organization (Name=xxx, Id=560d04e7-98ed-e211-9759-0050569d6d39) failed with Exception: System.Data.SqlClient.SqlException: The transaction log for database 'xxx' is full. To find out why space in the log cannot be …

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.