Microsoft SQL Server 是一款由 Microsoft 提供的關聯式數據庫管理系統(RDBMS),廣泛用於企業級數據存儲、查詢和處理。SQL Server 支持 Transact-SQL (T-SQL),並提供強大的數據管理和查詢功能。
以下是 Microsoft SQL Server 教學,幫助你從安裝到基本使用。
?? 一、安裝 SQL Server
1️⃣ 安裝 SQL Server
- 訪問 Microsoft SQL Server 下載頁面 下載 SQL Server 的版本。你可以選擇免費的 SQL Server Express 版本,或者其他專業版和企業版。
- 選擇下載並運行安裝包。在安裝過程中,可以選擇不同的功能(例如 SQL Server Database Engine, SQL Server Management Studio)。
- 安裝過程:
- 下載後,運行安裝向導,並根據提示選擇安裝選項。
- 設置 SQL Server 管理員帳戶和密碼。
- 完成安裝並重啟電腦(如有需要)。
2️⃣ 安裝 SQL Server Management Studio (SSMS)
SQL Server Management Studio 是用於管理 SQL Server 實例的工具。你可以從 SSMS 下載頁面 下載安裝。
安裝完成後,啟動 SSMS 並連接到 SQL Server 實例。
? 二、基礎概念
- 數據庫(Database):一個存儲結構化數據的容器。每個 SQL Server 實例可以包含多個數據庫。
- 表(Table):數據庫中的數據以表格的形式存儲。每張表由行和列組成。
- 行(Row):表中的一條記錄。
- 列(Column):表中的一個屬性或字段。
- 索引(Index):提高查詢性能的結構,類似於書籍的目錄。
- 約束(Constraint):定義數據完整性規則的限制,例如主鍵、外鍵、唯一性約束等。
?? 三、基本操作
1️⃣ 創建數據庫
在 SSMS 中連接到 SQL Server 實例後,你可以通過以下 SQL 命令創建一個新的數據庫:
CREATE DATABASE SampleDB;
GO
這將創建一個名為 SampleDB 的新數據庫。
2️⃣ 創建表
在數據庫中創建表是存儲數據的基本步驟。以下是創建表的基本 SQL 命令:
USE SampleDB; -- 選擇數據庫
GO
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY, -- 主鍵
FirstName NVARCHAR(50),
LastName NVARCHAR(50),
HireDate DATETIME,
Salary DECIMAL(18, 2)
);
GO
這段代碼將創建一個 Employees 表,其中包含員工的 ID、名字、姓氏、雇佣日期和薪資。
3️⃣ 插入數據
使用 INSERT 語句將數據插入表中:
INSERT INTO Employees (EmployeeID, FirstName, LastName, HireDate, Salary)
VALUES (1, 'John', 'Doe', '2020-01-15', 60000.00);
GO
INSERT INTO Employees (EmployeeID, FirstName, LastName, HireDate, Salary)
VALUES (2, 'Jane', 'Smith', '2021-03-22', 65000.00);
GO
這會將兩條員工數據插入 Employees 表中。
4️⃣ 查詢數據
使用 SELECT 語句查詢數據:
SELECT * FROM Employees;
GO
這會選擇 Employees 表中的所有行和列。如果你只需要某些列或帶有條件的查詢,可以使用 WHERE 子句:
SELECT FirstName, LastName FROM Employees WHERE Salary > 60000;
GO
這將選擇所有薪資大於 60000 的員工的名字和姓氏。
5️⃣ 更新數據
使用 UPDATE 語句修改表中的數據:
UPDATE Employees
SET Salary = 70000
WHERE EmployeeID = 1;
GO
這會將 EmployeeID 為 1 的員工的薪資更新為 70000。
6️⃣ 刪除數據
使用 DELETE 語句刪除表中的數據:
DELETE FROM Employees WHERE EmployeeID = 2;
GO
這會刪除 EmployeeID 為 2 的員工。
? 四、高級功能
1️⃣ 索引(Indexes)
索引能夠顯著提高查詢性能,尤其是在大型表中。以下是創建索引的語句:
CREATE INDEX idx_lastname
ON Employees (LastName);
GO
這會在 LastName 列上創建索引。
2️⃣ 視圖(Views)
視圖是從一個或多個表中檢索數據的虛擬表。它通常用於簡化複雜查詢。
CREATE VIEW EmployeeView AS
SELECT FirstName, LastName, Salary
FROM Employees
WHERE Salary > 60000;
GO
這創建了一個名為 EmployeeView 的視圖,顯示所有薪資大於 60000 的員工的名字、姓氏和薪資。
3️⃣ 存儲過程(Stored Procedures)
存儲過程是一組 SQL 語句的集合,它們保存在數據庫中,可以重複執行。以下是創建簡單存儲過程的例子:
CREATE PROCEDURE GetEmployeeInfo (@EmployeeID INT)
AS
BEGIN
SELECT FirstName, LastName, Salary
FROM Employees
WHERE EmployeeID = @EmployeeID;
END;
GO
要執行這個存儲過程,可以使用:
EXEC GetEmployeeInfo @EmployeeID = 1;
GO
4️⃣ 觸發器(Triggers)
觸發器是一種特殊的存儲過程,它在表中進行插入、更新或刪除操作時自動執行。以下是一個簡單的觸發器範例:
CREATE TRIGGER SalaryCheck
ON Employees
AFTER INSERT
AS
BEGIN
DECLARE @Salary DECIMAL(18,2);
SELECT @Salary = Salary FROM inserted;
IF @Salary < 50000
BEGIN
PRINT 'Warning: Salary is below the minimum threshold';
END
END;
GO
這個觸發器會在向 Employees 表插入數據時檢查薪資是否低於 50000,如果低於此值則發出警告。