3.Các ràng buộc toàn vẹn SQL
Trong chương 2 bạn đã thấy rằng sự tôn trọng các quy tắc toàn vẹn tham chiếu và toàn vẹn thực thể là quan trọng trong môi trường CSDL quan hệ. May mắn là phần lớn các cài đặt SQL đều hỗ trợ cả hai quy tắc toàn vẹn này. Chẳng hạn, toàn vẹn thực thể được thực thi tự động nếu khóa chính được mô tả trong dãy lệnh CREATE TABLE. Do đó, chúng ta có thể tạo cấu trúc bảng VENDOR và chuẩn bị thực thi quy tắc toàn vẹn thực thể bởi
CREATE TABLE VENDOR ( V_CODE SMALLINT NOT NULL,
V_COMPANY CHAR(25),
C_LNAME CHAR(12),
C_FNAME CHAR(10),
C_I CHAR(2),
V_PHONE CHAR(12),
V_ADDRESS CHAR(30),
V_CITY CHAR(20),
V_STATE CHAR(2),
V_ZIP CHAR(5)
PRIMARY KEY(V_CODE));
Chuẩn bị thực thi quy tắc toàn vẹn tham chiếu được thiết lập bởi mô tả khoá ngoại trong lệnh CREATE TABLE. Chẳng hạn, chúng ta có thực hiện nhiệm vụ này bằng cách tạo cấu trúc bảng INVENTRY như sau:
CREATE TABLE INVENTRY ( P_CODE CHAR(8) NOT NULL,
P_DESCRIPT CHAR(25),
STOCK_DATE DATE,
ON_HAND SMALLINT,
MIN_QUANT SMALLINT,
PRICE DECIMAL(7,2),
V_CODE SMALLINT
PRIMARY KEY(P_CODE),
FOREIGN KEY(V_CODE) REFERENCES VENDOR);
Chúng ta sẽ thấy trong chương 4 mệnh đề khoá ngoại và khóa chính này quan trọng như thế nào trong việc cài đặt mô hình E-R.
III.QUẢN LÝ DỮ LIỆU CƠ BẢN
Trong phần này bạn sẽ học sử dụng các lệnh SQL sau đây:
(a)Lệ
|
(b)Giải thích
|
INSERT
|
Cho phép bạn chèn dữ liệu vào bảng, mỗi hàng một lần. Thường dùng để tạo mục dữ liệu đầu tiên cho cấu trúc bảng mới hoặc bổ sung dữ liệu cho bảng đang chứa dữ liệu.
|
SELECT
|
Liệt kê nội dung bảng. Thực tế, SELECT là lệnh vấn tin chứ không phải lệnh quản lý dữ liệu. Tuy nhiên, SELECT được giới thiệu trong phần này vì nó cho phép bạn kiểm tra kết quả của nỗ lực quản lý dữ liệu.
|
COMMIT
|
Cho phép bạn lưu kết quả làm việc lên đĩa
|
UPDATE
|
Cho phép bạn tạo sự thay đổi dữ liệu.
|
DELETE
|
Cho phép bạn xoá một hoặc nhiều hàng dữ liệu.
|
ROLLBACK
|
Khôi phục lại nội dung CSDL về trạng thái ban đầu (từ sau COMMIT cuối cùng được dùng).
| 2.Nhập dữ liệu
SQL yêu cầu dùng lệnh INSERT để nhập dữ liệu vào bảng. Chúng ta sẽ trình bày INSERT với hai hàng dữ liệu đầu tiên từ bảng INVENTRY được chỉ ra trên bảng 3.1:
Để nhập dữ liệu này, bạn gõ
INSERT INTO INVENTRY VALUES(‘13-Q2/P2’,’ 7.25in, power saw blade’, ‘08/12/91’,32, 15, 14.99, 21344);
và nhấn phím ENTER; sau đó gõ
INSERT INTO INVENTRY VALUES(‘ZW-23116’,’ 2.5in, wood screw, 100’, ‘06/25/91’,237, 100, 8.45, 21231);
và nhấn lại phím ENTER lần nữa.
Nhận xét rằng
Nội dung hàng được đưa vào giữa cặp dấu ngoặc. (Lưu ý rằng kí tự đầu tiên sau VALUES là dấu mở ngoặc và kí tự cuối cùng trong dãy lệnh là dấu đóng ngoặc)
Giá trị kiểu ngày và kiểu kí tự phải được đưa vào giữa cặp dấu nháy (‘).
Giá trị số không cần bao bởi dấu nháy.
Các mục dữ liệu tách nhau bởi dấu phảy.
Rõ ràng, nhập dữ liệu hơi rắc rối trong môi trường SQL. Nhớ rằng các ứng dụng người dùng đầu cuối được tạo ra tốt nhất với các tiện ích có màn hình nhập liệu hấp dẫn (và dễ dùng!).
3.Kiểm tra nội dung bảng
Để kiểm tra nội dung bảng tại mỗi thời điểm, dùng lệnh SELECT, kèm theo sau là danh sách các thuộc tính cần kiểm tra. Hoặc nếu bạn muốn kiểm tra theo tất cả thuộc tính, dùng * để chỉ ra “tất cả thuộc tính”. (Kí hiệu thay thế cho các kí tự khác hoặc các lạnh được gọi là kí tự thay thế). Chẳng hạn, một trong hai dãy lệnh
SELECT * FROM INVENTRY
hoặc
SELECT P_CODE, P_DESSCRIPT, STOCK_DATE, ON_HAND, MIN_QUANT,
PRICE, V_CODE FROM INVENTRY
đều tạo ra kết quả sau đây:
P_CODE
|
P_DESCRIPT
|
STOCK_DATE
|
ON_HAND
|
MIN_QUANT
|
PRICE
|
V_CODE
|
1
Lưu ý: Một số cài đặt SQL (chẳng hạn ORACLE) cắt bớt tên thuộc tính để phù hợp với độ rộng của cột.
3-Q2/P2
ZW-23116
|
7.25in, power saw blade
2.5in, wood screw, 100
|
08/12/91
06/25/91
|
32
237
|
15
100
|
14.99
8.45
|
21344
21231
|
Mặc dù các lệnh SQL có thể được đưa vào trên một dòng duy nhất, dãy lệnh được xem là rõ ràng dễ đọc nhất (cấu trúc tốt nhất) khi các thành phần của lệnh SQL được viết trên các dòng tách biệt. Vì vậy, chúng ta sẽ viết lại các lệnh nêu trên như sau:
SELECT *
FROM INVENTRY;
hoặc
SELECT P_CODE, P_DESSCRIPT, STOCK_DATE, ON_HAND, MIN_QUANT,
PRICE, V_CODE
FROM INVENTRY;
Chia sẻ với bạn bè của bạn: |