Questions tagged «sql»

结构化查询语言(SQL)是一种用于在关系数据库管理系统中管理数据的语言。该标签用于一般的SQL编程问题。它不适用于Microsoft SQL Server(为此,请使用sql-server标记),也不能单独引用SQL的特定方言。

2
您如何对ETL和报告项目进行单元测试\使用TDD方法?
ETL项目是使用诸如SSIS,PowerCenter等ETL(提取-转换-加载)工具创建的项目。 这些通常涉及从外部源读取数据,将其加载到暂存数据库,执行某些转换并将其加载到最终数据库。 一个简单的例子是使用SSIS来读取教师使用SSIS提供的excel文件并将其加载到数据库中。然后编写存储过程或更多SSIS包以计算每个学生的成绩并将该数据加载到数据集市\仓库中 然后,您在集市上构建存储过程以生成输出,报告工具(SSRS \ Excel \ etc)使用该输出来生成可视化。 我试图了解在这种情况下如何执行TDD和适当的单元测试。ETL的测试主要是确保登台表中加载的数据与源中数据的正确子集匹配。因此,对其进行测试将导致实现ETL的迷你版本。报告SP的输出取决于表本身中的数据,因此即使没有创建包含清理的测试数据的数据库,也没有维护的噩梦就无法拥有稳定的输出数据集。 例: 冲刺1:学生表包含姓名,年龄,年级 您为此表创建测试数据,并基于该表进行单元测试 冲刺2:性别字段添加到表中。 现在,如果刷新学生字段中的数据以填充性别属性,则由于数据已更改,因此测试用例将无效。如果您不这样做,就无法创建需要性别列的测试用例
12 unit-testing  sql  tdd 

4
为什么Prolog在命令式编程中不如SQL流行的历史先例?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 似乎编写声明式 SQL在命令式编程中很受欢迎。但是,编写声明式代码 似乎也Prolog可以节省很多复杂性,但这并不是很常见。 对于这种明显的优先于Prolog的SQL,是否有历史的先例? 如果原因是命令式语言缺乏本机支持,那么是否有可能回答为什么语言创建者最初对本机支持没有帮助Prolog呢? 提供一些具体示例: 示例1: 评估贷款申请可能只需要输入几行代码Prolog,就像SELECT/JOIN查询只需要输入几行代码一样SQL,但似乎好处不如SQL。 示例2 这是Prolog中的另一个示例问题和解决方案。以下约束逻辑程序代表约翰作为老师的历史的简化数据集: teaches(john, hardware, T) :- 1990 ≤ T, T < 1999. teaches(john, software, T) :- 1999 ≤ T, T < 2005. teaches(john, logic, T) :- 2005 ≤ T, T ≤ 2012. rank(john, instructor, T) :- 1990 ≤ T, …

4
C#最小SQL数据库
我正在做一个小项目(而不是生产项目),在这里我需要存储足够的数据,以至于像CSV这样的处理效率低下,而SQL / MySQL服务器则太多了。.Net是否有任何方法可以有效地存储多个数据条目,并且具有查询的能力,而无需管理和连接到服务器,而只需加载和处理单个文件。
12 c#  database  sql 

4
存储n-gram数据
我希望就存储n- gram数据的问题进行一些讨论。在我的项目中,我正在尝试解决所有我知道(n -1)个数据项的语言问题,并希望在所有适用的n- gram上使用线性插值来统计地猜测我的n。(是的,有一个标记器根据其词典将标记分配给已知单词,还有一个后缀树试图猜测未知单词的单词种类;这里讨论的n -gram组件将负责解决歧义。) 我最初的方法是简单地将所有观察到的n元(对于n = 1..3,即会标,二元组,三元组)数据存储在相应的SQL数据库中,并称之为一天。但是我的项目要求可能会改变,以包括其他向量长度(n),我希望我的应用程序能够适应4克语言而无需进行大量工作(更新架构,更新应用程序代码等);理想情况下,我只是简单地告诉我的应用程序现在可以处理4克代码,而不必太多(或根本不需要)更改代码并从给定的数据源训练其数据。 总结所有要求: 能够存储n克数据(最初用于n = {1,2,3} 能够更改应使用哪种n- gram(在应用程序运行之间) 能够(重新)训练n- gram数据(在应用程序运行之间) 能够查询数据存储(例如,如果我观察到A,B,C,我想知道使用我训练有素的4、3、2、1克数据集后最常观察到的项目) 该应用程序很可能是读取繁重的,很可能不会经常重新训练数据集 该解决方案采用.NET Framework(最高4.0) 现在,哪种设计更适合此类任务? 由SQL服务器(MSSQL,MySQL等)为每个n管理的固定表(例如,用于二元语法,三元语法等的专用表) 还是将第一个n -1 存储为文档的键的NoSQL文档数据库解决方案,并且文档本身包含第n个值和观察到的频率? 还是有所不同?

17
仍然需要编写SQL吗?
拥有适用于大多数现代语言的众多ORM工具,是否仍存在用支持它们的语言/环境在程序中编写和执行SQL的用例?如果可以,为什么? 为了清楚起见:我不是在问程序员是否需要了解SQL,或者我是否应该在桌面上安装SQL工具。我在问一个具体的原因,为什么我可能会在代码(或配置或其他内容)中使用它而不是ORM。
12 design  sql 

2
在没有ORDER BY子句的情况下按什么顺序获取行?
一位程序员正在测试和比较使用相同数据库结构和相同数据的同一应用程序,仅在两个单独的数据库中进行比较,一个数据库使用Oracle 8,一个数据库使用Oracle 9。 该应用程序运行不带 ORDER BY子句的查询。 他声称,ORDER-BY-less查询应在两个数据库中以相同顺序返回行。 我告诉他,除非您明确提供ORDER BY子句,否则不能保证同一行顺序。 该数据库具有相同的索引和键。但是解释计划表明,在其中一个数据库中,引擎使用的是连接表之一的键,而在另一个数据库中,引擎使用的是另一个表的键。 他暗示这两个数据库环境不相等,这是因为它们具有不同的统计信息,不同的rdbms引擎等,但不是因为我未能复制原始数据库具有的每个索引。 我告诉他,ORDER BY如果命令真的那么重要,他必须明确提供一个条款。 问题 所以我可以更好地向他解释: 当您不显式提供ORDER BY子句时,查询以什么顺序获取行,为什么该查询不按相同顺序返回行?
11 sql  oracle  rdbms 

7
如何使程序员停止编写易受SQL注入攻击的代码?
有时您会很忙,将一些小任务委派给初级程序员。但是,如果您没有给予足够的关注,您就会在生产中使用这种代码: class DivtoggleController extends Zend_Controller_Action { public function closeAction() { /* ... code removed for brevity ... */ $req = $this->getRequest(); $formData = $req->getPost(); $d = $formData['div']; $i = $formData['id']; $dm = new Model_DivtoggleManager(); $rs = $dm->setDivToggleById($d, $i); } } class Model_DivtoggleManager extends Zend_Db_Table { public function setDivToggleById($div, $id) { …
11 php  sql  training 

2
(基本)SQL查询在语义上是否等同于高阶函数?
SQL基本上是map + fold + filter的特定于域的实例吗? 在我看来,以下SQL: SELECT name FROM fruits WHERE calories < 100 只是以下map + filter + fold操作的语法糖: var fruits = [{id : 1, name: 'orange', calories : 100}, {id : 2, name : 'banana', calories : 150}, {id : 3, name: 'apple', calories : '50'}]; fruits.map(function(fruit) { return …

2
在哪里为我的班级建立公共数据库连接
我有几个类(资源库),它们负责在数据库中保存/检索某些对象的任务。它们都需要与一个数据库建立连接。 我认为为了避免在每个类中重新定义ConnectionString和SqlConnection,将开放的连接传递给它们。那么定义/打开该连接并将其传递给类的最佳位置/时间在哪里/何时? 是否有更好的方法/模式可以访问此公共资源?
11 c#  sql  class-design 

2
格式化SQL代码的算法
我需要一个用于内部使用的工具,该工具将格式化SQL代码(SQL Server / MySQL)。 有各种各样的第三方工具和在线网站可以执行此操作,但并非完全符合我的需要。 因此,我想编写适合自己需求的工具。 第一个问题是否存在有关应如何格式化SQL代码的标准或约定?(我尝试过的工具采用不同的格式) 第二个问题,我应该如何完成这项任务?首先应该将sql查询转换为某种数据结构,例如Tree吗?

7
嵌套实体和叶实体属性的计算-SQL或NoSQL方法
我正在从事一个名为“菜单/食谱管理”的业余项目。 这就是我的实体及其关系的样子。 A Nutrient具有属性Code和Value 一个Ingredient具有集合Nutrients 一个Recipe具有的收藏,Ingredients有时也可以具有其他的收藏recipes 一个Meal有一个收集Recipes和Ingredients 一个Menu有集合Meals 关系可以描述为 在其中一个页面中,对于所选菜单,我需要显示根据其成分(膳食,食谱,成分和相应的营养素)计算出的有效营养素信息。 到目前为止,我正在使用SQL Server来存储数据,我正在从C#代码导航链,从菜单的每一餐开始,然后汇总营养值。 我认为这不是一种有效的方法,因为每次请求页面时都会进行此计算,并且成分会偶尔更改。 我在考虑有一个后台服务,该服务维护一个称为MenuNutrients({MenuId, NutrientId, Value})的表,并且在任何成分(餐,菜谱,成分)发生变化时,将使用有效营养素填充/更新该表。 我认为GraphDB非常适合此要求,但是我接触NoSQL的机会有限。 我想知道显示给定菜单营养的这种要求的替代解决方案/方法是什么。 希望我对场景的描述清楚。

4
是否应该从页面本身抽象数据库查询?
当用PHP编写页面生成时,我经常发现自己写了一些乱七八糟的数据库查询文件。例如,我可能有一个查询来直接从数据库中获取有关帖子的一些数据以显示在页面上,如下所示: $statement = $db->prepare('SELECT * FROM posts WHERE id=:id'); $statement->bindValue(':id', $id, PDO::PARAM_INT); $statement->execute(); $post = $statement->fetch(PDO::FETCH_ASSOC); $content = $post['content'] // do something with the content 这些快速的一次性查询通常很小,但是有时我最终会遇到很大一部分数据库交互代码,这些代码看起来看起来很混乱。 在某些情况下,我通过创建一个简单的函数库来处理与帖子相关的数据库查询来解决此问题,并将该代码块简化为简单的代码: $content = post_get_content($id); 那太好了。或者至少直到我需要做其他事情为止。也许我需要获取五个最新帖子才能显示在列表中。好吧,我总是可以添加另一个功能: $recent_posts = post_get_recent(5); foreach ($recent_posts as $post) { ... } 但这最终会使用SELECT *查询,无论如何我通常通常并不需要它,但是它通常太复杂而无法合理地抽象。最终,我将获得针对每个用例的庞大的数据库交互功能库,或者在每个页面的代码中包含一系列混乱的查询。即使建立了这些库,我也会发现自己需要做一个以前从未使用过的小联接,而且突然我需要编写另一个高度专业化的函数来完成这项工作。 当然,我可以将这些功能用于一般用例和特定交互的查询,但是,一旦我开始编写原始查询,我便开始回落到直接访问所有内容的位置。要么这样做,要么我会变得懒惰,并且将开始在PHP循环中执行操作,无论如何,它们实际上应该直接在MySQL查询中直接完成。 我想问一下那些具有编写Internet应用程序的经验的人:可维护性的提高是否值得额外的代码行以及抽象可能带来的低效率?还是简单地使用直接查询字符串是处理数据库交互的可接受方法?

3
XML与SQL小型项目?
我正在做一个小项目,因为它是本地应用程序(在WPF和C#中开发),所以一次只能有一个用户。为了存储数据,我曾考虑使用XML文件,但我想知道这是否是最佳方法。 数据用于什么: 舍杜勒斯 文件夹中的文件库(带有艺术家名称,标题,HDD上的位置) 可能基于统计数据进行统计 ... 我想像中有关该库的信息会很好用XML,但是对于其余所有信息我都不太确定。同样,就开发速度而言,LINQ to SQL似乎比LINQ to XML更具收益。这是正确的还是我错了?我不确定是否应该将其发布在SO上或此处,但在这里似乎更合适! 先感谢您
10 sql  wpf  xml 

6
使用ORM可以使哪种Web开发项目受益?
首先,我说我已经使用SQL完成了95%的数据库工作。最近,我对各种ORM(例如NHibernate和Doctrine)进行了调查。 我可以看到不需要了解很多SQL和ORM提供的数据库可移植性的优点。但是我还可以看到,了解SQL将使使用ORM更加有效,而且我只能在职业生涯中一次想到,应用程序最大的改变就是数据库供应商。 因为我很舒服地编写SQL,并且显然没有意识到使用ORM的通常所教的好处,所以我对大量ORM用户的疑问是: 哪种Web开发项目从使用ORM中受益最大?

12
“ SELECT *”如何用英语阅读?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 前几天,一个朋友告诉我,在美国,他们说的SQL像squel一样,而不是es-qu-el。我很惊讶。我想知道谈话时如何读/读“ SELECT *”。 选择明星? 选择星号? 全选?
10 sql 

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.