Questions tagged «sql»

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


5
SQL多列排序
我试图按SQL中不同方向的多个列进行排序。column1将按降序和column2升序排序。 我怎样才能做到这一点?
634 sql  sql-order-by 

12
何时在MySQL中使用单引号,双引号和反引号
我正在尝试学习编写查询的最佳方法。我也了解保持一致的重要性。到现在为止,我在没有任何实际思考的情况下随机使用了单引号,双引号和反引号。 例: $query = 'INSERT INTO table (id, col1, col2) VALUES (NULL, val1, val2)'; 另外,在上述例子中,考虑到table,col1,val1等可以是变量。 这是什么标准?你是做什么? 我已经在这里阅读了大约20分钟的类似问题的答案,但是似乎没有确切的答案。
633 mysql  sql  quotes 


30
获取具有列最大值的行
表: UserId, Value, Date. 我想获取UserId,每个UserId的max(Date)值。即,具有最新日期的每个UserId的值。有没有办法在SQL中简单地做到这一点?(最好是Oracle) 更新:对于任何歧义,我们深表歉意:我需要获取所有UserIds。但是对于每个UserId,仅该用户具有最新日期的那一行。



15
SQL SELECT WHERE字段包含单词
我需要一个选择将返回如下结果: SELECT * FROM MyTable WHERE Column1 CONTAINS 'word1 word2 word3' 我需要所有结果,即这包括带有'word2 word3 word1'或'word1 word3 word2'或三者的任何其他组合的字符串。 所有单词都必须包含在结果中。
561 sql  select 


9
使用mysqldump跳过某些表
有没有办法限制来自mysqldump命令的某些表? 例如,我将使用以下语法仅转储table1和table2: mysqldump -u username -p database table1 table2 > database.sql 但是,有没有类似的方法来转储除 table1和table2 之外的所有表?我没有在mysqldump文档中找到任何东西,所以暴力破解(指定所有表名)是唯一的方法吗?
556 sql  mysql  database  mysqldump 

24
是否可以一次在SQLite数据库中插入多行?
在MySQL中,您可以像这样插入多行: INSERT INTO 'tablename' ('column1', 'column2') VALUES ('data1', 'data2'), ('data1', 'data2'), ('data1', 'data2'), ('data1', 'data2'); 但是,尝试执行此类操作时出现错误。是否可以一次在SQLite数据库中插入多行?这样做的语法是什么?
551 sql  sqlite  syntax 


17
如何从mysqldump恢复转储文件?
我获得了一个MySQL数据库文件,需要将其还原为Windows Server 2008计算机上的数据库。 我尝试使用MySQL Administrator,但出现以下错误: 所选文件是由mysqldump生成的,无法由该应用程序还原。 我该如何工作?
542 mysql  sql  database 

11
不存在vs不存在
这些查询中哪个更快? 不存在: SELECT ProductID, ProductName FROM Northwind..Products p WHERE NOT EXISTS ( SELECT 1 FROM Northwind..[Order Details] od WHERE p.ProductId = od.ProductId) 或不在: SELECT ProductID, ProductName FROM Northwind..Products p WHERE p.ProductID NOT IN ( SELECT ProductID FROM Northwind..[Order Details]) 查询执行计划说他们都做同样的事情。如果是这样,建议使用哪种形式? 这基于NorthWind数据库。 [编辑] 刚刚发现这篇有用的文章:http : //weblogs.sqlteam.com/mladenp/archive/2007/05/18/60210.aspx 我想我会坚持不存在。
538 sql  sql-server  notin 

18
SQLite-UPSERT *不是* INSERT或REPLACE
http://en.wikipedia.org/wiki/Upsert 在SQL Server上插入更新存储的proc 在我没有想到的SQLite中,有什么聪明的方法可以做到这一点吗? 基本上,如果记录存在,我想更新四列中的三列;如果不存在,我想使用第四列的默认(NUL)值插入记录。 ID是一个主键,因此UPSERT只会有一个记录。 (我试图避免SELECT的开销,以便确定是否需要显式更新或插入) 有什么建议吗? 我无法在SQLite网站上确认TABLE CREATE的语法。我还没有建立一个演示来测试它,但是似乎不被支持。 如果是的话,我有三列,因此实际上看起来像: CREATE TABLE table1( id INTEGER PRIMARY KEY ON CONFLICT REPLACE, Blob1 BLOB ON CONFLICT REPLACE, Blob2 BLOB ON CONFLICT REPLACE, Blob3 BLOB ); 但前两个Blob不会引起冲突,只有ID会发生冲突,因此我不会替换Blob1和Blob2(根据需要) 当绑定数据是一个完整的事务时,SQLite中的UPDATE意味着要更新的每个发送行都需要:Prepare / Bind / Step / Finalize语句,与INSERT不同,后者允许使用reset函数 语句对象的寿命如下所示: 使用sqlite3_prepare_v2()创建对象 使用sqlite3_bind_接口将值绑定到主机参数。 通过调用sqlite3_step()运行SQL 使用sqlite3_reset()重置该语句,然后返回到步骤2并重复。 使用sqlite3_finalize()销毁语句对象。 我猜测UPDATE与INSERT相比比较慢,但是与使用主键的SELECT相比又如何呢? 也许我应该使用select读取第4列(Blob3),然后使用REPLACE编写一条将原始第4列与前3列的新数据混合在一起的新记录?
535 sql  sqlite  upsert 

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.