一、使用Transact_SQL創建數據庫
Transact_SQL語法如下:
create database database_name
[ on
[primary] [<filespec> [,...n] ]
]
[ log on
[<filespec>[,...n]]
];
<filespec>::=
(
name=logical_file_name
[ , newname = new_login_name ]
[ , fileName = {'os_file_name' | 'fileStream_path'} ]
[ , size = size[ KB | MB | GB | TB] ]
[ , MaxSize = {max_size [ KB | MB |GB |TB] | UNLIMITED} ]
[ , FILEGROWTH = growth_increment [ KB | MB |GB | TB | %] ]
);
上述語句分析如下:
1.database_name:數據庫名稱,不能與SQL SERVER中現有的數據庫實例名稱相沖突,最多可包含128個字符;
2.ON:指定顯示定義用來存儲數據庫中的數據的磁盤文件。
3.PRIMARY:指定關聯的<filespec>列表定義的主文件,在主文件組<filespec>項中指定第一個文件將生成主文件,一個數據庫只能有一個主文件。如果沒有指定primary,那么create datebase 語句中列出的第一個文件將成為主文件。
4.LOG ON:指定用來存儲數據庫日志的日志文件。LOG ON后跟以逗號分隔的用以定義日志文件的<filespec>列表。如果沒有指定log on,將自動創建一個日志文件,其大小為該數據庫的所有文件大小總和的25%或521KB,取兩者之中最大者。
5.name:指定文件的邏輯名稱。指定filename時,需要使用name,除非指定 FOR ATTCH 子句之一。無法將filename文件組命名為primary。
6.filename:指定創建文件時又操作系統使用的路徑和文件名。執行create datebase 語句前,指定路徑必須存在.
7.size:指定數據庫文件的初始大小,如果沒有為主文件提供size,數據庫引擎使用model數據庫中主文件的大小。
8.max_size:指定文件可增大的最大大小。可使用KB、MB、GB和TB做后綴,默認值為MB。max_size是整數值.如果不指定max_size,則文件將不斷增長直至磁盤被占滿。UNLIMITED表示文件一直增長到磁盤裝滿.
9.filegrowth:指定文件的自動增量。文件的filegrowth設置不能超過MAXSIZE設置。該值可以 MB、KB、GB、TB或百分比(%)為單位指定,默認值為MB,如果指定%,則增量大小為發生增長時文件大小的的指定百分比。值為0表明自動增長被設為關閉,不允許增加空間.
eg:創建一個數據庫sample_db,該數據庫的主數據文件邏輯名為sample_db,物理文件名稱為sample_db.mdf,初始大小為5MB,最大尺寸為30MB,增長速度為5%;數據庫日志文件的邏輯名稱為sample_log,保存日志文件的物理名稱為sample_log.ldf,初始大小為1MB,最大尺寸為8MB,增長速度為128KB。
代碼如下:
create database[sample_db] on primary
(
name='sample_db',
filename='C:\SQL_SERVER_temp\sampl_db.mdf',
size=5120KB,
maxsize=30MB,
filegrowth=5%
)
log on
(
name='sample_log',
filename='C:\SQL_SERVER_temp\sample_log.ldf',
size=1024KB,
maxsize=8192KB,
filegrowth=10%
)
go
二:使用Transact_SQL修改數據庫
使用alter database語句進行修改:
alter database 語句可以進行一下的修改:增加或刪除數據文件、改變數據文件或日志文件的大小和增長方式,增加或者刪除日志文件和文件組。
基本語法如下:
alter database database_name
{
modify name=new_database_name
| Add file
<filespec> [ ,...n ] [ TO filegroup { filegroup_name } ]
| Add log file <filespec> [ ,...n ]
| remove file logical_file_name
|modify file <filespec>
}
<filespec>::=
(
name=logical_file_name
[ , newname = new_login_name ]
[ , fileName = {'os_file_name' | 'filestream_path'} ]
[ , size = size[ KB | MB | GB | TB] ]
[ , MaxSize = {max_size [ KB | MB |GB |TB] | UNLIMITED} ]
[ , FILEGROWTH = growth_increment [ KB | MB |GB | TB | %] ]
[ , offline ]
);
上述語法解釋如下:
database_name:要修改的數據庫的名稱;
modify name:指定新的數據庫名稱;
Add file:向數據庫中添加文件。
to filegroup{filegroup_name}:將指定文件添加到文件組。filegroup_name為文件組名稱.
Add log file:將要添加的日志文件添加到指定的數據庫
remove file logical_file_name:從SQL Server的實例中刪除邏輯文件並刪除物理文件。除非文件為空,否則無法刪除文件。logical_file_name是在Sql Server 中引用文件時所用的邏輯名稱。
modify file:指定應修改的文件,一次只能更改一個<filespec>屬性。必須在<filespec>中指定name,以標識要修改的文件。如果指定了size,那么新大小必須比文件當前大小要大。
--使用T_SQL語句修改數據庫文件的初始大小:
--將sample_db數據庫中的主數據文件的初始大小修改為15MB:
alter database sample_db
modify file
(
name='sample_db',
size=15MB
);
注意:修改數據庫文件的初始大小時,指定的size的大小必須大於或等於當前大小,如果小於,代碼不能執行.
--使用T_SQL語句增加數據庫容量:
--增加sample_db數據庫的容量,如下:
alter database sample_db
modify file
(
name='sample_db',
maxsize=50MB
);
go
--使用T_SQL縮減數據庫容量:
--縮減 sample_db數據庫的容量,如下:
alter database sample_db
modify file
(
name ='sample_db',
MAXSIZE=15MB
);
go
三、查看數據庫信息
Sql Server中可以使用多種方式查看數據庫信息,例如使用目錄視圖,函數,存儲過程等。
1.使用目錄視圖:
可以使用如下的目錄視圖查看數據庫的基本信息。
a.使用sys.database_files查看有關數據庫文件的信息
b.使用sys.filegroups查看有關數據庫組的信息。
c.使用sys.master_files 查看數據庫文件的基本信息和狀態信息。
d.使用sys.databases 數據庫和文件目錄視圖查看有關數據庫的基本信息。
eg:
select * from sys.database_files;
select * from sys.filegroups;
select * from sys.master_files;
select * from sys.databases;
2.使用函數:
如果要查看指定數據庫中的指定選項信息時,可以使用DataBaseProperTyex()函數,該函數每次只返回一個選項的信息.
eg:要查看test數據庫的狀態信息,輸入如下語句:
use test
go
select databasepropertyex('test','Status') as 'test數據庫狀態'
注:上述代碼中
DataBaseProperTyex語句中第一個參數表示要返回信息的數據庫,第二個參數表示要返回數據庫的屬性表達式,其他的查看屬性參數如下:
3.使用系統存儲過程:
除了上述的目錄視圖和函數外,還可以使用存儲過程 sp_spaceused顯示數據庫使用和保留的空間。
sp_helpdb存儲過程查看所有數據庫的基本信息
4.使用圖形化工具查看,大家都會,就不羅嗦了。
四:使用T_SQL修改數據庫名:
--使用alter database 語句修改數據名稱,語法如下:
alter database old_database_name
modify name=new_database_name
使用T_SQL刪除數據庫:
當數據庫不再需要時,為了節省空間,可以將他們從系統中刪除。
drop database database_name[ , ...n ]
eg:drop database test;
注意:
1.刪除數據庫時一定要慎重,因為系統無法輕易恢復被刪除的數據,除非做過數據庫的備份.另外,特別注意,千萬不能刪除系統數據庫( master-->數據庫服務器的核心;
model-->創建數據庫的模版;
msdb-->提供運行SQL Server Agent工作的信息;
tempdb-->Sql Server中的一個臨時數據庫,用於存放臨時對象和中間結果,Sql server關閉后,該數據庫中的內容被清空,每次重新啟動服務器后tempdb數據庫將被重建.
),否則會導致sql server服務器無法啟動.
2.並不是所有的數據庫在任何時候都可以被刪除,只有處於正常狀態下的數據庫,才能使用drop語句刪除。當數據庫處於一下狀態時不能刪除:a.數據庫正在使用;b.數據庫正在恢復; c.數據庫包含用於復制的對象。