寫在前面
這段時間由於任務需要 SQL Server 2008 R2 資料庫,於是便學習了一下,在此記錄學習過程中重要的東西。
簡單介紹
SQL
- 全稱:Structured Query Language (結構化查詢語言)
- 是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統
T-SQL
- 全稱:Transact-SQL
- 是標準 SQL 程式設計語言的增強版,它是用來讓應用程式與 SQL Server 溝通的主要語言
兩者可簡單理解為:T-SQL 是 SQL Server 支援的 SQL 語法,非軟體。主要是微軟對資料庫操作增加的新語法
T-SQL 語言主要組成部分
- DML (資料操作語言)
用於查詢、插入、修改和刪除資料庫中的資料等
SELECT,INSERT,UPDATE,DELETE
複製程式碼
- DDL (資料定義語言)
用於在資料庫系統中建立資料庫、表、檢視、索引等
CREATE DATABASE,DROP DATABASE
複製程式碼
- DLC (資料控制語言)
用於控制存取許可、許可權等
GRANT,REVOKE
複製程式碼
- 其他(包括變數說明、內部函式等)
資料庫相關
-
物理儲存結構(資料庫檔案在磁碟上的儲存形式)
— 主資料檔案:xx.mdf
— 輔助資料檔案:xx.ndf
— 日誌檔案:xx.ldf -
邏輯儲存結構
由資料表、檢視、索引等不同的資料庫物件組成,分別用於儲存特定資訊並支援特定功能 -
資料庫命名規則:
— 第一個字元必須是 字母 或 _ @ #。
— 資料庫名稱 不能是 T-SQL 的保留字
— 不允許嵌入空格或其他特殊字元 -
資料庫分類
— 系統資料庫(中央管理機構) E.g:master,model,msdb,resource
— 使用者資料庫(老百姓):使用者自己建立的資料庫 -
建立資料庫需要指定的屬性
— 檔名稱、存放位置、初始空間大小、屬於哪個檔案組
— 檔案增長:按百分比或實際大小制定增長速度
— 檔案容量設定:可以指定檔案增長的最大值或不限制
— 相容級別:版本號
— 資料庫是否只讀:預設 flase
— 限制訪問:MULTI_USER (正常狀態)、SINGLE_USER (維護操作的狀態)、RESTRICTED_USER
資料庫基本操作命令
以下全部為使用 SQL 語句操作,無檢視操作
- 通常,執行命令時,最開始都需要指向操作的物件,並且新增批處理的標誌(執行)
USE 物件(資料庫名稱)
E.g:
- USE master -- 指向當前使用的資料庫 master
- USE E_Market -- 指向當前使用的資料庫 E_Market
完整例項:
USE E_Market -- 指向當前使用的資料庫 E_Market
GO -- 批處理的標誌(執行命令最後都需此命令)
複製程式碼
- 建立資料庫(包含資料檔案和日誌檔案)
USE master
GO
CREATE DATABASE 資料庫名
ON PRIMARY --主檔案組
-- 主資料檔案
(
NAME=`E_Market_data`, -- 主檔案邏輯檔名
FILENAME=`F:ProjectE_Market_data.mdf`, -- 主檔案物理檔名,包含存放位置
SIZE=5MB, -- 主檔案初始大小
MAXSIZE=100MB, -- 主檔案增長的最大值
FILEGROWTH=15% --主檔案的增長率
),
-- 以上為以第一個檔案組(主檔案組)
FILEGROUP FG -- 第二個檔案組(輔助資料檔案)
(
NAME=`FG_E_Market_data`, -- 輔助檔案邏輯檔名
FILENAME=`F:ProjectFG_E_Market_data.ndf`, -- 輔助檔案物理檔名,包含存放位置
SIZE=3MB, -- 輔助檔案初始大小
MAXSIZE=7MB, -- 輔助檔案增長的最大值
FILEGROWTH=0 --輔助檔案不啟用自動增長
)
LOG ON -- 日誌檔案不屬於任何檔案組
(
NAME=`E_Market_log`, -- 日誌檔案邏輯檔名
FILENAME=`F:ProjectE_Market_log.ldf`, -- 日誌物理檔名,包含存放位置
SIZE=5MB, -- 日誌檔案初始大小
FILEGROWTH=0 -- 未啟用自動增長
)
GO -- 批處理標誌
複製程式碼
> 注意:語言使用的是 **小括號** **()**,不是花括號 {},過程中命令後使用 **逗號** **,**而非分號 ;,命令最後一句不需要逗號
複製程式碼
- 向現有資料庫新增檔案組和資料檔案
USE E_Market -- 指向當前使用的資料庫
ALTER DATABASE E_Market ADD FILEGROUP FG1 -- 向資料庫中新增一個名為 FG1 的檔案組
GO
-- 給新建的檔案組 FG1 新增資料檔案
ALTER DATABASE E_Market ADD FILE
(
NAME=`FG1_E_Market_data`,
FILENAME=`F:ProjectFG_E_Market_data.ndf`,
SIZE=5MB,
FILEGROWTH=10%
)TO FILEGROUP FG1
GO
-- 將 FG1 檔案組設為預設檔案組
ALTER DATABASE E_Market
MODIFY FILEGROUP FG1 DEFAULT
GO
複製程式碼
> 將選定檔案組設定為預設檔案組後,新增檔案將歸屬於預設檔案組中
複製程式碼
- 刪除資料庫
DROP DATABASE E_Market
-- 附加:
IF EXISTS (SELECT * FROM sysdatabases WHERE name=`E_Market`) -- 檢查想要刪除的資料庫是否存在
DROP DATABASE E_Market
-- 使用判斷檢查資料庫是否存在,若存在執行刪除,否則,不執行
複製程式碼