I- With Grant Option
13 ASW-60VT NULL
6.7.3. Diễn giải CREATE Database trong SQL Server
> ON: Dùng để định nghĩa nơi chứa cơ sở dữ liệu và không gian chứa tập tin log.
> NAME: Dùng định nghĩa tê n của cơ sở dữ liệu. Tên này dùng tham chiếu khi gọi đến cơ sở dữ liệu, tê n được dùng cho quá trìn h backup, export, Import, S h rin k cơ sở dữ liệu đó.
> FILE N A M E: Tên tập tin cơ sở dữ liệu lưu trong đĩa cứng, thông thường khi cài SQ L Server
lên ổ đĩa nào th ì giá trị mặc định cho phép lưu tập tin đến thư mục đó. Tuy nhiên, nếu muốn bạn cũng có th ể thay đổi vị trí các file này.
Khi tạo cơ sỡ dữ liệu, bạn đã định nghĩa vị trí đ ặt tập tin ở thư mục nào th ì không th ể di chuyển một cách thủ công (như dùng Explorer của Windows), vì làm điều đó th ậ t nguy hiểm n h ấ t là khi dữ liệu trong cơ sở dữ liệu đang có giá trị kinh tế.
> S IZ E: Dung lượng của cơ sở dữ liệu khi khởi tạo chúng. Thông thường giá trị mặc định là 1 MB.
> Dung lượng phải là sô' nguyên, có thể tăn g thêm bằng cách sử dụng thủ tục S h rin k trong
SQ L Server.
> M AXSIZE: Dung lượng lớn n h ất, khi dung lượng cơ sở dữ liệu tăn g lên đến mức M axSize thì dừng lại.
Nếu khi dung lượng bằng M axSize, các chuyển tác có th ể bị huỷ bỏ hay trả về lỗi không thể thực hiện được, và có th ể làm cho cơ sở dữ liệu của bạn bị treo.
Để trá n h điều này xảy ra, th ì người quần trị cơ sở dữ liệu phải thường xuyên theo giỏi quá trìn h tăn g dung lượng cơ sở dữ liệu theo thời gian, để có biện pháp trá n h mọi rủi ro có thể xảy ra.
> FILEGROWTH: Dung lượng khởi tạo cùng dung lượng tối đa cho phép tăn g trong quá trìn h thêm dữ liệu vào cơ sở dữ liệu. Nhằm tự động hóa, chúng ta phải th iế t lập quá trìn h tăn g tự động theo chỉ sô' KB cho trước hay tỷ lệ p hần tră m theo dung lượng đang có.
> LOG ON: Log on cho phép b ạn quản lý những chuyển tác xảy ra trong quá trìn h sử dụng cơ sở dữ liệu của SQ L Server.
X â y d ự n g c ơ s ở d ữ l i ệ u T e s t
Như đã trìn h bày ở trê n , sau đây ví dụ tạo cơ sở dữ liệu Test có cú pháp như sau:
V í dụ 8-31: T ạo cở sử d ữ liệ u T e st tro n g SQL S erv er
USE master
GO
CREATE DATABASE Test ON
( NAME = Test,
SIZE = 10, MAXSIZE = 50, FILEGROWTH= 5 ) LOG ON ( NAME = 'Testlog', FILENAME = 'c :\mssql7\data\Testlog.ldf' , SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) GO
Để đơn giản hoá các đối tượng Table trong cơ sở dữ liệu Test, chúng tôi chỉ trìn h bày m ột vài p h á t biểu SQ L dạng Create Table, các Table khác bạn có th ể tìm th ấy trong cơ sở dữ liệu đính kèm.
V i dụ 8-32: T ạo m ộ t s ố b ả n g tr o n g T est
/* Tạo bảng danh sách khách hàng thường xuyên */ CREATE TABLE tblcustomers (
CustID int(3) unsigned NOT NULL auto_increment, Username varchar (20) NOT NULL DEFAULT ' ' ,
Password varchar ( 10) NOT NULL DEFAULT ' ' ’ CustName varchar ( 50 ) , Address varchar ( 100 ), Tel varchar (2 0 ) , FaxNo varchar ( 10 ), Email varchar ( 50 ) , Contact varchar ( 50 ) , Cour.tryCode char ( 3 ) , ProvinceCode char ( 3 ) , PRIMARY KEY (CustID) , INDEX CustID (CustID)
) ;
/* Tạo bảng hạp đồng mua hàng qua mạng */ CREATE TABLE tblorders {
OrderlD int (3 ) NOT NULL auto_increment, OrderDate date ,
CustID int ( 11 ) ,
Description varchar ( 100 ) DEFAULT '0' ,
Trar.ID tinyint (3 ) DEFAULT • 0 * , PaymentID tinyint (3 ) DEFAULT '0' , Amount float DEFAULT ' 0 ' ,
ShipCost float DEFAULT '0' , TotalAmount float DEFAULT ' 0 ' , PRIMARY KEY (OrderlD) ,
INDEX OrderlD (OrderlD)
) ;
/* Tạo bảng hạp đồng chi tiết mua hàng qua mạng */ CREATE TABLE tblorderdetails (
ItemlD int ( 3 ) unsigned DEFAULT '0' , OrderlD int (3 ) unsigned DEFAULT '0' , No tinyint ( 3 ) unsigned DEFAULT '0' , Qttyint(3) unsigned DEFAULT '0' , Priceint(3) unsigned DEFAULT '0' , Discount int(3) unsigned DEFAULT '0' ,
Amount bigint(3) unsigned DEFAULT '0'
M ộ t sô" q u y đ ịn h k h i t h i ế t k ế T a b le 6.7.4. T ên c ộ t - C olum n N am e
Đặt tên cột cũng giông như đặt tê n bảng, có r ấ t nhiều quy tắc đ ặt tê n (như đã trìn h bày ở trê n p hần table), nhưng khuyến khích bạn nên theo m ột số quy tắc cơ b ản sau:
> Tên cột b ắt đầu chữ hoa, còn lại bằng chữ thường. > Tên ngắn gọn và đầy đủ ý nghĩa.
> Không n ên đ ặt tê n cột có khoảng trắng, sau này bạn sẽ gặp những phiền toái khi tham chiếu đến cột đó.
> Không đ ặ t tê n cột trùng với những từ khoá, từ dành riêng, và những ký tự dặc b iệt như những phép toán hay toán tử khác.
> Chú ý, nên đ ặ t tê n cột cùng tê n những cột có quan hệ với những bảng khác trong cùng cơ sở dữ liệu, giúp dễ hiểu và trá n h bị nhầm lẫn.
Một số người thích th êm vào dấu gạch chân (_) để phân biệt ý nghĩa hay tên gọi của cột, điều này là tùy vào sở thích của bạn. Tuy nhiên chúng tôi không thích qui tắc này.
Nhưng đối với k inh nghiệm lập th iế t kế xây dựng cơ sở dữ liệu th ì bạn không nên dùng dấu gạch dưới và dĩ nh iên trong nhiều trường hợp khác bạn sẽ cảm th ấy khó chịu khi thêm m ột dấu _ trong tên của đối tượng của cơ sở dữ liệu.
Mặc dù không có vấn đề gì cho cú pháp hay các p h á t biểu tham chiếu đến chúng, nhưng bạn sẽ th ấy tạ i sao chúng ta không nên dùng dấu gạch chân (_) khi đ ặt tê n đối tượng hay tên cơ sỡ dữ liệu trong M y SQL.
> Nếu bạn d ặ t tê n có dấu _ ,bạn phải tốn thời gian hay năng lượng cho hành động tạo ra dấu _
> T ro n g c h ừ n g m ực h a y giới h ạ n n à o đó do h iộ u ứ n g của F o n t chữ có th ổ p h á t s in h lỗ i sẽ g â y
ra nhầm lẫn cho người lập trình.
> Nói tóm lại là bạn sẽ m ất th êm thời gian lưu tâm đến chúng.