III-Xóa CSDL -1Bằng lệnh DROP DATABASE:
Cú pháp: DROP DATABASE [, …]
Ví dụ: DROP DATABASE mydb1, mydb2
Chú ý:
-
CSDL Master có Table SYSDATABASES chứa thông tin như Name, ID,… của các database trên Server
If Exists(Select ‘True’ From master..SysDatabases Where Name = ’Thuvien’)
Drop Database ThuVien
-
Bạn phải có vai trò db_owner trên CSDL.
-
Không ai đang làm việc với CSDL
-2Bằng Enterprise Manager:
Click phải vào tên Database trên khung bên trái, chọn Delete.
IV-Sửa Đổi CSDL -1Bằng lệnh ALTER DATABASE:
Để thêm hay xóa file và nhóm file hoặc thay đổi các thuộc tính của file và nhóm file, như thay đổi tên và dung lượng của file sử dụng cú pháp:
ALTER DATABASE databasename
ADD FILE [,...n]
| ADD LOG FILE | [,...n]
| REMOVE FILE
| MODIFY FILE |
Các ví dụ:
A. Thêm 1 file chứa dữ liệu cho database
CREATE DATABASE Test
ON ( FILENAME = 'C:\data\Testdat1.ndf',
NAME = Testdat1, SIZE = 5MB, MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
GO
ALTER DATABASE Test
ADD FILE ( NAME = Testdat2,
FILENAME = 'c:\mssql7\data\Testdat2.ndf',
SIZE = 5MB, MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
C. Thêm 2 file Log kích thước 5-MB cho Database
ALTER DATABASE Test
ADD LOG FILE
( NAME = Testlog2,
FILENAME = 'C:\Data\Testlog2.ldf',
SIZE = 5MB, MAXSIZE = 100MB,
FILEGROWTH = 5MB),
( NAME = Testlog3,
FILENAME = 'c:\Data\Testlog3.ldf',
SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB)
D. Xoá file của database
ALTER DATABASE Test REMOVE FILE Testdat2
E. Sửa file : Tăng kích thước file cho Test database in Example B.
ALTER DATABASE Test
MODIFY FILE (NAME = Testdat1, SIZE = 20MB)
-2Bằng Enterprise Manager:
Click phải vào tên Database trên khung bên trái, chọn Properties.
V-Đổi Tên CSDL:
EXEC SP_RENAMEDB ‘OldName’, ‘NewName’
Chú ý:
-
Bạn phải là có quyền Admin
-
CSDL phải ở chế độ SingleUser
-
Tên các file và nhóm file không bị ảnh hưởng bởi sự thay đổi.
VI-Xem Thông Tin CSDL: -1Trong Query Analyzer Bằng Thủ Tục Lưu Trữ Hệ Thống:
Thông tin của các Database được lưu trữ trong table hệ thống SYSDATABASES của CSDL Master. Bạn có thể liệt kê bằng lệnh:
Select * From Master.dbo.SysDatabases
Ngoài ra, bạn có thể dùng các system stored procedures để hiển thị thông tin about databases and database options:
System stored procedure
|
Description
|
SP_HELPDB
|
Hiển thị thông tin của tất cả Databases trên Server gồm: name, size, owner, ID, creation date, and status information.
|
SP_HELPDB database_name
|
Hiển thị thông tin của database được chỉ định, gồm : name, size, owner, ID, creation date, and status information. Ngoài ra còn cho biết chi tiết các file dữ liệu và log file.
|
SP_SPACEUSED [objname]
|
Kích thước của current database hoặc table trong current database.
|
Ví dụ 1: Xem thông tin của CSDL TheThao
EXEC SP_HELPDB TheThao
Ví dụ 2: Xem kích thước CSDL TheThao.
USE TheThao
Go
EXEC SP_SPACEUSED
Ví dụ 3: Xem kích thước table tblCLB
USE TheThao
Go
EXEC SP_SPACEUSED tblCLB
VII-TẠO TABLE :
Khi tạo table, bạn cần quan tâm đến các yêu tố trên các Field được tạo như :
Key : Field đó là khóa hay không
ID : Field đó có thuộc tính Identity hay không
Column Name : Tên Field
Data Type : Kiểu dữ liệu của Field
Size : Kích thước lưu trữ
Allow Null : Cho phép Null
Default : Giá trị mặc định
Identity : Field số có giá trị tăng tự động, với giá trị ban đầu là bao nhiêu (Identity Seed) và số gia(Identity Increament) là bao nhiêu.
Tên Table bạn nên đặt với tiếp đầu ngữ là “tbl”.
-1BẰNG ENTERPRISE MANAGER:
Click phải vào mục Tables trên khung trái và chọn New Table…
-2Bằng lệnh Create Table:
Cú pháp :
CREATE TABLE [DatabaseName.[Owner].| Owner.] TableName
( | ColumnName AS | [,...n] )
Mỗi cột bạn cần chỉ định:
Example
CREATE TABLE customer
(cust_id uniqueidentifier ROWGUIDCOL NOT NULL DEFAULT NEWID(),
cust_name char(30) NOT NULL)
|
Có 2 loại khai báo RB:
-
Khai báo RBTV trên mỗi cột: (Column Constraint)
Sau lời khai báo tên và kiểu của cột bạn có thể khai báo tiếp các RB dữ liệu trên cột đó.
Các RB có thể là :
-
NULL hoặc NOT NULL
-
PRIMARY KEY hoặc UNIQUE [ CLUSTERED | NONCLUSTERED ]
-
Clustered : Một Table chỉ có 1 chỉ mục loại này, xác định thứ tự vật lý của table. Được dùng cho các thuộc tính thường phải tìm kiếm giá trị trên đó
-
Non-Clustered: Sắp xếp dữ liệu theo các Field chỉ định. Một Table có thể có nhiều chỉ mục loại này. Dữ liệu và Index được lưu ở 2 nơi khác nhau .
-
REFERENCES ref_table [(ref_column)]
[ ON DELETE { CASCADE | NO ACTION} ]
[ ON UPDATE { CASCADE | NO ACTION } ]
-
CHECK (logical_expression)
-
DEFAULT : Giá trị mặc định của cột trên mẫu tin mới
-
IDENTITY [(seed, increment )] : Thường được dùng khai báo cho cột kiểu số nguyên, là khoá chính của table. Chỉ định giá trị được ghi trên mẫu tin mới là một số phân biệt với các mẫu tin khác. Trong đó : Seed -giá trị khởi đầu và Increment - số gia.
Ví dụ: CREATE TABLE [dbo].[SanPham] (
MaSP SmallInt Identity (1,1) NOT NULL ,
TenSP varchar(30) NOT NULL,
DonGia Money Default 0,
SoTon Real Default 0 ) ON PRIMARY
Chú ý:
-
Mỗi table chỉ có 1 cột mang thuộc tính IDENTITY.
-
Hàm IDENT_SEED(‘tablename’) : trả về giá trị Seed, nếu table không có cột khai báo Identity sẽ cho giá trị NULL.
-
Hàm IDENT_INCR(‘tablename’) : trả về giá trị Increment.
-
Hàm @@IDENTITY dùng nhận giá trị identity của mẫu tin được chèn cuối cùng.
SQL Server tự động đặt tên cho mỗi RB. Tuy nhiên, Bạn có thể đặt tên RB bằng cú pháp :
[CONSTRAINT ]
/********************** table CongViec************************** */
CREATE TABLE CONGVIEC
( MACV smallint IDENTITY(1,1) CONSTRAINT PK_CV PRIMARY KEY CLUSTERED,
MOTA varchar(50) CONSTRAINT NN_MOTA NOT NULL DEFAULT 'Cong Viec Moi',
LCBmin tinyint CONSTRAINT NN_LCBmin NOT NULL
CONSTRAINT CHK_LCBmin CHECK (LCBmin >= 10),
LCBmax tinyint CONSTRAINT NN_LCBmax NOT NULL
CONSTRAINT CHK_LCBmax CHECK (LCBmax <= 250)
)
/* ***************** publishers table ******************** */
CREATE TABLE publishers
( pub_id char(4) NOT NULL
CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED
CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756')
OR pub_id LIKE '99[0-9][0-9]'),
pub_name varchar(40) NULL, city varchar(20) NULL,
state char(2) NULL, country varchar(30) NULL DEFAULT('USA')
)
-
Khai báo ràng buộc trên nhiều cột của Table: (Table Constraint)
Được khai báo riêng, nằm sau các khai báo cột. Bao gồm các ràng buộc:
-
[ CONSTRAINT constraint_name ]
-
PRIMARY KEY | UNIQUE ( column [ ASC | DESC ] [ ,...n ] )
-
FOREIGN KEY ( column [,...] ) REFERENCES ref_table [( ref_column [,...] )]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
-
CHECK ( logical_expression )
Ví dụ:
CREATE TABLE DDH
( MADH SmallInt IDENTITY(1,1) CONSTRAINT PK_DDH PRIMARY KEY CLUSTERED,
MaNCC SmallInt NOT NULL CONSTRAINT FK_DHH_NCC REFERENCES NHACC(MaNCC),
NgayDH SmallDateTime DEFAULT GetDate() NOT NULL,
NgayYCGiao SmallDateTime DEFAULT GetDate() NOT NULL,
CONSTRAINT CHK_NgayYCGiao CHECK (NgayDH <= NgayYCGiao)
)
Go
EXEC SP_HELP DDH /*Xem thông tin Table
Cột biểu thức, còn gọi là cột ảo, có dữ liệu lấy từ những cột khác bằng những biểu thức. Không dùng biểu thức là truy vấn con. Cột ảo không tham gia vào khóa của bảng.
Cú pháp: ColumnName AS
Ví dụ : CREATE TABLE mytable
( low int, high int,
myavg AS (low + high)/2
)
EXEC sp_help mytable /*Xem thông tin Table
Table được tạo bằng các phát biểu trên sẽ được lưu trữ trong CSDL đang mở. Nhưng đôi khi bạn cần tạo một Table mà bạn sẽ xóa ngay. Khi đó bạn có thể tạo table tạm lưu trữ bên trong CSDL TempDB bằng cú pháp trên nhưng sử dụng ký hiệu # (Pound) kề trước tên Table.
CREATE TABLE #MyTable (
Field1 int PRIMARY KEY,
Field2 char(10) NOT NULL,
Field3 datetime )
Table tạm có thể cục bộ (local) hoặc toàn cục phụ thuộc vào phạm vi hoạt động:
-
Table cục bộ, được khai báo với 1 dấu #, chỉ được truy xuất bởi kết nối vừa tạo ra nó.
-
Table toàn cục, được khai báo với 2 dấu #, được truy xuất bởi các kết nối hiện hành
Chia sẻ với bạn bè của bạn: | |