首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 實戰:使用 ISQL/w 執行查詢、多表聯結與關聯查詢(初階教學第 2 部分)

     編輯:關於SqlServer

啟動 ISQL/w 並連線資料庫

安裝 SQL Server 時會一併安裝 ISQL/w,可互動式執行 SQL 查詢,適合開發前測試。

  1. 從工作列「SQL Server 程式群組」啟動 ISQL/w
  2. 輸入伺服器名稱(本機即電腦名)、登入帳密或選「可信連接」
  3. 連線成功後,從下拉清單選擇資料庫(範例使用 pubs 範例資料庫)

第一支 SELECT 查詢

SELECT phone FROM authors WHERE au_name = "Ringer"

從 authors 表取出姓名為 Ringer 的作者電話。使用 WHERE 子句篩選條件。

查詢所有資料與多欄位選取

  • 取出所有電話:SELECT phone FROM authors
  • 指定多欄位:SELECT au_fname, au_lname, phone FROM authors
  • 取出所有欄位:SELECT * FROM authors(常用於檢視表結構)

多表查詢與聯結關鍵

單純列出多表會產生笛卡兒積(所有組合),須指定關聯條件:

-- 錯誤範例:產生所有作者×書名組合
SELECT au_lname, title FROM authors, titles

-- 正確:透過中介表 titleauthor 聯結
SELECT au_name, title
FROM authors, titles, titleauthor
WHERE authors.au_id = titleauthor.au_id
  AND titles.title_id = titleauthor.title_id

titleauthor 為關聯表,僅含兩表主鍵,解決多對多關係。

一對一/一對多關係:直接用共同欄位聯結

SELECT title, pub_name
FROM titles, publishers
WHERE titles.pub_id = publishers.pub_id

無需第三張表。欄位名前綴「表名.」可避免同名欄位混淆。

總結

  • ISQL/w 是測試查詢的最佳工具
  • WHERE 篩選、* 全選、逗號分隔多欄位
  • 多表查詢必須指定關聯條件,否則產生無意義組合
  • 依關係類型選擇:多對多用關聯表,一對一/多用共同欄位
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved