Questions tagged «sql»

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

1
用于在JSON数组中查找元素的索引
我有一个看起来像这样的表: CREATE TABLE tracks (id SERIAL, artists JSON); INSERT INTO tracks (id, artists) VALUES (1, '[{"name": "blink-182"}]'); INSERT INTO tracks (id, artists) VALUES (2, '[{"name": "The Dirty Heads"}, {"name": "Louis Richards"}]'); 还有其他几列与此问题无关。将它们存储为JSON是有原因的。 我想做的是查找具有特定艺术家姓名(精确匹配)的曲目。 我正在使用此查询: SELECT * FROM tracks WHERE 'ARTIST NAME' IN (SELECT value->>'name' FROM json_array_elements(artists)) 例如 SELECT * FROM …

12
违反完整性约束:1452无法添加或更新子行:
我试图在我的注释表中插入值,但出现错误。俗话说,我不能添加或更新子行,我也不知道这意味着什么。 我的架构看起来像这样 -- ---------------------------- -- Table structure for `comments` -- ---------------------------- DROP TABLE IF EXISTS `comments`; CREATE TABLE `comments` ( `id` varchar(36) NOT NULL, `project_id` varchar(36) NOT NULL, `user_id` varchar(36) NOT NULL, `task_id` varchar(36) NOT NULL, `data_type_id` varchar(36) NOT NULL, `data_path` varchar(255) DEFAULT NULL, `message` longtext, `created` datetime DEFAULT NULL, …
84 mysql  sql 

13
获取数据库中表的列表以及每个表中的字段
我正在寻找创建一个基本的ORM(纯粹出于娱乐目的),并且想知道,是否有一种方法可以返回数据库中的表列表以及每个表的字段? 使用此方法,我希望能够遍历结果集(在C#中),然后说出结果集中的每个表(例如,使用反射来制作将包含xyz的类)。 此外,SQL Server有哪些不错的在线博客?我知道这个问题实际上是关于在Sql Server中使用系统SP和数据库的,我可以接受一般的查询,所以我对一些涵盖这种功能的博客很感兴趣。 谢谢
84 sql  tsql 

9
参数真的足以阻止Sql注入吗?
我一直在向我的同事和SO讲这件事,说明在SQL查询中,尤其是.NET应用程序中使用参数的好处。我什至甚至承诺它们可以抵抗SQL注入攻击。 但是我开始怀疑这是否是真的。是否有任何已知的SQL注入攻击都可以针对参数化查询成功执行?例如,您是否可以发送导致服务器上的缓冲区溢出的字符串? 当然,要确保Web应用程序安全是需要考虑的其他事项(例如,清理用户输入和所有其他内容),但是现在我正在考虑SQL注入。我对MsSQL 2005和2008的攻击特别感兴趣,因为它们是我的主要数据库,但是所有数据库都很有趣。 编辑:澄清我的意思是参数和参数化的查询。通过使用参数,我的意思是使用“变量”而不是在字符串中构建sql查询。 因此,不要这样做: SELECT * FROM Table WHERE Name = 'a name' 我们这样做: SELECT * FROM Table WHERE Name = @Name 然后在查询/命令对象上设置@Name参数的值。

3
仅将一个IDENTITY列插入表中的行
我有一个表Administrator,只有一个列adminId,这是主键。由于业务规则,必须采用这种方式。 我想一劳永逸地理解如何编写存储过程,以便在这样的表中插入值。我正在使用SQL Server和T-SQL,并尝试使用SCOPE_IDENTITY(),但由于该表的INSERT_IDENTITY为false或off,因此无法正常工作。 我真的不希望仅为了能够插入新行而插入虚拟值。谢谢!

8
简单的DateTime SQL查询
如何查询一定范围内的DateTime数据库字段? 我正在使用SQL SERVER 2005 错误代码如下 SELECT * FROM TABLENAME WHERE DateTime >= 12/04/2011 12:00:00 AM AND DateTime <= 25/05/2011 3:53:04 AM 请注意,我需要获取特定时间范围内的行。例如,10分钟的时间范围。 目前,SQL返回的语法不正确,位于'12'附近。”


4
为什么SQL Server不支持无符号数据类型?
我专门在考虑未签名int。 这是一个实际的示例:当您的身份列超出限制时该怎么办?可以BigInt(存储8个字节而不是4个字节)或重构应用程序以支持负整数,甚至可以按照此答案创建自己的规则;这些选项都不是最佳选择。 UInt 会是一个理想的解决方案,但SQL Server不提供(MySQL提供)。 我知道无符号数据类型不是SQL标准(SQL-2003)的一部分,但对我来说似乎仍然很浪费。 不包括这些内容的原因是什么(在SQL Server或标准中)?

16
SQL查询-在UNION中使用Order By
从两个表中提取数据时,如何以编程方式对联合查询进行排序?例如, SELECT table1.field1 FROM table1 ORDER BY table1.field1 UNION SELECT table2.field1 FROM table2 ORDER BY table2.field1 引发异常 注意:正在MS Access Jet数据库引擎上尝试这样做

7
在SQL中查询比较日期
我有一张桌子,上面列出了所有发生在11月的日期。我写了这个查询 select id,numbers_from,created_date,amount_numbers,SMS_text from Test_Table where created_date <= '2013-04-12' 此查询应返回11月(11月)中发生的所有事情,因为它发生在日期“ 2013-04-12”(12月)之前 但它只是返回的可用日期是发生在天,比04较少(2013- 04 -12) 难道只是比较一天的一部分?而不是整个日期? 如何解决这个问题? Created_date的类型为date 日期格式默认为yyyy-dd-MM
83 sql  sql-server  date  compare 

10
WHERE子句可查找特定月份的所有记录
我希望能够给存储过程一个月和一年,并使其返回该月发生的所有事情,我该怎么做,因为在某些月份的天数不同等情况下我无法进行比较? 最好的方法是什么?我可以要求根据年份和月份进行比较吗? 谢谢。

8
Postgresql表存在,但查询时获取“关系不存在”
我有一个带有许多表的postgresql数据库。如果我查询: SELECT column_name FROM information_schema.columns WHERE table_name="my_table"; 我将获得正确返回的列的列表。 但是,当我查询: SELECT * FROM "my_table"; 我得到错误: (ProgrammingError) relation "my_table" does not exist 'SELECT *\n FROM "my_table"\n' {} 关于为什么我可以获取列但无法查询表的任何想法?目标是能够查询表。
83 sql  postgresql 

10
如何更新表中的行或将其插入(如果不存在)?
我有下表的计数器: CREATE TABLE cache ( key text PRIMARY KEY, generation int ); 我想增加一个计数器,如果相应的行还不存在,则将其设置为零。有没有办法在标准SQL中没有并发问题的情况下做到这一点?该操作有时是事务的一部分,有时是独立的。 如果可能,SQL必须在SQLite,PostgreSQL和MySQL上未经修改地运行。 搜索产生了一些想法,这些想法可能遇到并发问题,或者特定于数据库: 尝试到INSERT新行,UPDATE如果有错误。不幸的是,该错误会INSERT中止当前事务。 UPDATE该行,如果未修改任何行,则为INSERT新行。 MySQL有一个ON DUPLICATE KEY UPDATE子句。 编辑:感谢所有的伟大答复。看起来Paul是对的,而且没有一种可移植的方式来做到这一点。这对我来说是非常令人惊讶的,因为这听起来像是一个非常基本的操作。


7
如何在MySQL中舍入到最接近的整数?
如何在MySQL中四舍五入到最接近的整数? 例: 12345.7344 rounds to 12345 mysql的round()功能四舍五入。 我不知道值和小数位将是多长时间,可能是10位数字和4位小数,可能是2位数字和7位小数。
83 mysql  sql  rounding 

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.