Quản lý Table trong SQL Server

Một phần của tài liệu Phát triển ứng dụng cơ sở dữ liệu với c và net framework (Trang 169 - 180)

- Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở dữ liệu nhờđó đảm bảo tính hợp lệ và chính xác của dữ liệu trướ c các thao

c. Lưu trữ, phục hồi Database Phục hồi database

3.2.3. Quản lý Table trong SQL Server

Nội dung: - Tạo table

- Xóa table

Sau khi tạo CSDL mới, cần thiết kế và tạo table để lưu giữ dữ liệu. Một bảng là một lưới hai chiều tạo thành cột (row) và dòng (column).

Mỗi column trong table chứa thông tin về một đặc tính riêng biệt, dữ liệu trong mỗi column có kiểu dữ liệu xác định.

Row chứa tất cả thông tin về một dữ liệu nhập xác định của một hoặc nhiều row. Mỗi row trong bảng chứa thông tin về một hạng mục.

Để tạo, sửa hoặc xóa Table, chúng ta có thể dùng công cụ trong Object Explorer hoặc bằng lệnh T-SQL.

3.2.3.1. Dùng công cụ trong Object Explorer

Trong cửa sổ của Object Explorer, sổ danh mục của đối tượng Database, chọn CSDL đã tạo, mở rộng CSDL này, chúng ta sẽ thấy có các đối tượng trong danh mục của CSDL: Database Diagrams, Tables, Views, Synonyms,… Chọn và nhấn phải chuột lên Tables, nhấn chọn New Table sẽ xuất hiện bảng Table – dbo.Table_1 hiển thị bên phải màn hình Management Studio. Bảng này gọi là Table Designer, chứa các cột:

- Column Name: ten cột cần tạo - Data Type: kiểu dữ liệu của cột

- Allow Nulls: nếu được chọn thì cột này cho phép giá trị NULL

Như vậy, mỗi dòng của Table Designer chứa các thông tin đặc tả cho một cột của bảng cần tạo.

Nhập tên các cột và kiểu dữ liệu của nó cho bảng muốn tạo.

Ví dụ tạo 2 bảng Docgia, Tuasach trong CSDL QuanLyThuVien với các thông tin sau:

Docgia

Column Name Data Type Allow Nulls

Ma_docgia Int Not null

Ho Varchar (50) Null

Ten_lot Varchar (50) Null

Ten Varchar (50) Null

Nhấn phải chuột lên dòng Ma_docgia rồi chọn Set Primary Key để cho biết cột này là khoá chính hoặc nhấn nút hình chìa khóa trên thanh công cụ.

Save cấu trúc bảng vừa tạo vào CSDL, hộp thoại Choose Name xuất hiện để

nhập tên bảng cần tạo, ởđây là bảng Docgia, nhấn OK.

Bảng vừa tạo được lưu trong CSDL QuanLyThuVien thuộc nhóm Tables.

Để kiểm tra bảng Docgia cùng với những thông tin vừa tạo, mở rộng Tables trong CSDL QuanLyThuVien, đối tượng dbo.Docgia sẽ xuất hiện trong danh mục của Tables, chúng ta có thể xem hình vẽ dưới đây:

Bảng Docgia vừa tạo chưa có CSDL nhưng chúng ta có thể truy vấn theo cách sau: chọn table Docgia, nhấp chuột phải và chọn Open Table, sẽ xuất hiện một bảng Table – dbo.Docgia bên phải màn hình Management Studio như hình dưới

Tương tự, chúng ta tạo bảng Tuasach trong CSDL QuanLyThuVien, với cột Ma_tuasach là khóa chính:

Tuasach

Column Name Data Type Allow Nulls

Ma_tuasach Int Not null

Tua_sach Varchar (50) Null

Tac_gia Varchar (50) Null

Tom_tat Varchar (100) Null

* Định nghĩa quan hệ cho bảng

Các CSDL quan hệ hoạt động dùng quan hệ được định nghĩa giữa các bảng chứa trong mỗi CSDL. Quan hệ giúp tránh việc nhập trùng thông tin, như vậy giảm

được nguy cơ dữ liệu không nhất quán. Chúng ta chỉ ra quan hệ bằng cách dùng khóa chính và khóa ngoại trong các bảng quan hệ.

Nội dung dữ liệu bảng Docgia xuất hiện khi nhấp Open Table

Khóa chính là dấu hiệu duy nhất để xác định một dòng trong bảng. Nếu bảng có quan hệ với bảng khác, nó sẽ có một cột là khóa chính trong một bảng khác, cột

đó được gọi là cột khóa ngoại.

Để tạo quan hệ bảng, trong CSDL phải có ít nhất 2 bảng trở lên, ví dụ trong CSDL QuanLyThuVien, chúng ta tạo thêm bảng Dausach, với các thông tin dữ liệu như sau:

Dausach

Column Name Data Type Allow Null

Isbn Varchar (20) Not null

Ma_tuasach int null

Ngon_ngu Varchar (50) Null

Bia Varchar (50) Null

Trang_thai int Null Thiết lập cột Isbn là khóa chính. Để tạo quan hệ giữa 2 bảng Tuasach và

Dausach với cột Ma_tuasach là khóa ngoại trong bảng Dausach, chúng ta thực hiện như sau:

- Nhấn phải chuột lên bảng Dausach và chọn Modify, bảng Dausach hiện chế độ thiết kếở bên phải màn hình Management Studio.

- Nhấn phải chuột lên dòng bất kỳ của bảng Dausach và chọn Relationship từ

trình đơn ngữ cảnh. Hộp thoại Foreign Key Relationship xuất hiện.

- Nhấn nút Add để tạo quan hệ khóa ngoại. Ở khu vực bên phải hộp thoại nhấn của dòng Tables and Columns Specification:

Sau khi nhấn nút, hộp thoại Tables and Columns xuất hiện.

Trong hộp danh sách Primary key table chọn bảng Tuasach, nhấn chuột ở

dòng bên dưới hộp danh sách này để chọn cột khóa chính của bảng Tuasach: Ma_tuasach.

Trong hộp văn bản Foreign key table mặc định chứa tên bảng Dausach, nhấn chuột ở dòng bên dưới hộp văn bản để chọn cột khóa ngoại mà nó chứa: Ma_tuasach.

- Nhấn OK đóng hộp lại.

Thực hiện các thao tác tiếp theo đểđóng hộp thoại Foreign Key Relationship, save các thao tác vừa thực hiện. Để kiểm tra, vào Tables, chọn và mổ rộng bảng Dausach, vào Column chúng ta sẽ thấy xuất hiện biểu tượng khóa ngoại (FK) của Ma_tuasach trong bảng Dausach:

* Nhập dữ liệu vào bảng vừa tạo

Sau khi tạo bảng, chúng ta có thể nhập dữ liệu vào bảng vừa tạo như sau: - Chọn bảng muốn thêm dữ liệu, ví dụ bảng Docgia

- Nhấn phải chuột lên bảng, chọn Open Table

Bảng sẽ xuất hiện ở cửa sổ bên phải của giao diện Management Studio. Chúng ta có thể nhập trực tiếp dữ liệu vào từng cột của bảng. Nếu cột nào chấp nhận giá trị Null thì không cần nhập giá trị cho nó.

Lưu ý:

Nếu đang thêm dữ liệu vào bảng có khóa ngoại, chúng ta không thể thêm dữ

liệu nếu không có khóa chính tương ứng trong bảng mà nó có quan hệ tới. Nghĩa là giá trị nhập vào cột khóa ngoại phải tồn tại trong cột khóa chính của bảng có cột đó là khóa chính.

* Cập nhật, xóa dữ liệu trong bảng

Phần này sẽ giới thiệu một số thao tác để sửa đổi hoặc xóa dữ liệu đang tồn tại trong bảng.

Để thêm hoặc sửa đổi dữ liệu trong bảng, vào Tables, chọn bảng cần thêm hoặc sử đổi dữ liệu, nhấn chuột phải chọn Modify, bên phải giao diện Management Studio sẽ xuất hiện lại bảng thiết kế, chúng ta có thể thêm hoặc sửa đổi dữ liệu tùy theo yêu cầu cần cập nhật.

Hình vẽ dưới đây minh họa cho việc cập nhật dữ liệu trên bảng Dausach của CSDL QuanLyThuVien:

Xóa dữ liệu trong bảng

Để xóa dữ liệu đang tồn tại trong bảng, thực hiện các thao tác giống như cập nhật dữ liệu vào bảng, khi bảng thiết kế dữ liệu xuất hiện sau khi nhấn lệnh Modify, muốn xóa dữ liệu ở dòng nào, dùng chuột nhấp lên cột đầu tiên màu xám, khi đó cả

dòng sẽ được tô sáng, click phải chuột chọn Delete Column. Nếu muốn xóa nhiều dòng dữ liệu cùng lúc, nhấn và giữ chuột trên vùng chọn dòng và rê sang dòng khác. Chúng ta xem ví dụ minh hoạở hình vẽ dưới đây:

Thêm dữliệu vào bảng Click chuột vào đây để

3.2.3.2. Dùng T-SQL

Cú pháp tạo bảng:

CREATE TABLE [Database_name. [owner].| owner.] table_name ({<column_definition> | column_name AS

computed_column_expression

| <table_constraint>:: = [CONSTRAINT constrain_name]} | [{ PRIMARY KEY | UNIQUE } [,…n]

) Giải thích:

- [Database_name. [owner].| owner.]: chỉ ra bảng thuộc CSDL nào, phần này có thể không cần thiết lập

- Table_name: tên bảng,

- Column_definition: định nghĩa các cột:

[[DEFAULT constant_expression] | [IDENTITY [(seed, increment)]

[<column_constrain> [,…n]] - Column_name: tên field

- Computed_column_expression: biểu thức tính toán từ các field trong cùng table cho field tính toán.

- Default: giá trị mặc định cho cột

- Identity: giá trị của cột sẽ được tự động tăng theo seed và increment, chỉ

dùng cho field kiểu int

- Constraint: ràng buộc cho bảng

Constraint cho phép định nghĩa các rule để bảo toàn các ràng buộc dữ liệu trong database.

Có 2 loại constraint:

+ Column constraint: được định nghĩa như một thuộc tính của field, chỉ áp dụng và tham chiếu trên field đó:

<Column_contraint>::= [CONSTRAINT constraint_name] {[NULL | NOT NULL]

| [{PRIMARY KEY | UNIQUE} [CLUSTERED | NONCLUSTERED] [ WITH FILLFACTOR = fillfactor] [ON {fillgroup | DEFAULT}] ]

| [[FOREIGN KEY]

REFERENCES ref_table ([ref_column]) [ON DELETE {CASCADE | NO ACTION}] [ON UPDATE {CASCADE | NO ACTION}] [ NOT FOR REPLICATION]

(local_expression) }

+ Table constraint: được khai báo độc lập với các field trong table và có thể

tham chiếu đến nhiều cột trong table đó:

<table_defition>::= [CONSTRAINT constraint_name] {[{PRIMARY KEY | UNIQUE}

[CLUSTERED | NONCLUSTERED] {(column [ASC |DES] [,…n])}

[ WITH FILLFACTOR = fillfactor] [ON {fillgroup | DEFAULT}]

]

| [[FOREIGN KEY]

REFERENCES ref_table ([ref_column]) [ON DELETE {CASCADE | NO ACTION}] [ON UPDATE {CASCADE | NO ACTION}] [ NOT FOR REPLICATION]

]

| [CHECK [NOT FOR REPLICATION] (local_expression)

}

Ví dụ tạo bảng Docgia, Dausach trong CSDL QuanLyThuVien: Use QuanLyThuVien

Go

Create table Docgia

(Ma_docgia int identity (1,1) primary key, Ho varchar (50), Ten_lot varchar(50), Ten varchar (50), Ngay_sinh smalldatetime)

Create table Dausach

(Isbn varchar(50) primary key, Ma_tuasach int , Ngon_ngu varchar(50), Bia varchar(20), Trang_thai int)

* Thêm, sửa, xóa dữ liệu trong bảng

Để thêm hoặc sửa dữ liệu vào bảng, chúng ta dùng cú pháp lệnh: ALTER TABLE….. ADD….

Để xóa field trong table ta dùng cú pháp lệnh ALTER TABLE….. DROP….

Lưu ý: chúng ta không thể xóa 1 table mà được tham chiếu (references) bởi 1 ràng buộc (constraint) foreign key . Ràng buộc foreign key hoặc table tham chiếu phải được xóa trước.

Ví dụ:

- Thêm field Ngon_ngu vào bảng Dausach:

Alter table Dausach Add Ngon_ngu varchar (50) - Thêm khóa chính cho column Isnb:

Alter table Dausach Add primary key (Isbn) - Tạo khóa ngoại cho column Ma_tuasach:

Alter table Dausach

Add foreign key (Isbn) references Tuasach (Ma_tuasach) - Xóa column Ngon_ngu:

Alter table Dausach Drop column Ngon_ngu - Xóa ràng buộc khóa ngoại Ma_tuasach:

Alter table nocheck constraint FK_Dausacu_Tuasach

Một phần của tài liệu Phát triển ứng dụng cơ sở dữ liệu với c và net framework (Trang 169 - 180)

Tải bản đầy đủ (PDF)

(192 trang)