MS SQL 學習紀錄-1

这篇博客介绍了SQL语言的基础,特别是T-SQL的相关知识,包括T-SQL的简介、分类、数据操作(DML)、数据定义(DDL)和数据控制(DCL)语言。文章还详细讲解了如何载入AdventureWorksDW和AdventureWorks数据库,并提供了练习数据。通过实例,作者阐述了SELECT查询的逻辑顺序、基本语法以及如何使用DISTINCT、别名、CASE运算式和WHERE子句进行数据筛选。
摘要由CSDN通过智能技术生成

為了以後不會忘記所學,而寫了這一篇學習紀錄
建議使用 SQL Server Developer 版本作為主要練習軟體
本系列主要教於操作對於,正規化資料庫等等在此系列不贅述

T-SQL 簡介

  • Structured Query Language (SQL) 最早由 IBM 開發出來,現在已是業界標準,也變成 ANSI 和 ISO 的標準。此外,許多資料庫系統都支援 SQL 語言,並發展出自已的語言:
    – 甲骨文:PL / SQL
    –IBM DB2:SQL PL
    –Sybase:T-SQL
  • SQL 是一種宣告式語言,不用明確的告訴電腦每一步該怎麼做,所以不用迴圈語句、條件分支語句就可以傳回所要的資料,它不要求用戶指定對資料的存放方法,也不需要用戶了解其具體的資料存放方式,例:Return all the customers whose city is Portland. (傳回所有城市是波特蘭的客戶)
SELECT * 
FROM Sales.Customers
WHERE city IN ('Portland');
  • Transact-SQL (交易式結構化查詢語言) 簡稱 T-SQL。T-SQL 是微軟根據 ANSI-SQL 實作出來的結構化查詢語言,並應用於自家的產品:SQL Server。

  • 注意事項:

    SQL 是一種宣告式語言,所以從資料表查詢資料時,不用再使用迴圈方式,不斷重覆讀取一筆記錄後跳到下一筆的動作,用戶也不用知道現在在哪一筆記錄的位置上。
    SQL 會自動處理資料表並指向正確記錄的位置,一筆一筆將資料傳回給 Database Engine 處理。

T-SQL 分類

為了方便記憶,遂將 T-SQL 分成 3 大類:

  • Data Manipulation Language (DML) 資料操作(縱)語言:SELECT、INSERT、UPDATE、DELETE,常用於對資料表或檢視表的操作,本課程會花多數時間說明 SELECT 的用法
  • Data Definition Language (DDL) 資料定義語言:CREATE、ALTER、DROP,當用於定義物件結構:
    定義執行個體層級的物件,例如:資料庫
    定義資料庫層級的物件,例如:結構描述
  • Data Control Language (DCL) 資料控制語言:GRANT、REVOKE、DENY,常用於可授與權限的物件之安全性控制,在 DBA 管理會介紹
    在这里插入图片描述

資料庫練習檔案

本系列會以以下三個資料庫進行練習,不過基本上會是以TSQL2進行操作

  • AdventureWorksDW
  • AdventureWorks
  • TSQL2

链接: link 下載連結,裡面還有包含VM&SQL sever的安裝PDF

注意事項:

  • 使用實體主機和虛擬主機練習的學員,下列作業必須在「虛擬主機」上執行。(用虛擬主機操作較好,環境乾淨不易出錯)

載入AdventureWorksDW資料庫

  1. 解壓縮到指定資料夾 C:\Samples\AdventureWorksDW\,注意尾端還有一個反斜線符號。解壓縮的路徑直接將上述的路徑複製貼上就好

  2. 在 SSMS 開啟 C:\Samples\AdventureWorksDW\instawdbdw.sql

  3. 從「查詢」選擇「SQLCMD模式」
    在这里插入图片描述

  4. 按【執行】按鈕

載入AdventureWorks資料庫

  1. 解壓縮到指定資料夾 C:\Samples\AdventureWorks\,注意尾端還有一個反斜線符號。
    解壓縮的路徑直接將上述的路徑複製貼上就好
  2. 執行 SSMS,並開啟 C:\Samples\AdventureWorks\instawdb.sql
  • 找到行號 1806 行位置的指令應如右所示 CODEPAGE=‘ACP’。
  • 將 「ACP」 改為 「RAW」,改完結果應如右所示 CODEPAGE=‘RAW’。
  • 記得儲存變更。
  1. 從「查詢」選擇「SQLCMD模式」
  2. 按【執行】按鈕

TSQL2資料庫的壓縮檔

  1. 使用 7-Zip 使用「解壓縮到此」。
  2. 執行 SSMS,並開啟『TSQL2 — Setup2.sql』。
  3. 按【執行】按鈕或功能鍵【F5】。

TSQL2 資料庫幾個主要的資料表:
在这里插入图片描述

  • HR.Employees:員工資料表,儲存員工個資
  • Sales.Customers:客戶資料表,儲存客戶個資
  • Sales.Orders:訂單資料表,儲存已成立的訂單資訊
  • Sales.OrderDetails:訂單明細資料表,儲存各訂單的明細資訊
  • Production.Products:產品資料表,儲存各產品的資訊
  • Production.Categories:產品類別 (產品目錄) 資料表,儲存產品類別的資訊
  • Production.Suppliers:產品供應商資料表,儲存供應商的個資

建立資料庫圖表

方便日後查詢方便,將練習用的資料表建立關聯性

  • 首次使用時,必須安裝圖表支援
    在这里插入图片描述

  • 加入那些有 Schema 名稱,但不包含數值 2 的資料表
    在这里插入图片描述

  • 最後的結果
    在这里插入图片描述

  • 儲存 (檔名自訂)
    在这里插入图片描述

SQL 的「查詢」

T-SQL 的指令或陳述式可以在 SSMS 的「查詢視窗」中執行,輸入指令前,必須先點選【新增查詢】開啟一個新的「查詢視窗」
在这里插入图片描述

「查詢視窗」各部份說明

在这里插入图片描述
「查詢視窗」可儲存副檔名為 .sql 的 T-SQL 指令檔

注意事項:
按 【F5】 可以執行「查詢視窗」的所有 T-SQL 指令或陳述式
若要執行指定的 T-SQL 指令或陳述式,只要在「查詢視窗」中,利用滑鼠選取 (反白) ,再按 【F5】 即可
T-SQL 指令或陳述式也可以在命令列工具的 SQLCMD.exe 中執行
目前 T-SQL 指令或陳述式結尾處,並未全面強制要求加上分號 ( ; ) 的符號,但有些新的 T-SQL 指令或陳述式結尾處必須加上分號 ( ; ),建議加上分號 (;)養成習慣

查詢資料

使用 GUI 界面,在欲查詢的資料表,使用【選取前 1000 個資料列】來產生查詢指令
在这里插入图片描述
自動開啟一個新的「查詢視窗」
在这里插入图片描述
使用 T-SQL 陳述式查詢資料表

-- 開啟指定的資料庫
USE TSQL2;
GO

-- 查詢指定資料表的指定資料行 (欄位名稱)
SELECT CustID, ShipCountry
FROM Sales.Orders;

-- 查詢指定資料表的所有資料行 (欄位)
SELECT *
FROM Sales.Orders;

注意事項:
不建議在應用程式開發的程式碼中使用 SELECT * 傳回所有資料行的資料,因為執行效率差的問題,只有在上課教學或練習時才使用 SELECT *

SELECT 查詢邏輯順序

  • T-SQL 指令檔的執行順序雖然是循序式的由上往下執行指令,但 SELECT 查詢卻有一定的邏輯順序
順序 SELECT 子句
5 SELECT 選取資料行 (欄名) 清單
1 FROM 資料來源表格
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值