2.2. Ngôn ngữ định nghĩa dữ liệu
Ngôn ngữ định nghĩa dữ liệu (Data Definition Language-DDL) là một trong số những loại ngôn ngữ của SQL, được sử dụng để định nghĩa và quản lý tất cả các thuộc tính của một cơ sở dữ liệu, bao gồm bố cục của các hàng, định nghĩa trường, khóa, vị trí lưu file…Các câu lệnh DDL được dùng để định nghĩa (xây dựng), thay đổi hoặc xóa cấu trúc của các đối tượng cơ sở dữ liệu, chẳng hạn: cơ sở dữ liệu, bảng, view, trigger, thủ tục lưu trữ, …Trong chương này, ta sẽ tìm hiểu các câu lệnh DDL cho các đối tượng là cơ sở dữ liệu, bảng, view. Riêng các câu lệnh DDL cho các đối tượng thủ tục, hàm, trigger sẽ tìm hiểu trong các chương sau.
Các câu lệnh DDL có dạng như sau:
- Tạo đối tượng
- Sửa đổi đối tượng
- Xóa đối tượng
2.2.1. Tạo đối tượng
Để tạo một đối tượng, dùng cú pháp Create
1) Tạo cơ sở dữ liệu
Có thể bạn quan tâm!
- SQL Server - 5
- Thiết Lập Các Thông Số Cho Kiểu Dữ Liệu Người Dùng
- SQL Server - 7
- Kết Quả Khi Xác Định Tiêu Đề Trường
- SQL Server - 10
- Cơ Sở Dữ Liệu Do Người Dùng Tạo Ra
Xem toàn bộ 323 trang tài liệu này.
Tác dụng: Câu lệnh CREATE DATABASE tạo ra một cơ sở dữ liệu. Cú pháp:
CREATE DATABASE <Database_Name> [ON [Primary]
(
[NAME=<‟Logical file name‟>,] FILENAME=<‟File name‟> [,SIZE=<‟Size of File‟>] [,MAXSIZE=<‟Max size of File‟>] [,FILEGROWTH=<‟Init size of File‟>]
)]
[LOGON (
[NAME=<‟Logical file name‟>,] FILENAME=<‟File name‟> [,SIZE=<‟Size of File‟>] [,MAXSIZE=<‟Max size of File‟>] [,FILEGROWTH=<‟Init size of File‟>]
)]
[COLLATE <Collaction Name>]
[FOR ATTACH]
Trong đó:
ON: Định nghĩa nơi chứa cơ sở dữ liệu
NAME: Định nghĩa tên 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 trong quá trình backup, export, import, shrink cơ sở dữ liệu đó.
tạo.
FILENAME: Định nghĩa tên tệp tin lưu trong ổ cứng. SIZE: Xác định dung lượng của cơ sở dữ liệu khi khởi tạo.
MAXSIZE: Xác định dung lượng lớn nhất của cơ sở dữ liệu khi khởi
FILEGROWTH: Xác định dung lượng khởi tạo cùng dung lượng tối đa
cho phép tăng trong quá trình thêm dữ liệu vào cơ sở dữ liệu.
LOG ON: Cho phép quản lý những chuyển tác xảy ra trong quá trình sử dụng cơ sở dữ liệu của SQL Server.
COLLATE: Xác định bản đối chiếu mặc định cho cơ sở dữ liệu. Tên bản đối chiếu có thể là tên của bản đối chiếu Window hoặc tên bản đối chiếu của SQL.
FOR ATTACH: Xác định cơ sở dữ liệu được tạo bằng cách gắn một tập các file hệ thống đang tồn tại.
Ví dụ 1:
CREATE DATABASE Qlts
Ví dụ 2:
CREATE DATABASE Qlmbh ON
(
NAME=‟Qlmbh‟ FILENAME=‟D:BT_SQLDATAqlmbhdat.mdf‟ SIZE=10
MAXSIZE=50 FILEGROWTH=5)
LOGON (
NAME=‟QlmbhLog‟, FILENAME=‟D:BT_SQLDATAqlmbhlog.mdf‟, SIZE=5,
MAXSIZE=15, FILEGROWTH=5)
2) Tạo bảng
Tác dụng: Câu lệnh CREATE TABLE tạo ra một bảng trong một cơ sở dữ liệu Cú pháp:
CREATE TABLE [Database_Name.[ower].]<Table_Name> (Column_Name Data_Type
[[DEFAULT <Constant expression>]| [IDENTITY(Seed,increament) [NOT FOR REPLICATION]]] [NULL|NOT NULL]
[<Column Constraint>]
[<Column_Name as computed_columns_expression>]
)ON [<Filegroup| Default>] Trong đó:
- Database_Name: Tên cơ sở dữ liệu
- Table_Name: Tên bảng dữ liệu
- Column_Name: Tên trường dữ liệu
- Data_Type: Kiểu dữ liệu
- DEFAULT: Giá trị mặc nhiên
- IDENTITY: Xác định giá trị tăng tự động của trường, seed là giá trị khởi đầu, increament là bước tăng.
- NULL|NOT NULL: Cho phép trường chấp nhận giá trị Null không.
- Column Constraint: Xác định trường có bị ràng buộc không.
- Column_Name: Xác định trường ảo (giá trị của trường được xây dựng từ trường khác)
Ví dụ:
CREATE TABLE thisinh (sbd varchar(20) not null, hoten text null,
ngaysinh datetime null, gioitinh bit default(0) not null, quequan text null,
dtoan float null, dly float null, dhoa float null,
maut nvarchar(20) not null, man nvarchar(20) not null, sophong int null
) ON Primary
3) Tạo view
Tác dụng: Câu lệnh CREATE VIEW tạo ra một view. Cú pháp:
CREATE VIEW [Database_Name.[ower].]<View_Name> [(<COLUMN_NAME_LIST>)]
[WITH [ENCRYPTION]] [,SCHEMABINDING] [,VIEWMETADATA] AS
<SELECT STATEMENT> WITH CHECK OPTION
Trong đó:
- Database_Name: Tên cơ sở dữ liệu
- View_Name: Tên View cần tạo
- COLUMN_NAME_LIST: Danh sách các trường được sử dụng cho view
- SELECT STATEMENT: Câu lệnh SQL định nghĩa View
- WITH CHECK OPTION: Buộc tất các câu lệnh thay đổi dữ liệu trong view phải được thực hiện theo tiêu chuẩn của câu lệnh SQL. Khi một dòng bị thay đổi thông qua View thì WITH CHECK OPTION đảm bảo rằng dữ liệu vẫn có thể được nhìn thấy sau khi sửa đổi được cam kết.
- ENCRYPTION: Ngăn chặn View công bố như là một phần của bản sao SQL Server.
- SCHEMABINDING: Ngăn chặn các bảng dữ liệu mà view sử dụng không bị thay đổi. Khi sử dụng SCHEMABINDING, select_statement phải bao gồm tên hai phần (schema.object) của bảng, quan điểm, hoặc người dùng định nghĩa chức năng được tham chiếu. Tất cả các đối tượng tham chiếu phải được dùng trong cùng một cơ sở dữ liệu.
- VIEWMETADATA: Cho phép tất cả dữ liệu các trường có thể được cập nhật khi dữ liệu nguồn thay đổi.
Ví dụ: Đưa ra các thông tin gồm số báo danh, họ tên, tổng điểm 3 môn của các thí sinh. use qlts
go
CREATE VIEW vidu(Sobd, hoten, tongd) AS
Select sbd, hoten, dtoan+dly+dhoa From thisinh
2.2.2. Sửa đối tượng
1) Sửa cơ sở dữ liệu
Tác dụng: Câu lệnh ALTER DATABASE dùng để chỉnh sửa các thông số của cơ sở dữ liệu.
Cú pháp:
ALTER DATABASE <Database_Name>
{ADD FILE File_specification[…,n][TO FILEGROUP filegroupname]| ADD LOG FILE File_specification[…,n]|
ADD FILEGROUP <file group name>| MODIFY FILE File_specification| MODIFY LOG FILE File_specification| MODIFY FILEGROUP File_specification| MODIFY NAME =<new databasename>|
REMOVE FILE <logical file name> [WITH DELETE]| REMOVE FILEGROUP <file group name>
}
File_specification (
[NAME=<‟Logical file name‟>,] FILENAME=<‟File name‟> [,SIZE=<‟Size of File‟>] [,MAXSIZE=<‟Max size of File‟>] [,FILEGROWTH=<‟Init size of File‟>]
)
Trong đó:
- ADD FILE: Thêm tệp tin mới
- ADD LOG FILE: Thêm tệp tin log
- ADD FILEGROUP: Thêm nhóm các tệp tin
- MODIFY FILE: Hiệu chỉnh các thuộc tính trong tệp tin
- MODIFY LOG FILE:Hiệu chỉnh các thuộc tính trong tệp tin log
- MODIFY NAME: Thay đổi tên mới của cơ sở dữ liệu
- REMOVE FILE: Xóa bỏ tệp tin
- REMOVE FILEGROUP:Xóa bỏ nhóm các tệp tin. Ví dụ 1: Sửa dung lượng file cơ sở dữ liệu qlmbh
ALTER DATABASE qlmbh MODIFY FILE
(
NAME=qlmbh,SIZE=100
)
Ví dụ 2: Đổi tên file cơ sở dữ liệu qlmbh ALTER DATABASE qlmbh
Modify Name = quanly_MBH
2) Sửa bảng
Tác dụng: Lệnh ALTER TABLE dùng để thay đổi cấu trúc bảng. Sử dụng ALTER TABLE để thêm, sửa hoặc xóa trường trong bảng cũng như các ràng buộc.
Cú pháp:
ALTER TABLE <Table_Name>
[ALTER COLUMN <Column_name> <New_data_type>]| [ADD <Column_name> <Data_Type>]|
[ADD CONSTRAINT <constraint_name>…| [DROP COLUMN <Column _Name>]| [DROP CONSTRAINT <constraint_name>]
Trong đó:
- Table_Name: là tên bảng cần thay đổi;
- ALTER COLUMN: là thay đổi trường;
- Column_Name: là tên trường cần bổ sung, thay đổi hay xóa;
- New_data_type: là kiểu dữ liệu thay đổi cho trường;
- ADD là bổ sung trường hoặc ràng buộc vào bảng;
- DROP COLUMN là xóa trường từ bảng.
- DROP CONSTRAINT là xóa ràng buộc.
Ví dụ: Thêm trường Số chứng minh thư (SOCMT) vào bảng thí sinh.
ALTER TABLE thisinh ADD SOCMT nvarchar(10)
3) Sửa view
Tác dụng: Lệnh ALTER VIEW dùng để thay đổi cấu trúc view Cú pháp:
ALTER VIEW Database_Name.[ower].]<View_Name> [(<COLUMN_NAME_LIST>)]
[WITH [ENCRYPTION]] [,SCHEMABINDING] [,VIEWMETADATA] AS
<SELECT STATEMENT> [WITH CHECK OPTION]
Ví dụ: Thêm điều kiện tìm kiếm thí sinh theo quê quán là „Nam Dinh‟ cho view Vidu use qlts
go
ALTER VIEW vidu AS
Select sbd, hoten, dtoan+dly+dhoa From thisinh
Where quequan=‟Nam Dinh‟
2.2.3. Xóa đối tượng
1) Xóa cơ sở dữ liệu
Tác dụng: Lệnh DROP DATABASE dùng để xóa cơ sở dữ liệu. Cú pháp:
DROP DATABASE <Database_Name>
Với <Database_Name> là tên cơ sở dữ liệu sẽ bị xóa. Ví dụ:
DROP DATABASE qlts
2) Xóa bảng
Tác dụng: Lệnh DROP TABLE dùng để xóa bảng khỏi cơ sở dữ liệu. Khi xóa bảng, tất cả các đối tượng thuộc bảng như: chỉ mục, trigger, ràng buộc, và quyền chỉ định cho bảng đó đều bị xóa.
Cú pháp:
DROP TABLE <Table_Name>
Với <Table_Name> là tên bảng dữ liệu sẽ bị xóa. Ví dụ:
DROP TABLE thisinh
3) Xóa View
Tác dụng: Lệnh DROP VIEW dùng để xóa view khỏi cơ sở dữ liệu. Khi xóa View; định nghĩa View và tất cả các thông tin của View được xóa khỏi danh muc hệ thống, tất các các quyền truy cập View cũng bị xóa.
Cú pháp:
DROP VIEW <View_Name>
Với <View_Name> là tên View sẽ bị xóa. Ví dụ: Xóa view ví dụ
DROP VIEW vidu
2.2.4. Các loại ràng buộc dữ liệu
Trong một cơ sở dữ liệu, khi bảng có sự thay đổi dữ liệu thì chúng phải tuân theo một quy luật nhất định nhằm đảm bảo được tính ràng buộc toàn vẹn đối với dữ liệu đang tồn tại trong các bảng có quan hệ với nhau. Ràng buộc (Constraints) được dùng để kiểm tra khi có sự biến đổi từ phía dữ liệu như thêm vào, xóa, cập nhật từ bất kỳ một nguồn dữ liệu nào khác. Ví dụ từ chính trong môi trường SQL Server, từ các chương trình Visual Bacsic, Visual Bacsic.Net, Java, C#,.. truy cập đến cơ sở dữ liệu. Khi có sự thay đổi dữ liệu trong bảng thì quá trình kiểm tra ràng buộc được thực hiện như một phương thức. Phương thức này sẽ kiểm tra tất cả các điều kiện và các quy luật đã thiết lập khi xây dựng cơ sở dữ liệu. Nếu dữ liệu được thêm vào, xóa, hay cập nhật không thỏa mãn các điều kiện hoặc các quy luật đã định nghĩa thì SQL Server sẽ đưa ra thông báo cho người dùng biết là dữ liệu đưa vào không hợp lệ. Dữ liệu khi đó sẽ không được phép cập nhật và thay đổi trong cơ sở dữ liệu.
Các loại ràng buộc:
- Ràng buộc miền (Domain constraints)
- Ràng buộc thực thể (Entity constraints)
- Ràng buộc toàn vẹn (Reference intergrity constraints)
- Ràng buộc khóa chính (Primary Key constraints)
- Ràng buộc khóa ngoại (Foreign Key constraints)
- Ràng buộc duy nhất (Unique constraints)
- Ràng buộc kiểm tra (Check constraints)
- Ràng buộc mặc nhiên (Default constraints)
1) Ràng buộc miền (Domain constraints)
Ràng buộc miền liên quan đến một hay nhiều trường. Ứng với mỗi trường có các quy luật hay tiêu chuẩn. Khi thêm hay cập nhật các bản ghi, ràng buộc này sẽ kiểm tra mà không cần xét đến sự liên quan của các bản ghi trong bảng.
2) Ràng buộc thực thể (Entity constraints)
Ràng buộc thực thể liên quan đến bản ghi. Khi thêm hay cập nhật các bản ghi, ràng buộc sẽ kiểm tra dữ liệu có đúng với tiêu chuẩn hay không.
3) Ràng buộc toàn vẹn (Reference intergrity constraints)
Ràng buộc toàn vẹn liên quan đến bảng có quan hệ với bảng hiện tại. Khi thêm hay cập nhật các bản ghi, ràng buộc sẽ kiểm tra giá trị của trường có phù hợp với trường trong bảng quan hệ khác với bảng hiện chứa trường ràng buộc hay không.
4) Ràng buộc khóa chính (Primary Key constraints)
Ràng buộc Primary Key được sử dụng để định nghĩa khoá chính của bảng. Khoá chính của một bảng là một hoặc một tập nhiều trường mà giá trị của chúng là duy nhất