Tạo hoặc sửa đổi bảng hoặc chỉ mục bằng cách sử dụng truy vấn định nghĩa dữ liệu

Lưu ý: Chúng tôi muốn cung cấp cho bạn nội dung trợ giúp mới nhất ở chính ngôn ngữ của bạn, nhanh nhất có thể. Trang này được dịch tự động nên có thể chứa các lỗi về ngữ pháp hoặc nội dung không chính xác. Mục đích của chúng tôi là khiến nội dung này trở nên hữu ích với bạn. Vui lòng cho chúng tôi biết ở cuối trang này rằng thông tin có hữu ích với bạn không? Dưới đây là bài viết bằng Tiếng Anh để bạn tham khảo dễ hơn.

Bạn có thể tạo và sửa đổi các bảng, ràng buộc, chỉ mục và mối quan hệ trong Access bằng cách viết các truy vấn định nghĩa dữ liệu trong dạng xem SQL. Bài viết này giải thích các truy vấn định nghĩa dữ liệu và cách dùng chúng để tạo bảng, ràng buộc, chỉ mục và mối quan hệ. Bài viết này cũng có thể giúp bạn quyết định khi nào nên dùng truy vấn định nghĩa dữ liệu.

Trong bài viết này

Tổng quan

Tạo hoặc sửa đổi một bảng

Tạo chỉ mục

Tạo một giới hạn hoặc mối quan hệ

Tổng quan

Không giống như các truy vấn Access, truy vấn định nghĩa dữ liệu không truy xuất dữ liệu. Thay vào đó, một truy vấn định nghĩa dữ liệu sử dụng ngôn ngữ định nghĩa dữ liệu để tạo, sửa hoặc xóa bỏ đối tượng cơ sở dữ liệu.

Lưu ý: Ngôn ngữ định nghĩa dữ liệu (DDL) là một phần của ngôn ngữ truy vấn có cấu trúc (SQL).

Truy vấn định nghĩa dữ liệu có thể rất thuận tiện. Bạn có thể thường xuyên xóa và tạo lại các phần của lược đồ cơ sở dữ liệu của bạn chỉ bằng cách chạy truy vấn một số. Cân nhắc sử dụng truy vấn định nghĩa dữ liệu nếu bạn đã quen thuộc với câu lệnh SQL và bạn lập kế hoạch để xóa và tạo lại bảng cụ thể, ràng buộc, chỉ mục hoặc mối quan hệ.

Cảnh báo: Sử dụng truy vấn định nghĩa dữ liệu để chỉnh sửa đối tượng cơ sở dữ liệu có thể rủi ro, vì các hành động không đi kèm với bằng hộp thoại xác nhận. Nếu bạn kéo nhầm, bạn có thể làm mất dữ liệu hoặc vô tình thay đổi thiết kế của bảng. Cẩn thận khi bạn dùng truy vấn định nghĩa dữ liệu để chỉnh sửa đối tượng trong cơ sở dữ liệu của bạn. Nếu bạn không chịu trách nhiệm cho duy trì cơ sở dữ liệu mà bạn đang dùng, bạn nên tham khảo với người quản trị của cơ sở dữ liệu trước khi chạy một truy vấn định nghĩa dữ liệu.

Quan trọng: Tạo bản sao các mọi bảng liên quan đến trước khi bạn chạy truy vấn định nghĩa dữ liệu.

Từ khóa DDL

Từ khóa

Sử dụng

CREATE

Tạo chỉ mục hoặc bảng mà không tồn tại.

ALTER

Sửa đổi một bảng hiện có hoặc cột.

DROP

Xóa một bảng hiện có, cột hoặc ràng buộc.

ADD

Thêm một cột hoặc một giới hạn vào bảng.

COLUMN

Sử dụng với nút thêm, thay đổi, hoặc thả

CONSTRAINT

Sử dụng với nút thêm, thay đổi, hoặc thả

INDEX

Sử dụng với tạo

TABLE

Sử dụng với thay đổi, tạo hoặc thả

Đầu trang

Tạo hoặc sửa đổi một bảng

Để tạo bảng, bạn sử dụng lệnh tạo bảng. Lệnh tạo bảng có cú pháp sau:

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

Chỉ bắt buộc thành phần của một lệnh tạo bảng là lệnh tạo bảng đó và tên của bảng, nhưng thông thường bạn sẽ muốn xác định một số trường hoặc các khía cạnh khác của bảng. Cân nhắc ví dụ đơn giản này.

Giả sử bạn muốn tạo một bảng để lưu trữ tên, năm và giá được sử dụng xe hơi mà bạn đang xem xét để mua. Bạn muốn cho phép tối đa 30 ký tự tên và 4 ký tự trong năm. Để sử dụng truy vấn định nghĩa dữ liệu để tạo bảng, hãy làm như sau:

Lưu ý: Trước tiên bạn có thể phải bật nội dung của cơ sở dữ liệu theo thứ tự cho một truy vấn định nghĩa dữ liệu để chạy:

  • Trên Thanh Thông báo, bấm vào Cho phép Nội dung.

Tạo bảng

  1. Trên tab tạo , trong nhóm macro & mã , bấm Thiết kế truy vấn.

  2. Đóng hộp thoại Hiện Bảng.

  3. Trên tab thiết kế , trong nhóm Kiểu truy vấn , hãy bấm Định nghĩa dữ liệu.

    Lưới thiết kế bị ẩn, và hiển thị tab đối tượng dạng xem SQL.

  4. Kiểu câu lệnh SQL sau đây:

    TẠO bảng xe hơi (tên TEXT(30), năm TEXT(4), giá tiền tệ)

  5. Trên tab Thiết kế, trong nhóm Kết quả, bấm Chạy.

Sửa đổi bảng

Để sửa đổi một bảng, bạn sử dụng một lệnh thay đổi bảng. Bạn có thể sử dụng một lệnh thay đổi bảng để thêm, sửa đổi hoặc bỏ (loại bỏ) cột hoặc ràng buộc. Một lệnh thay đổi bảng có cú pháp sau:

ALTER TABLE table_name predicate

nơi vị từ có thể là bất kỳ một trong những thao tác sau:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Giả sử bạn muốn thêm một trường văn bản 10 ký tự để lưu thông tin về điều kiện của mỗi xe. Bạn có thể thực hiện các thao tác sau:

  1. Trên tab tạo , trong nhóm macro & mã , bấm Thiết kế truy vấn.

  2. Đóng hộp thoại Hiện Bảng.

  3. Trên tab thiết kế , trong nhóm Kiểu truy vấn , hãy bấm Định nghĩa dữ liệu.

    Lưới thiết kế bị ẩn, và hiển thị tab đối tượng dạng xem SQL.

  4. Kiểu câu lệnh SQL sau đây:

    Thay đổi bảng xe hơi thêm cột điều kiện TEXT(10)

  5. Trên tab Thiết kế, trong nhóm Kết quả, bấm Chạy.

Đầu Trang

Tạo chỉ mục

Để tạo chỉ mục trên một bảng hiện có, bạn sử dụng lệnh tạo chỉ mục. Lệnh tạo chỉ mục có cú pháp sau:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

Các thành phần bắt buộc chỉ là tạo chỉ mục lệnh, tên của chỉ mục, đối số ON, tên của bảng có chứa các trường mà bạn muốn chỉ mục và danh sách các trường được bao gồm trong chỉ mục.

  • Nguyên nhân đối số DESC chỉ mục được tạo trong giảm dần, có thể hữu ích nếu bạn thường xuyên chạy truy vấn tìm kiếm trên cùng các giá trị cho trường được lập chỉ mục, hoặc có sắp xếp trường được lập chỉ mục theo thứ tự giảm dần. Theo mặc định, chỉ mục được tạo trong thứ tự tăng dần.

  • Đối số với chính thiết lập một chỉ mục hoặc nhiều trường như khóa chính của bảng.

  • Đối số với không cho phép NULL khiến chỉ mục để yêu cầu một giá trị được nhập vào trường được lập chỉ mục — tức là giá trị null không cho phép.

Giả sử bạn có một bảng có tên là xe hơi với các trường lưu trữ tên, năm, giá và điều kiện sử dụng xe hơi mà bạn đang xem xét để mua. Giả sử rằng bảng có trở nên lớn và bạn thường bao gồm năm trường trong truy vấn. Bạn có thể tạo chỉ mục trên trường năm để giúp truy vấn của bạn trả về kết quả nhanh hơn bằng cách sử dụng thủ tục sau đây:

  1. Trên tab tạo , trong nhóm macro & mã , bấm Thiết kế truy vấn.

  2. Đóng hộp thoại Hiện Bảng.

  3. Trên tab thiết kế , trong nhóm Kiểu truy vấn , hãy bấm Định nghĩa dữ liệu.

    Lưới thiết kế bị ẩn, và hiển thị tab đối tượng dạng xem SQL.

  4. Kiểu câu lệnh SQL sau đây:

    TẠO chỉ mục YearIndex trên xe hơi (năm)

  5. Trên tab Thiết kế, trong nhóm Kết quả, bấm Chạy.

Đầu Trang

Tạo một giới hạn hoặc mối quan hệ

Ràng buộc thiết lập một điều kiện lô-gic một trường hoặc kết hợp của trường phải đáp ứng khi giá trị được chèn vào. Ví dụ, một giới hạn duy nhất ngăn hạn chế trường chấp nhận một giá trị nào trùng lặp một giá trị hiện có cho trường.

Mối quan hệ là một kiểu ràng buộc tham chiếu đến giá trị của một trường hoặc kết hợp trường trong một bảng khác để xác định xem một giá trị có thể được chèn trong hạn chế những trường hợp của trường. Bạn không dùng từ khóa đặc biệt để cho biết rằng một giới hạn là một mối quan hệ.

Để tạo một giới hạn, bạn sử dụng một mệnh đề ràng buộc trong một lệnh tạo bảng hoặc bảng thay đổi. Có hai loại ràng buộc mệnh đề: một để tạo một giới hạn trên một trường và khác để tạo một giới hạn trên nhiều trường.

Trường ràng buộc

Một trường ràng buộc mệnh đề ngay lập tức theo xác định trường nó buộc, và có cú pháp sau:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Giả sử bạn có một bảng có tên là xe hơi với các trường lưu trữ tên, năm, giá và điều kiện sử dụng xe hơi mà bạn đang xem xét để mua. Giả sử bạn thường xuyên quên để nhập một giá trị cho điều kiện của xe hơi, và bạn luôn muốn ghi lại thông tin này. Bạn có thể tạo một giới hạn trên điều kiện trường ngăn cản bạn rời khỏi trường trống, theo quy trình sau đây:

  1. Trên tab tạo , trong nhóm macro & mã , bấm Thiết kế truy vấn.

  2. Đóng hộp thoại Hiện Bảng.

  3. Trên tab thiết kế , trong nhóm Kiểu truy vấn , hãy bấm Định nghĩa dữ liệu.

    Lưới thiết kế bị ẩn, và hiển thị tab đối tượng dạng xem SQL.

  4. Kiểu câu lệnh SQL sau đây:

    Thay đổi bảng xe hơi thay đổi cột điều kiện văn bản ràng buộc ConditionRequired không phải là NULL

  5. Trên tab Thiết kế, trong nhóm Kết quả, bấm Chạy.

Bây giờ, giả sử rằng, sau khi một lúc, bạn nhận thấy rằng có là nhiều giá trị tương tự như trong điều kiện trường phải giống. Ví dụ, một số xe có một giá trị điều kiện của kém và những người khác có giá trị không hợp lệ.

Lưu ý: Nếu bạn muốn thực hiện cùng với các quy trình còn lại, thêm một số dữ liệu giả vào bảng xe hơi mà bạn đã tạo trong bước trước đó.

Sau khi bạn dọn dẹp các giá trị sao cho chúng nhất quán hơn, bạn có thể tạo một bảng có tên là CarCondition, với một trường có tên là điều kiện, chứa tất cả các giá trị mà bạn muốn dùng cho điều kiện xe hơi:

  1. Trên tab tạo , trong nhóm macro & mã , bấm Thiết kế truy vấn.

  2. Đóng hộp thoại Hiện Bảng.

  3. Trên tab thiết kế , trong nhóm Kiểu truy vấn , hãy bấm Định nghĩa dữ liệu.

    Lưới thiết kế bị ẩn, và hiển thị tab đối tượng dạng xem SQL.

  4. Kiểu câu lệnh SQL sau đây:

    TẠO bảng CarCondition (điều kiện TEXT(10))

  5. Trên tab Thiết kế, trong nhóm Kết quả, bấm Chạy.

  6. Tạo một khóa chính cho bảng bằng cách sử dụng câu lệnh thay đổi bảng:

    Thay đổi bảng CarCondition thay đổi cột điều kiện văn bản ràng buộc CarConditionPK khóa chính

  7. Để chèn các giá trị từ điều kiện của bảng xe hơi trường vào bảng CarCondition mới, hãy nhập SQL sau đây vào tab đối tượng dạng xem SQL:

    CHÈN vào CarCondition chọn điều kiện riêng biệt từ xe hơi;

    Lưu ý: Câu lệnh SQL trong bước này là một truy vấn chắp thêm. Không giống như một truy vấn định nghĩa dữ liệu, một truy vấn chắp thêm kết thúc bằng dấu chấm phẩy.

  8. Trên tab Thiết kế, trong nhóm Kết quả, bấm Chạy.

Tạo mối quan hệ bằng cách sử dụng ràng buộc

Để yêu cầu bất kỳ giá trị mới được chèn vào trong trường điều kiện của bảng xe hơi khớp với một giá trị điều kiện trường trong bảng CarCondition, bạn có thể rồi tạo mối quan hệ giữa CarCondition và xe hơi trên trường có tên là điều kiện, bằng cách sử dụng các thao tác sau thủ tục:

  1. Trên tab tạo , trong nhóm macro & mã , bấm Thiết kế truy vấn.

  2. Đóng hộp thoại Hiện Bảng.

  3. Trên tab thiết kế , trong nhóm Kiểu truy vấn , hãy bấm Định nghĩa dữ liệu.

    Lưới thiết kế bị ẩn, và hiển thị tab đối tượng dạng xem SQL.

  4. Kiểu câu lệnh SQL sau đây:

    Thay đổi bảng xe hơi thay đổi cột điều kiện văn bản ràng buộc FKeyCondition tham chiếu CarCondition (điều kiện)

  5. Trên tab Thiết kế, trong nhóm Kết quả, bấm Chạy.

Ràng buộc trong nhiều trường

Một mệnh đề ràng buộc nhiều trường có thể dùng chỉ bên ngoài mệnh đề trường định nghĩa và có cú pháp sau:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Cân nhắc ví dụ khác sử dụng bảng xe hơi. Giả sử bạn muốn đảm bảo rằng không có hai bản ghi trong bảng xe hơi có cùng một bộ giá trị cho tên, năm, điều kiện và giá. Bạn có thể tạo một giới hạn duy nhất áp dụng cho các trường này, theo quy trình sau đây:

  1. Trên tab tạo , trong nhóm macro & mã , bấm Thiết kế truy vấn.

  2. Đóng hộp thoại Hiện Bảng.

  3. Trên tab thiết kế , trong nhóm Kiểu truy vấn , hãy bấm Định nghĩa dữ liệu.

    Lưới thiết kế bị ẩn, và hiển thị tab đối tượng dạng xem SQL.

  4. Kiểu câu lệnh SQL sau đây:

    Thay đổi bảng xe hơi thêm ràng buộc NoDupes duy nhất (tên, năm, điều kiện, price)

  5. Trên tab Thiết kế, trong nhóm Kết quả, bấm Chạy.

Đầu Trang

Phát triển kỹ năng Office của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×