SQL Server2008資料庫管理 (第二部分)
2.1 T-SQL概述
SQL: Structured Query Language 結構化查詢語言,用於操作關係型資料庫
T-SQL: Transact-SQL 是ANSI92 SQL的擴充套件集,對功能進行了補充:如變數說明、流程控制、功能函式等
2.1.1 T-SQL語言主要組成部分
1)DML(資料庫操作語言)
用於查詢、插入、修改和刪除資料庫中的資料: select、insert、update、delete等
2)DDL(資料定義語言)
用於在資料庫系統中建立資料庫、表、檢視、索引等:create database、drop database等
3)DCL(
用來控制存取許可、存取許可權等: grant、revoke等
除此之外:還包括變數說明、內部函式等其他命令
2.1.2 物件資源管理器
如果不小心關掉了,在檢視中可重新調出來
2.1.3 查詢視窗相關
除錯:雙擊程式碼前面會出現斷點,然後點選小三角號,會進去除錯狀態
2.2 資料庫相關概念及資料庫命名規則
2.2.1資料庫儲存結構
物理儲存結構:
資料庫檔案在磁碟上的儲存形式
主資料檔案: *.mdf 儲存資料庫的結構資訊,儲存部分或全部的資料,整個資料庫只能有一個主資料檔案
輔助資料檔案
日誌檔案:*.ldf 記錄DML操作;恢復損壞的資料庫;整個資料庫同樣只能有一個日誌檔案
檔案組:類似資料夾,主要是用來管理磁碟空間。分為主檔案組Primary與次檔案組FG,日誌檔案不屬於任何檔案組
邏輯儲存結構:
由資料表、檢視、索引等各種不同的資料庫物件所組成,他們分別用來儲存特定資訊並支援特定功能
2.2.2資料庫命名規則
1)第一個字元必須是字母或“_”、“@”、“#”
2)資料庫名稱不能是T-SQL的保留字
3)不允許嵌入空格或是其他特殊字元
2.2.3資料庫分類
系統資料庫:用來管理使用者建立資料庫的資料庫,相當於中央管理機構。
master:記錄SQL Server所有系統級別的資訊,包括登入賬戶、系統配置、資料庫存放位置、初始化資訊等
model:模板資料庫,為新建立資料庫指定共同的模板
msdb:用來做SQL Server資料庫的一些代理作業,以及資料庫的備份及還原資訊
tempdb:臨時資料庫,儲存臨時表和臨時儲存過程,程式結束後自動消失
resource:特殊的、隱藏的、只讀的資料庫,包含所有系統物件
使用者資料庫:使用者自己建立的資料庫
2.3使用檢視建立資料庫1
需求:使用管理器建立一個電子商城E_Market資料庫,要求如下:(只有一個Primary檔案組)
1)資料庫的名稱為E_Market:包含一個數據檔案,初始容量大小為5MB,檔案按15%自動增長,最大容量大小為100MB
2)一個日誌檔案,初始大小為1MB,不啟用自動增長,所有檔案都放在E:\Project目錄下
2.3.1新建資料庫
物件資源管理器-->資料庫-->右鍵-->新建資料庫
2.3.2新建資料庫配置
1)名稱:E_Market
2)資料庫檔案:按照需求配置
資料庫大小:最小為3M
配置結束後,點選“確定”按鈕,然後在物件資源管理器中選中資料庫右鍵-->重新整理,新建的資料庫會顯示在資料庫的介面
資料檔案:
2.3.3修改新建資料庫屬性
1)相容性
選中E_Market資料庫右鍵-->選擇屬性-->選項-->相容級別(高版本的資料庫可以相容低版本的資料庫),此處選擇預設即可
2)限制訪問
multi_user:預設配置,表示資料庫在同一時刻允許多個使用者同時訪問資料庫
Single_user:表示一次只允許一個使用者訪問資料庫,系統維護資料庫時選擇該使用者
Restricted_user:表示只有管理員或者特定的人員才可以訪問資料庫
3)檔案組
當前只有一個Primary檔案組
4)只讀資料庫設定
如果資料庫設定為只讀,那麼該資料庫寫入資料,只能被查詢
2.3.4建立資料庫時需要指定的屬性
1)檔名稱、存放位置、分配的初始空間、屬於哪個檔案組
2)檔案增長:可以按百分比或實際大小指定增長速度
3)檔案容量設定:可以指定檔案增長的最大值或不受限
4)相容級別:版本號
5)資料庫是否只讀:預設False
6)限制訪問:Multi_User(正常狀態)
Single_User(維護操作狀態)
Restricted_User(管理員與特定人員使用)
2.4使用檢視建立資料庫2
需求:使用物件資源管理器建立一個DemoDB,要求如下:
1)資料庫的名稱為DemoDB:包含一個數據檔案,初始容量大小為10MB,檔案按10%自動增長,最大容量大小為500MB
2)第二個檔案組FG(次檔案組),輔助資料檔案為FG_DemoDB,初始大小為10MB,不啟用自動增長
3)一個日誌檔案,初始容量大小為5MB,不啟用自動增長,所有檔案都放在E:\Project目錄下
2.4.1新建資料庫
物件資源管理器-->資料庫-->右鍵-->新建資料庫
2.4.2新建資料庫配置
1)名稱:DemoDB
2)資料庫檔案:按照需求配置
首先新建次檔案組FG
主檔案組後面預設選項框對號表示:如果不選擇檔案組,預設新增檔案均放在主檔案組
然後再點選常規,配置新建資料庫
配置完成後,點選確定,完成資料庫的建立
2.5使用SQL語句建立資料庫1
建立一個數據檔案:E_Market_data.mdf和一個日誌檔案:E_Market_log.ldf的資料庫
注意:括號內語句每一行要以英文逗號結尾,最後語句不加
USE master --指向當前使用的資料庫
GO --批處理標誌
--刪除資料庫
IF EXISTS(SELECT * FROM sysdatabases WHERE name = 'E_Market')
DROP DATABASE E_Market
GO
CREATE DATABASE E_Market --建立E_Market資料庫
ON PRIMARY --主檔案組
(
NAME = 'E_Market_data', --主檔案邏輯檔名
FILENAME = 'E:\Project\E_Market_data.mdf', --主檔案物理檔名
SIZE = 5MB, --主檔案初始大小
MAXSIZE = 100MB, --主檔案增長最大值
FILEGROWTH = 15% --主檔案的增長率
)
LOG ON --日誌檔案
(
NAME = 'E_Market_log', --日誌檔案邏輯檔名
FILENAME = 'E:\Project\E_Market_log.ldf', --日誌物理檔名
SIZE = 5MB, --日誌初始檔案大小
FILEGROWTH = 0 --未啟用自動增長
)
GO
建立完成後,重新整理資料庫就會看到新建的資料庫了
使用sysdatabases表查詢剛剛建立的資料庫:
SELECT * FROM SYSDATABASES;
2.6使用SQL語句建立資料庫2
建立多個數據檔案和多個日誌檔案
USE master
GO
CREATE DATABASE E_Market
ON PRIMARY --主檔案組
(
NAME = 'E_Market_data',
FILENAME = 'E:\Project\E_Market_data.mdf',
SIZE = 10MB,
FILEGROWTH = 10%,
MAXSIZE = 500MB
), --第一個檔案組結束
FILEGROUP FG --建立了一次次檔案組FG, 第二個檔案組(次檔案組)
(
NAME = 'FG_E_Market_data',
FILENAME = 'E:\Project\FG_E_Market_data.ndf',
SIZE = 10MB,
FILEGROWTH = 0
)
--日誌檔案不屬於任何檔案組
LOG ON
(
NAME = 'E_Market_log',
FILENAME = 'E:\Project\E_Market_log.ldf',
SIZE = 5MB,
FILEGROWTH = 0
),
--日誌2的具體描述
(
NAME = 'E_Market_log1',
FILENAME = 'E:\Project\E_Market_log1.ldf',
SIZE = 5MB,
FILEGROWTH = 0
)
GO
執行完以上新建資料庫的sql後,會在相應的路徑下建立相應的資料檔案
2.7使用SQL語句建立資料庫3
向現有資料庫中新增檔案組和資料檔案
2.7.1檢視下新增檔案組和資料檔案
新建檔案組:選中相應的資料庫,點選右鍵屬性,選擇檔案組,然後點選新增,新建FG2檔案組
新建資料檔案:
選中相應的資料庫,點選右鍵屬性,選擇檔案,點選新增,新建檔案E_Market_data3,檔名不用填,系統會預設指定檔名
2.7.2使用sql語句新增檔案組和資料檔案
USE E_Market
GO
--新增檔案組
ALTER DATABASE E_Market ADD FILEGROUP FG1
GO
--為新建的檔案組FG1新增資料檔案
ALTER DATABASE E_Market ADD FILE
(
NAME = 'FG1_E_Market_data',
FILENAME = 'E:\Project\FG1_E_Market_data.ndf',
SIZE = 5MB,
FILEGROWTH = 10%
) TO FILEGROUP FG1
GO
--將FG1檔案組設為預設檔案組
ALTER DATABASE E_Market
MODIFY FILEGROUP FG1 DEFAULT
2.8刪除資料庫
2.8.1檢視下刪除資料庫
選中要刪除的資料庫,右鍵刪除,刪除資料庫後,會連帶刪除主資料檔案+次資料檔案+日誌檔案
注意選擇關閉現有連線
2.8.2 SQL刪除資料庫
USE master
GO
--刪除資料庫
IF EXISTS(SELECT * FROM sysdatabases WHERE name = 'E_Market')
DROP DATABASE E_Market
GO