SQL Server 資料庫基本記錄(一)

StaunchKai發表於2019-03-02

寫在前面

這段時間由於任務需要 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 語句操作,無檢視操作

  1. 通常,執行命令時,最開始都需要指向操作的物件,並且新增批處理的標誌(執行)
USE 物件(資料庫名稱)

E.g:
- USE master -- 指向當前使用的資料庫 master
- USE E_Market -- 指向當前使用的資料庫 E_Market

完整例項:
USE E_Market -- 指向當前使用的資料庫 E_Market
GO -- 批處理的標誌(執行命令最後都需此命令)
複製程式碼
  1. 建立資料庫(包含資料檔案和日誌檔案)
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 -- 批處理標誌
複製程式碼
> 注意:語言使用的是 **小括號** **()**,不是花括號 {},過程中命令後使用 **逗號** **,**而非分號 ;,命令最後一句不需要逗號
複製程式碼
  1. 向現有資料庫新增檔案組和資料檔案
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
複製程式碼
> 將選定檔案組設定為預設檔案組後,新增檔案將歸屬於預設檔案組中
複製程式碼
  1. 刪除資料庫
DROP DATABASE E_Market

-- 附加:
IF EXISTS (SELECT * FROM sysdatabases WHERE name=`E_Market`)	-- 檢查想要刪除的資料庫是否存在
DROP DATABASE E_Market

-- 使用判斷檢查資料庫是否存在,若存在執行刪除,否則,不執行

複製程式碼

相關文章