2010-08-20 46 views
1

我刚刚从Access中迁移,我会不断地使用他们的GUI布局“编写”SQL。我对SQL Server非常陌生,并且很疑惑为什么SQL Server中没有查询GUI。它只是更强大的一个图形用户界面不能解决大多数查询?或者,它就像是一个纯粹的事物,一旦人们不再需要像Access那样淡化数据库,他或她就应该足够了解SQL,以便随时编写它。或者完全错了,大多数程序员编写SQL有一种图形化的方式吗?关于SQL Server查询组合的10,000英尺概述问题

对不起,我想这里有一些理论能够帮助我更好地理解大局。

+0

您使用的是哪种版本的sql server? – 2010-08-20 09:12:06

+2

好吧,我不能说所有的SQL开发人员,但我已经学会了SQL的“纯粹”方式(尽管可能不是纯粹主义的动机,而是因为没有任何类似GUI的老式天),现在我熟悉它了,我会发现一个图形查询设计器笨重,分散注意力和笨重... – Timwi 2010-08-20 09:17:59

+0

@Timwi恕我直言,我认为这是开发人员更快的方式。情况是,许多经理/审计员/顾问转换成excel或访问某个SQL数据库,而他们需要这样的设计者来创建数据报告。对于创建整体视图并将其调整为记住数据库的所有结构的简单SQL来说,它们更快,开发人员无需创建此类报表,有时需要创建视图,但通常这种视图非常复杂,以至于无法在设计器中创建要困难得多。我无法想象如何使用设计器来调整查询。 – 2010-08-20 09:44:11

回答

2

SQL Server是一个数据库服务器。它自己没有任何编辑器文本或GUI。您可以从控制台或任何可能具有或不具有查询设计器的专用软件对其进行管理。

Access和SQL Server或任何其他数据库之间的主要区别在于MS Access是将数据存储在文件中的应用程序,当您关闭“Access”时,您可能会在数据库内发生任何事情,而您正在使用SQL Server它一直在你只连接到它。这就是为什么访问建立良好的查询,报表设计师。 SQL Server有完全不同的工作要做,不需要这个。使用SQL Server,我们拥有Sql Server Management Studio,不仅为表创建和查询设计提供全局管理,还有很多后台工作人员正在进行例如用户管理,维权工作。

因此,并不是说SQL Server没有查询设计器,您只是不使用适当的软件来处理它。功能完整的应用程序是ChrisW提供的SSMS。

+0

当然,但您可以完全按照访问SQL Server数据库的方式访问Access数据库引擎。 SSMS附带SQL Server。所以我不确定这里有一个实际的区别? – Rup 2010-08-20 09:53:21

2

实际上有一个用于视图和查询的GUI设计器。只需使用SQL Server Management Studio。

例如在“视图”上右键单击并选择“添加视图...”。视图GUI看起来与访问中的非常相似。

1

关于MySQL的AFAIK。早些时候有MySQL工具套件,现在有一套工具,现在有你可能会说的,但它绝对是一个定时器。

0

首先,我相信SQL Server Management Studio中的查询设计器可能与您在Access中使用的相同。我不是非常精通使用Access,除非通过代码,但我认为你可以在那里做你想做的事情(在查询设计器中)。我从来没有发现它是非常灵活的,所以我总是最终回到代码本身,但是你去了。我的其他答案有点偏离主题(并且主要针对google的发布),但是如果您是开发人员(特别是使用SQL Server),它可能仍适用于:Visual Studio中的Linq to SQL。

我一直在开发针对SQL Server数据库大约7年,现在大部分时间都是用手写SQL语句。去年,我改变了工作,最终有一个环境,我的程序使用的数据库是本地的,并没有改变结构。我终于有了一个很好的机会开始使用Linq!

Linq是一个非常有用的工具!我现在几乎(不完全)将它用于代码中的所有数据库交互。

基本要点是您在dbml文件中创建图形数据库布局。这种布局包括作为对象的表格(或视图)和作为对象之间链接的关联(PK/FK关系)。如何设置关联会确定该属性是单个对象还是该对象的实体集。想象一下,你有以下几点:

TABLE (ORDERS)  TABLE (CUSTOMERS) 
--------------  ---------------- 
PrimKey 
CustomerID --(FK)--> PrimKey 
OrderDate   CompanyName 

使用LINQ to SQL,当你运行像下面这样:

Using db as new DataBaseContext 
    Dim orders = (From iOrder In db.ORDERS Order By iOrder.Customer.CompanyName).ToList 
End Using 

你有订单对象各自拥有其相应的客户列表结束目的。您可以将其设置为具有对象层次结构,并且它几乎可以像您期望的那样工作。

无论如何,这是一个相当大的话题,更多的进入比这里适当,但足以说我认为这是一个伟大的技术,桥接图形交互与真实的,基本的代码。