Questions tagged «sql»

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

5
MySQL错误1264:列的值超出范围
正如我SET在MySQL的表中这样显示cust_fax: cust_fax integer(10) NOT NULL, 然后我插入这样的值: INSERT INTO database values ('3172978990'); 但是然后说 “错误1264”列的值不足 我想知道错误在哪里?我的套装?或其他? 任何答案将不胜感激!
77 mysql  sql  insert  integer 


8
标准使用“ Z”而不是NULL来表示丢失的数据?
除了是否应使用NULL之外,我还负责一个现有数据库,该数据库使用NULL表示“丢失或从未输入”数据。它不同于空字符串,它表示“用户设置了该值,并且他们选择了'空'”。 该项目的另一个承包商坚决主张“对于我来说不存在NULL;我从不使用NULL,并且任何人都不应使用NULL”。但是,令我困惑的是,由于承包商的团队确实承认“缺少/从未输入”和“故意空着或由用户指示为未知”之间的区别,因此他们在整个代码和存储过程中使用单个字符“ Z”表示“缺少/从未输入”,在整个数据库的其余部分中的含义与NULL相同。 尽管我们共享的客户要求更改此设置,而我也支持此要求,但是该团队将其称为比我更先进的DBA中的“标准做法”。他们不愿意仅根据我的无知请求更改为使用NULL。那么,有人可以帮助我克服我的无知吗?在SQL专家中,是否有任何标准或一小群人,甚至是一个大声的提倡使用“ Z”代替NULL的人? 更新资料 我有承包商的回应要补充。当客户要求删除特殊值以允许无数据列中的NULL时,他说的是这句话: 基本上,我设计数据库时要尽可能避免NULL。这是基本原理: •不需要在字符串[VARCHAR]字段中使用NULL,因为空(零长度)字符串会提供完全相同的信息。 • 整数字段(例如,ID值)中的NULL可以通过使用数据中永远不会出现的值(例如,整数IDENTITY字段为-1)来处理。 • 日期字段中的NULL会很容易导致日期计算复杂化。例如,在计算日期差异(例如[RecoveryDate]和[OnsetDate]之间的天数差异)的逻辑中,如果一个或两个日期为NULL,则逻辑将爆炸-除非为两个日期都明确允许为NULL。那是额外的工作和额外的处理。如果[RecoveryDate]和[OnsetDate]使用“默认”或“占位符”日期(例如“ 1/1/1900”),则数学计算可能会显示“异常”值-但日期逻辑不会爆炸。 传统上,NULL处理是开发人员在存储过程中犯错的领域。 在我作为DBA的15年中,我发现最好尽可能避免使用NULL。 这似乎证实了对该问题的大部分消极反应。不是使用公认的6NF方法来设计NULL,而是使用特殊值来“尽可能避免NULL”。我以开放的态度发表了这个问题,很高兴我了解到更多有关“空值有用/空值很邪恶”的辩论,但是现在我很乐意将“特殊值”方法标记为完全废话。 空(零长度)字符串将提供完全相同的信息。 不,不是。在我们正在修改的现有数据库中,NULL表示“从未输入”,空字符串表示“输入为空”。 传统上,NULL处理是开发人员在存储过程中犯错的领域。 是的,但是成千上万的开发人员已经犯下了数千次错误,而且避免这些错误的教训和警告也广为人知并记录在案。如此处所述:无论您接受还是拒绝NULL,缺失值的表示都是一个已解决的问题。无需仅仅因为开发人员不断犯下易于克服(且易于识别)的错误而发明新的解决方案。 作为一个脚注:我已经成为DBE和开发人员已有20多年了(对于我来说,足够时间了解数据库工程师和数据库管理员之间的区别)。在我的整个职业生涯中,我一直都处于“ NULL是有用的”阵营,尽管我知道几个非常聪明的人不同意。我对“特殊价值”方法非常怀疑,但是对“如何避免以正确方式避免NULL”的学术知识不够扎实。我一直喜欢学习新事物,而且20年后我仍然有很多东西要学习。感谢所有为此做出有益讨论的人。

8
为什么不使用varchar(max)?
关于数据库设计,我有点老了,所以我完全赞成在列中使用正确的数据大小。但是,在查看一个朋友的数据库时,我注意到他使用varchar(max)了很多东西。现在,我立即想到的是将其退还给他,并告诉他进行更改。但是后来我考虑了一下,不能为他不使用它提供充分的理由(如果您想知道的话,他曾使用过一个案例类型工具来生成数据库)。 我一直在研究varchar(max)用法的主题,但我不能提出任何不使用它的充分理由。 他不使用列作为索引,位于数据库上的应用程序对输入有限制,因此不允许在字段中输入大量条目。 任何帮助将不胜感激,以帮助我让他看到光:)。

3
SQL多重连接语句
当我的SQL语句中只有一个内部联接时,它可以很好地工作。我尝试加入第二个表,现在出现一个错误,提示存在语法错误(缺少运算符)。怎么了 adsFormView.SelectCommand = "SELECT * FROM [tableCourse] INNER JOIN [tableGrade] ON [tableCourse].[grading] = [tableGrade].[id] INNER JOIN [tableCourseType] ON [tableCourse].[course_type] = [tableCourseType].[id] WHERE [prefix]='" & myPrefix & "' AND [course_number]='" & myCourseNum & "'"
76 sql  ms-access 

7
MySQL:如何在查询中的日期时间字段中添加一天
在我的表我有一个名为领域eventdate中datetime类似的格式2010-05-11 00:00:00。 我如何进行查询,以使其在一天中增加一天,eventdate例如今天是2010-05-11,我想显示inwhere子句以返回带有明天日期的所有记录。 更新: 我尝试了这个: select * from fab_scheduler where custid = 1334666058 and DATE_ADD(eventdate, INTERVAL 1 DAY) 但是不幸的是,即使我添加的间隔大于1,它也会返回相同的记录。 结果: 2010-05-12 00:00:00 但是我只想选择明天的记录。
76 mysql  sql 

6
索引布尔字段
这可能是一个非常愚蠢的问题,但是对数据库表中的布尔字段建立索引是否会有很多好处? 在常见情况下,例如将“软删除”记录标记为非活动状态,因此大多数查询都包括WHERE deleted = 0,这将有助于对该字段进行单独索引,还是应将其与其他常见搜索字段结合使用不同的索引?
76 sql  mysql  database  indexing 


4
sqlite将数据从一个表复制到另一个表
SQLITE 我有2个表“ Source”和“ Destination”具有相同的字段。ID和COUNTRY,尽管它们也都有其他不相同的字段。 我需要将Source.Country值复制到联接在ID上的Destination.Country 对于我一生,我无法让Sqlite做到这一点。 在SQL Server等中,这是一个非常简单的任务。 有想法吗?
76 sql  sqlite 

5
更新条目而不更新时间戳
我在mysql表中有一个属性为“ ON UPDATE CURRENT_TIMESTAMP”的时间戳。有没有办法在特殊情况下手动禁用更新时间戳?(例如:更新条目以修改博客文章,但不重新添加日期)
76 mysql  sql  timestamp 


13
SQL Server-布尔文字?
如何在SQL Server中写入文字布尔值?查看示例用法: select * from SomeTable where PSEUDO_TRUE 另一个样本: if PSEUDO_TRUE begin select 'Hello, SQL!' end 注意:上面的查询与我将如何使用它无关。这只是测试文字布尔值。

5
如何使用计算列在同一视图中计算另一列
我希望您能为这个问题提供帮助。我正在使用Oracle SQL(此视图为SQL Developer)... 如果我有一个包含以下列的表格: 列A(数字) ColumnB(编号) ColumnC(编号) 我认为我有 Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1 现在,我要使用calccolumn1,但我不能只说... Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1 calccolumn1 / ColumnC as calccolumn2 我假设我需要某种类型的子查询。但这是我需要您帮助的地方...我该如何查询查询的词,以便可以在同一查询的另一计算中使用calccolumn1?可能是“ If then”或“ Case when”,但最重要的是它是某个派生数字。
76 sql  oracle 

4
Laravel 5雄辩的条款和/或条款
我尝试从具有多个where和/或子句的表中获取结果。 我的SQL语句是: SELECT * FROM tbl WHERE m__Id = 46 AND t_Id = 2 AND (Cab = 2 OR Cab = 4) 我如何通过Laravel Eloquent获得此信息? 我在Laravel中的代码是: $BType = CabRes::where('m_Id', '=', '46') ->where('t_Id', '=', '2') ->where('Cab', '2') ->orWhere('Cab', '=', '4') ->get();
76 sql  laravel  eloquent 


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.