Questions tagged «sql»

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


19
ALTER TABLE没有锁定表?
当在MySQL中执行ALTER TABLE语句时,整个表在语句期间被锁定(允许并发读取,但禁止并发写入)。如果它是一个大表,则可能会在很长一段时间内阻止INSERT或UPDATE语句。有没有一种方法可以进行“热更改”,例如以在整个过程中仍可更新表的方式添加列? 通常,我对MySQL解决方案感兴趣,但如果MySQL无法做到,我也会对其他RDBMS感兴趣。 澄清一下,我的目的仅仅是避免在需要额外表列的新功能投入生产时避免停机。任何数据库架构都会随着时间而改变,这是生活中的事实。我不明白为什么我们应该接受这些变化不可避免地导致停机的原因。那太弱了。
107 sql  mysql  ddl  alter-table 

12
SQL Server报告“无效的列名”,但是该列存在并且该查询通过Management Studio工作
我陷入了僵局。我有一些C#代码生成的查询。Microsoft SQL Server Management Studio在同一数据库上运行时,查询工作正常。 但是,当我的代码尝试运行相同的查询时,我收到有关无效列的相同错误,并引发了异常。引用此列的所有查询均失败。 该列最近已添加到数据库中。这是一个名为的日期列Incident_Begin_Time_ts。 失败的示例是: select * from PerfDiag where Incident_Begin_Time_ts > '2010-01-01 00:00:00'; 其他查询Select MAX(Incident_Being_Time_ts);在代码中运行时也会失败,因为它认为缺少该列。 有任何想法吗?
107 sql  sql-server 

6
如何在PostgreSQL中通过排序删除固定数量的行?
Наэтотвопросестьответына 堆栈溢出нарусском:DELETEивLIMIT PostgreSQL的 我正在尝试将一些旧的MySQL查询移植到PostgreSQL,但是我遇到了麻烦: DELETE FROM logtable ORDER BY timestamp LIMIT 10; PostgreSQL不允许在其删除语法中进行排序或限制,并且该表没有主键,因此我不能使用子查询。另外,我想保留查询完全删除给定数字或记录的行为-例如,如果表包含30行,但它们都具有相同的时间戳,我仍然要删除10行,尽管没关系其中10。 所以; 如何在PostgreSQL中通过排序删除固定数量的行? 编辑:没有主键意味着没有log_id列或类似。啊,遗留系统的乐趣!
107 sql  postgresql 

14
用Java构建SQL字符串的最干净方法
我想构建一个SQL字符串来进行数据库操作(更新,删除,插入,选择等等)-而不是使用数百万个“ +”和引号的可怕字符串concat方法,该方法充其量是无法理解的-一定是更好的方法。 我确实考虑过使用MessageFormat-但应该将其用于用户消息,尽管我认为它会做得很合理-但是我想应该在Java sql库中有一些与SQL类型操作更为一致的东西。 Groovy会好吗?
107 java  sql  oracle  string 

15
Java编程-SQL语句应存储在哪里?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 兼容JDBC的应用程序应在哪里存储其SQL语句,为什么? 到目前为止,我设法确定了这些选项: 硬编码在业务对象中 嵌入在SQLJ子句中 封装在单独的类中,例如 数据访问对象 驱动元数据(将对象模式与数据模式分离-在元数据中描述它们之间的映射) 外部文件(例如,属性或资源文件) 存储过程 各自的“优点”和“缺点”是什么? 应该将SQL代码视为“代码”还是“元数据”? 存储过程应该仅用于性能优化还是它们是数据库结构的合法抽象? 性能是决定的关键因素吗?什么厂商锁定? 更好的是松耦合还是紧耦合,为什么? 编辑:谢谢大家的答案–以下是摘要: 元数据驱动,即对象关系映射(ORM) 优点: 非常抽象-无需更改模型即可切换DB服务器 广泛传播-实际上是一个标准 减少所需的SQL数量 可以将SQL存储在资源文件中 性能(通常)是可以接受的 元数据驱动的方法 (数据库)供应商独立性 缺点: 隐藏SQL和真正的开发人员意图 DBA难以审核/更改SQL 奇数情况下可能仍需要SQL 可以强制使用专有查询语言,例如HQL 不适合进行优化(抽象) 可能缺乏参照完整性 缺乏SQL知识或对数据库中的代码缺乏关注的替代品 永远无法达到本机数据库的性能(即使相差无几) 模型代码与数据库模型紧密结合 硬编码/封装在DAO层中 优点: SQL保留在访问数据的对象(封装)中 SQL易于编写(开发速度) 需要更改时,SQL很容易跟踪 简单的解决方案(没有凌乱的架构) 缺点: DBA无法检查/更改SQL SQL可能成为特定于DB的 SQL可能变得难以维护 存储过程 优点: …
107 java  sql 

7
在PostgreSQL中发现表的行数的快速方法
我需要知道表中的行数以计算百分比。如果总计数大于某个预定义常数,我将使用该常数值。否则,我将使用实际的行数。 我可以用SELECT count(*) FROM table。但是,如果我的常量值为500,000,并且表中有5,000,000,000行,则对所有行进行计数将浪费大量时间。 一旦超过我的恒定值,是否可以停止计数? 我只需要确切的行数,只要它低于给定的限制即可。否则,如果计数超出限制,我将改用限制值,并希望尽快给出答案。 像这样: SELECT text,count(*), percentual_calculus() FROM token GROUP BY text ORDER BY count DESC;
107 sql  postgresql  count  row 

12
SQL Server 2008中“ WHERE”子句中的“ CASE”语句
我正在使用在“ WHERE”子句中包含“ CASE”语句的查询。但是,SQL Server 2008在执行时会出现一些错误。有人可以帮助我提供正确的查询吗?这是查询: SELECT tl.storenum 'Store #', co.ccnum 'FuelFirst Card #', co.dtentered 'Date Entered', CASE st.reasonid WHEN 1 THEN 'Active' WHEN 2 THEN 'Not Active' WHEN 0 THEN st.ccstatustypename ELSE 'Unknown' END 'Status', CASE st.ccstatustypename WHEN 'Active' THEN ' ' WHEN 'Not Active' THEN ' ' ELSE st.ccstatustypename …
106 sql  sql-server  case 


20
如何在SQL运行计数器中找到“差距”?
我想在SQL表的计数器列中找到第一个“间隙”。例如,如果有值1,2,4和5,我想找出3。 我当然可以按顺序获取值并手动进行处理,但是我想知道是否可以在SQL中进行处理。 另外,它应该是非常标准的SQL,可以与不同的DBMS一起使用。

3
从PostgreSQL中的子查询更新或插入(多行和多列)
我正在尝试在postgres中执行以下操作: UPDATE table1 SET (col1, col2) = (SELECT col2, col3 FROM othertable WHERE othertable.col1 = 123); INSERT INTO table1 (col1, col2) VALUES (SELECT col1, col2 FROM othertable) 但是,即使使用文档(http://www.postgresql.org/docs/9.0/static/sql-update.html)中提到的postgres 9.0,也无法实现第1点 同样,第2点似乎不起作用。我收到以下错误:子查询必须仅返回一列。 希望有人对我有解决方法。否则查询将花费大量时间:(。 仅供参考:我正在尝试从多个表中选择不同的列,并将它们存储到临时表中,以便另一个应用程序可以轻松地获取准备好的数据。

3
SQL Server中一个奇怪的操作问题:-100 / -100 * 10 = 0
如果执行SELECT -100/-100*10,结果为0。 如果执行SELECT (-100/-100)*10,结果为10。 如果执行SELECT -100/(-100*10),结果为0。 如果执行SELECT 100/100*10,结果为10。 BOL指出: 当表达式中的两个运算符具有相同的运算符优先级时,将根据它们在表达式中的位置从左到右进行评估。 和 Level Operators 1 ~ (Bitwise NOT) 2 * (Multiplication), / (Division), % (Modulus) 3 + (Positive), - (Negative), + (Addition), + (Concatenation), - (Subtraction), & (Bitwise AND), ^ (Bitwise Exclusive OR), | (Bitwise OR) BOL是错误的,还是我缺少什么?似乎-取消(预期)优先顺序。


2
如何在PostgreSQL中的函数内返回SELECT的结果?
我在PostgreSQL中有此功能,但是我不知道如何返回查询结果: CREATE OR REPLACE FUNCTION wordFrequency(maxTokens INTEGER) RETURNS SETOF RECORD AS $$ BEGIN SELECT text, count(*), 100 / maxTokens * count(*) FROM ( SELECT text FROM token WHERE chartype = 'ALPHABETIC' LIMIT maxTokens ) as tokens GROUP BY text ORDER BY count DESC END $$ LANGUAGE plpgsql; 但是我不知道如何在PostgreSQL函数中返回查询结果。 我发现返回类型应该为SETOF RECORD,对吗?但是return命令不正确。 …


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.