2010-08-20 39 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 

你有訂單對象各自擁有其相應的客戶列表結束目的。您可以將其設置爲具有對象層次結構,並且它幾乎可以像您期望的那樣工作。

無論如何,這是一個相當大的話題,更多的進入比這裏適當,但足以說我認爲這是一個偉大的技術,橋接圖形交互與真實的,基本的代碼。