Các mục đích Sau khi hoàn thành bài viết này, các bạn có thể: Hiểu được những kiểu dữ liệu cơ bản và nâng cao Tạo ra các bảng, các khung nhìn, và chỉ số trong cơ sở dữ liệu DB2
Trang 1Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 5: Làm việc
với các đối tượng của DB2
Hana Curtis, Chuyên gia, IBM Canada
Tóm tắt: Bài viết này thảo luận về những kiểu dữ liệu, bảng, khung nhìn (view),
và chỉ mục được định nghĩa bởi DB2 9 Nó giải thích những đặc tính của những đối tượng trên, và làm cách nào để tạo ra và xử lí chúng sử dụng Ngôn ngữ truy vấn cấu trúc(SQL), và chúng có thể được sử dụng trong ứng dụng như thế nào Bài viết này là bài thứ năm trong một loạt bảy bài viết mà bạn có thể sử dụng để chuẩn
bị cho kỳ thi 730, lấy chứng chỉ DB2 9 cơ bản
Trước khi bạn bắt đầu
Về loạt bài này
Bạn đã nghĩ tới việc có một chứng chỉ cơ bản của DB2 (Bài thi số 730)? Nếu bạn nghĩ như thế thì bạn đã đến đúng chỗ Đây là loạt bảy bài hướng dẫn chuẩn bị cho
kỳ thi chứng chỉ DB2 bao hàm tất cả những kiến thức cơ bản những chủ đề bạn cần hiểu trước khi bạn đọc những câu hỏi sát hạch đầu tiên Ngay cả khi bạn
không có kế hoạch giành được chứng chỉ đi chăng nữa, những bài viết này cũng là nơi tuyệt vời để có được kiến thức để biết DB2 9 là gì
Về bài viết này
Trang 2Những kiến thức trong bài viết này chủ yếu về những đối tượng trong mục 5 của bài thi, có tựa đề là "Làm việc với đối tượng DB2" Bạn có thể thấy những mục đích này tại: http://www-03.ibm.com/certify/tests/obj730.shtml
Những chủ đề trong bài viết này gồm có:
Giới thiệu về những kiểu dữ liệu có sẵn trong DB2, và việc sử dụng khi định nghĩa một bảng (Xử lí khác nhau đối với các loại dữ liệu khác nhau, xem bài viết thứ tư trong loạt bài viết này)
Giới thiệu về những kiểu dữ liệu nâng cao
Bảng, khung nhìn, và chỉ mục
Giải thích về các kiểu ràng buộc dữ liệu và cách sử dụng chúng
Các mục đích
Sau khi hoàn thành bài viết này, các bạn có thể:
Hiểu được những kiểu dữ liệu cơ bản và nâng cao
Tạo ra các bảng, các khung nhìn, và chỉ số trong cơ sở dữ liệu DB2
Hiểu được những đặc tính và cách dùng của những ràng buộc duy nhất, ràng buộc về toàn vẹn, và ràng buộc kiểm tra bảng
Sử dụng khung nhìn để giới hạn khả năng truy cập dữ liệu
Hiểu được những đặc tính của chỉ mục
Trang 3
Yêu cầu hệ thống
Bạn không cần một bản sao chép của DB2 để hoàn thành bài viết này Tuy nhiên, nếu bạn thích, bạn có thể tải xuống phiên bản thử nghiệm của IBM DB2 9 để làm việc với bài viết này
Kiểu dữ liệu
DB2 cung cấp sự phân loại kiểu dữ liệu một cách linh động và phong phú DB2 bắt đầu với những kiểu dữ liệu cơ bản như INTEGER, CHAR, và DATE Nó cũng bao gồm những khả năng để tạo ra những loại dữ liệu do người dùng định nghĩa (UDTs) do vậy bạn có thể tạo ra những cấu trúc dữ liệu mới, phức tạp phù hợp với môi trường lập trình phức tạp ngày nay Việc chọn kiểu dữ liệu để sử dụng phụ thuộc vào kiểu và phạm vi thông tin chứa trong cột
Có bốn lớp dữ liệu có sẵn: Số, Chuỗi ký tự, thời gian, và XML
Những kiểu dữ liệu người dùng định nghĩa được phân loại như: riêng biệt, có cấu trúc và tham chiếu
Kiểu dữ liệu số
Trang 4Ở đây có ba phạm trù của kiểu dữ liệu số, như trong hình trên Mỗi kiểu dữ liệu có một phạm vi của dữ liệu mà chúng có khả năng lưu trữ
Integer (Số nguyên): SMALLINT, INTEGER, và BIGINT được sử dụng để
chứa số nguyên Ví dụ, đếm số thiết bị trong bản kiểm kê có thể được định nghĩa như là INTEGER SMALLINT có thể chứa được những số nguyên trong phạm vi từ -32,768 đến 32,767, với kích thước 2 bytes INTEGER có thể chứa được những số nguyên từ -2,147,483,648 đến 2,147,483,647, với kích thước 4 bytes BIGINT có thể chứa được những số nguyên từ -
9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807, với kích thước
8 bytes
Decimal (Số thực): DECIMAL được sử dụng để chứa những số dưới dạng
số thập phân Để định nghĩa kiểu dữ liệu này, chỉ rõ một độ chính xác (p), xác định tổng các chữ số và một phạm vi (s), xác định số các chữ số thập
phân Một cột định nghĩa bởi DECIMAL(10,2) có thể giữ giá trị tiền tệ lên tới 99999999.99 đô la Số lượng yêu cầu chứa trong cơ sở dữ liệu phụ thuộc vào sự chính xác và được tính bởi công thức p/2 +1 Do vậy,
DECIMAL(10,2) đòi hỏi 10/2 + 1 hoặc là 6 bytes
Dấu phẩy động: REAL và DOUBLE được sử dụng để chứa những số xấp
xỉ Ví dụ, những phép đo chính xác rất lớn hoặc rất nhỏ có thể được định nghĩa như là REAL REAL có thể được định nghĩa với độ dài từ 1 đến 24
số và cần 4 bytes để chứa DOUBLE có thể được định nghĩa với độ dài từ
25 đến 53 số và cần 8 bytes để chứa FLOAT có thể được sử dụng như một kiểu tương tự cho kiểu REAL hoặc DOUBLE
Trang 5
Kiểu dữ liệu chuỗi ký tự (String)
DB2 cung cấp rất nhiều kiểu dữ liệu cho việc lưu trữ dữ liệu hoặc xâu ký tự, giống như hình vẽ trên Chọn một kiểu dữ liệu dựa vào kích cỡ của xâu ký tự bạn sẽ chứa đựng và dữ liệu gì sẽ được chứa trong xâu ký tự
Những kiểu dữ liệu dưới đây được sử dụng để chứa xâu các ký tự đơn (gồm từng
ký tự):
CHAR hoặc CHARACTER được sử dụng để chứa chuỗi ký tự có độ dài cố định lên tới 254 bytes Ví dụ, một đặc tính sản xuất có thể được xác định bởi một chuỗi 8 ký tự, và do vậy việc chứa chuỗi này trong cơ sở dữ liệu như là một cột của CHAR(8)
VARCHAR được sử dụng để chứa xâu ký tự có độ dài thay đổi Ví dụ, đặc tính sản xuất liên quan đến một số thành phần có độ dài khác nhau, và do
đó chứa những chuỗi này như là một cột của VARCHAR(100) Độ dài lớn nhất của một cột VARCHAR là 32,672 bytes Trong cơ sở dữ liệu, dữ liệu VARCHAR chỉ chiếm đúng số bytes nó yêu cầu
Những loại dữ liệu dưới đây được sử dụng để chứa xâu ký tự hai byte:
GRAPHIC được sử dụng để chứa những xâu ký tự hai byte có độ dài cố định Độ dài lớn nhất của một cột GRAPHIC là 127 ký tự
Trang 6 VARGRAPHIC được sử dụng để chứa những xâu ký tự hai byte có độ dài thay đổi Độ dài lớn nhất của cột VARGRAPHIC là 16,336 ký tự
DB2 cũng cung cấp những kiểu dữ liệu để chứa những xâu ký tự rất dài Tất cả những kiểu dữ liệu này có cùng đặc tính Thứ nhất, dữ liệu không được chứa về mặt vật lý với hàng dữ liệu trong cơ sở dữ liệu, nó có nghĩa là việc xử lí thêm được yêu cầu để truy nhập vào dữ liệu này Những kiểu dữ liệu dài có thể được định nghĩa độ dài lên tới 2 GB Tuy nhiên, chỉ có không gian được yêu cầu là thực
sự được sử dụng Những kiểu dữ liệu dài:
Kiểu dữ liệu thời gian
DB2 cung cấp ba kiểu dữ liệu để lưu trữ ngày và giờ:
DATE
TIME
Trang 7 TIMESTAMP
Những giá trị của những liệu dữ liệu này được lưu trữ trong cơ sở dữ liệu bằng định dạng nội tại; Tuy nhiên, những ứng dụng có thể xử lí chúng như là những chuỗi ký tự Khi một trong số những kiểu dữ liệu này được lấy ra, nó được coi như
là một chuỗi ký tự Chứa đựng giá trị trong dấu ngoặc kép khi cập nhật những liệu
(timestamp) dựa vào đồng hồ chỉ thời gian của ngày Ví dụ, CURRENT DATE trả
về một chuỗi đại diện cho ngày hiện tại của hệ thống
Định dạng của giá trị thời gian và ngày phụ thuộc vào mã từng quốc gia của cơ sở
dữ liệu, được đặc tả khi tạo ra cơ sở dữ liệu Ở đây có nhiều định dạng có sẵn: ISO, USA, EUR, và JIS Ví dụ, nếu cơ sở dữ liệu của bạn sử dụng định dạng USA, định dạng của ngày sẽ là mm/dd/yyyy Bạn có thể thay đổi định dạng bằng việc sử dụng DATETIME tùy chọn của câu lệnh BIND lệnh khi tạo ứng dụng
Ở đây có một định dạng đơn cho kiểu dữ liệu TIMESTAMP Định dạng này là một chuỗi có dạng yyyy-mm-dd-hh.mm.ss.nnnnnn
Kiểu dữ liệu XML
DB2 cung cấp kiểu dữ liệu XML để lưu trữ những tài liệu XML phổ biến
Trang 8Những giá trị trong những cột XML được lưu trữ trong một sự miêu tả nội tại khác với những định dạng xâu ký tự Để lưu trữ dữ liệu XML vào cột dữ liệu kiểu
XML, dùng hàm chuyển đổi dữ liệu XMLPARSE Tất cả giá trị kiểu XML có thể được chuyển đổi vào trong một chuỗi giá trị đã được phát ra đang miêu tả tài liệu XML sử dụng hàm XMLSERIALIZE DB2 cung cấp nhiều hàm sẵn có khác để xử
lí dữ liệu XML
Kiểu dữ liệu người dùng định nghĩa
DB2 cho phép bạn định nghĩa kiểu dữ liệu phù hợp với ứng dụng của bạn Ở đây
có ba kiểu dữ liệu người dùng định nghĩa:
Kiểu người dùng định nghĩa riêng biệt: Định nghĩa một kiểu dữ liệu mới
dựa trên những kiểu sẵn có Kiểu dữ liệu mới này có đặc tính tương tự như những kiểu có sẵn, nhưng bạn có thể sử dụng nó để chắc chắn rằng chỉ các giá trị cùng kiểu được so sánh với nhau Ví dụ, bạn có thể định nghĩa ra một kiểu đô la của Canada (CANDOL) và một kiểu đô la của Mỹ (USADOL)
cả hai đều dựa vào kiểu số thập phân DECIMAL(10,2) Cả hai kiểu dựa vào cùng kiểu dữ liệu sẵn có, nhưng bạn sẽ không có khả năng so sánh chúng trừ khi một hàm chuyển đổi được sử dụng Câu lệnh dưới đây
CREATE TYPE tạo ra những kiểu dữ liệu CANDOL và USADOL:
CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH
COMPARISONS
CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH
Trang 9COMPARISONS
DB2 tự động tạo ra những hàm để thực hiện gộp giữa kiểu dữ liệu cơ bản
và kiểu riêng biệt, và toán tử so sánh để so sánh các thí dụ của kiểu riêng biệt Những câu lệnh dưới đây trình bày cách làm thế nào để tạo ra một bảng với một cột là kiểu CANDOL và chèn dữ liệu vào bảng sử dụng hàm gộp CANDOL:
CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL)
INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50))
Kiểu cấu trúc người dùng định nghĩa: Tạo ra một kiểu chứa đựng nhiều cột
của những kiểu dữ liệu sẵn có Sau đó, sử dụng cấu trúc này khi tạo bảng
Ví dụ, bạn có thể tạo ra kiểu cấu trúc có tên là ADDRESS chứa dữ liệu về
số đường phố, tên đường phố, thành phố, Sau đó bạn có thể sử dụng kiểu
dữ liệu này khi định nghĩa những bảng khác, như là nhân viên hoặc nhà cung cấp, bởi vì cả hai kiểu dữ liệu này đều cần Những kiểu dữ liệu cấu trúc cũng có thể chứa các kiểu cấu trúc con Kiểu này cho phép bạn lưu trữ những đối tượng mà phụ thuộc theo cấu trúc phân cấp trong cơ sở dữ liệu
Kiểu dữ liệu tham chiếu người dùng định nghĩa: Khi sử dụng kiểu dữ liệu
có cấu trúc, bạn có thể định nghĩa tham chiếu đến những hàng trong bảng khác sử dụng kiểu tham chiếu Những kiểu tham chiếu này dường như
Trang 10tương tự với ép kiểu cho tham chiếu; Tuy nhiên, chúng không ép buộc mối quan hệ giữa các bảng Tham chiếu trong bảng cho phép bạn định rõ những truy vấn bằng nhiều cách khác nhau
Những kiểu dữ liệu tham chiếu và có cấu trúc do người dùng định nghĩa là đề tài đầu tiên; thông tin hiện tại ở đây chỉ xem như một lời giới thiệu những kiểu dữ liệu này
Mở rộng DB2
Những phần mở rộng của DB2 hỗ trợ những kiểu dữ liệu mới, phức tạp Chúng được đóng gói riêng lẻ từ mã máy chủ DB2 và được cài trên máy chủ và trong mỗi
cơ sở dữ liệu sử dụng kiểu dữ liệu này
Có nhiều phần mở rộng DB2 sẵn có của IBM và những nhà cung cấp phần mềm độc lập Bốn chức năng mở rộng đầu tiên cung cấp bởi IBM hỗ trợ việc lưu trữ âm thanh, video, hình ảnh và dữ liệu văn bản Ví dụ, sử dụng chức năng mở rộng hỗ trợ hình ảnh của DB2 lưu trữ một ảnh của quyển sách và chức năng mở rộng hỗ trợ văn bản để lưu trữ văn bản của một quyển sách Hiện tại, có rất nhiều chức năng mở rộng sẵn có khác Chức năng mở rộng hỗ trợ không gian DB2 có thể sử dụng để lưu trữ và phân tích dữ liệu không gian và chức năng mở rộng XML cho việc quản lý dữ liệu XML
Những chức năng mở rộng của DB2 được thực thi bằng việc sử dụng các đặc tính kiểu những kiểu người dùng định nghĩa và các chức năng người dùng định nghĩa (UDFs) Mỗi chức năng mở rộng có thể gồm một hay nhiều UDTs, UDFs được thực thi trên các công cụ người dùng định nghĩa (UDT), các giao diện lập trình
Trang 11ứng dụng (APIs), và cả những công cụ khác Ví dụ, chức năng mở rộng hình ảnh bao gồm:
Kiểu DB2IMAGE do người dùng định nghĩa
Những hàm do người dùng định nghĩa (UDFs) để chèn và lấy dữ liệu từ một cột kiểu DB2IMAGE
Giao diện lập trình ứng dụng (APIs) để tìm kiếm dựa trên những đặc tính của hình ảnh
Trước khi sử dụng những loại dữ liệu này, cài đặt những hỗ trợ mở rộng vào cơ sở
dữ liệu Tiến trình cài đặt cho từng chức năng mở rộng xác định những UDTs và UDFs cần thiết vào cơ sở dữ liệu Khi bạn thực hiện xong, bạn có thể sử dụng UDTs khi định nghĩa bảng và sử dụng UDFs khi làm việc với dữ liệu (Để hiểu hơn về những phần mở rộng này, xem ở bài viết đầu tiên trong loạt bài này.)
Kiểu dữ liệu XML, là một đặc tính mới ở DB2 9, cung cấp những đặc tính nâng cao cho việc xử lí những tài liệu XML Những ứng dụng và dữ liệu sử dụng chức năng mở rộng XML phải được chuyển hướng để sử dụng hỗ trợ XML nội tại trong DB2
Các bảng
Tất cả dữ liệu được chứa trong bảng trong cơ sở dữ liệu Một bảng bao gồm một
hoặc nhiều cột của nhiều loại dữ liệu Dữ liệu được chứa trong những hàng hoặc bản ghi
Bảng được định nghĩa sử dụng CREATE TABLE câu lệnh SQL DB2 cũng cung cấp một công cụ đồ họa (GUI tool), Trung tâm điều khiển DB2 (DB2 Control
Trang 12Center), để tạo ra những bảng dựa trên những thông tin bạn mô tả Nó cũng sinh ra CREATE TABLE câu lệnh SQL, được sử dụng trong lập trình kịch bản và lập trình ứng dụng sau này
Một cơ sở dữ liệu có tập hợp các bảng, được gọi là bảng liệt kê hệ thống, lưu giữ
thông tin về tất cả những đối tượng trong cơ sở dữ liệu DB2 cung cấp những khung nhìn (views) cho bảng liệt kê hệ thống Cửa sổ quan sát SYSCAT.TABLES chứa một hàng cho mỗi bảng được định nghĩa trong cơ sở dữ liệu
SYSCAT.COLUMNS chứa một hàng cho mỗi cột của mỗi bảng trong cơ sở dữ liệu Nhìn vào những khung nhìn sử dụng SELECT câu lệnh này, giống bất kì bảng nào khác trong cơ sở dữ liệu; tuy nhiên, bạn không thể sửa đổi dữ liệu bằng việc sử dụng những câu lệnh INSERT, UPDATE, hoặc DELETE Những bảng được cập nhật tự động như là kết quả của những câu lệnh định nghĩa dữ liệu
(DDL), giống như CREATE, và những thực thi khác, giống như RUNSTATS
Trang 13Bạn có thể sử dụng câu lệnh SQL CREATE TABLE để tạo một bảng giống như những bảng hoặc khung nhìn khác trong cơ sở dữ liệu:
CREATE TABLE MYBOOKS LIKE BOOKS
Câu lệnh này tạo ra một bảng có cùng số cột như bảng hoặc khung nhìn gốc
Những cột của bảng mới có cùng tên, kiểu dữ liệu, và những thuộc tính có hiệu lực như những cột trong bảng gốc Bạn có thể xác định rõ những mệnh đề cho phép sao chép những đặc tính, gồm các cột mặc định và các thuộc tính xác định
Có rất nhiều tùy chọn sẵn có cho câu lệnh CREATE TABLE (chúng được miêu tả trong những phần sau như là khái niệm mới) Chi tiết của câu lệnh SQL CREATE TABLE có thể được tìm thấy trong tài liệu tham khảo SQL (xem tại Tài nguyên)
Khi bạn đã tạo xong một bảng, có rất nhiều cách để đưa dữ liệu vào bảng Câu lệnh INSERT cho phép bạn chèn một hoặc nhiều hàng của dữ liệu vào bảng DB2 cũng cung cấp những tiện ích để chèn một lượng lớn dữ liệu từ tệp Tiện ích
IMPORT chèn nhiều hàng sử dụng câu lệnh INSERT Nó được thiết kế cho việc đưa những lượng nhỏ dữ liệu vào cơ sở dữ liệu Tiện ích LOAD, hướng tới việc nạp lượng lớn dữ liệu, chèn những hàng trực tiếp trên trang dữ liệu vào cơ sở dữ liệu và nhanh hơn nhiều tiện ích IMPORT
Lưu trữ các bảng trong cơ sở dữ liệu
Trang 14Bảng được chứa trong cơ sở dữ liệu trong tablespace (các không gian bảng) Các
không gian tên được cấp không gian vật lí để chứa chúng Tạo không gian bảng trước khi tạo bảng
Khi bạn tạo ra một bảng, bạn có thể để DB2 mặc định đặt bảng vào trong một không gian bảng mặc định hoặc xác định không gian bảng bạn miêu tả Câu lệnh sau CREATE TABLE đặt bảng BOOKS vào không gian bảng BOOKINFO:
CREATE TABLE BOOKS ( BOOKID INTEGER,
BOOKNAME VARCHAR(100),
ISBN CHAR(10) )
IN BOOKINFO
Mặc dù không gian bảng không được đề cập chi tiết ở đây, nhưng nó quan trọng
để hiểu được rằng việc định nghĩa không gian bảng thích hợp ảnh hưởng tới việc thực thi và duy trì cơ sở dữ liệu Để có thêm thông tin về không gian bảng, kiểm tra bài viết thứ hai trong loạt bài viết này
Thay đổi bảng
Sử dụng ALTER TABLE câu lệnh SQL để thay đổi đặc tính của bảng Ví dụ, bạn
có thể thêm hoặc xóa:
Trang 15 Một cột
Một khóa chính
Một hoặc nhiều ràng buộc duy nhất hay ràng buộc tham chiếu
Một hoặc nhiều ràng buộc kiểm tra
Câu lệnh sau thêm một cột tên là BOOKTYPE tới bảng BOOK:
ALTER TABLE BOOKS ADD BOOKTYPE CHAR(1)
Bạn có thể thay đổi các đặc tính của cột trong bảng:
Những thuộc tính xác định của cột
Độ dài của cột kiểu xâu ký tự
Kiểu dữ liệu của cột
Khả năng mang giá trị rộng của cột
Ràng buộc của cột
Ở đây có một số giới hạn của việc thay đổi cột:
Khi thay đổi độ dài của cột kiểu string, bạn có thể chỉ tăng độ dài của nó
Khi thay đổi kiểu dữ liệu của cột, kiểu mới phải phù hợp với những dữ liệu đang tồn tại Ví dụ, bạn có thể chuyển đổi cột kiểu CHAR thành cột kiểu VARCHAR, nhưng không thể chuyển chúng thành GRAPHIC hoặc kiểu số
Trang 16được Những cột kiểu số có thể chuyển đổi thành bất kỳ loại kiểu số nào miễn là kiểu dữ liệu mới đủ lớn để chứa giá trị Ví dụ, chuyển đổi cột kiểu INTEGER thành BIGINT, nhưng, một kiểu DECIMAL(10,2) không thể chuyển thành kiểu SMALLINT
Những xâu có độ dài cố định có thể chuyển thành xâu có độ dài thay đổi và những xâu có độ dài thay đổi có thể chuyển thành những xâu có độ dài cố định Ví dụ, CHAR(100) có thể chuyển thành VARCHAR(150) Những hạn chế tương tự cũng được áp dụng cho xâu graphic
Câu lệnh sau thay đổi kiểu dữ liệu (DATATYPE) của cột BOOKNAME từ
VARCHAR(100) thành VARCHAR(200) và thay đổi giá trị null của cột ISBN thành giá trị khác null:
ALTER TABLE BOOKS ALTER BOOKNAME SET DATA TYPE
VARCHAR(200) ALTER ISBN SET NOT NULL
Một số đặc tính nhất định của bảng không thể được chuyển đổi Ví dụ, bạn không thể thay đổi không gian bảng chứa bảng đó, trật tự của cột, hoặc không thể thay đổi kiểu của một vài cột Để thay đổi những đặc tính này, lưu dữ liệu bảng, xóa bảng, và tạo lại nó
Xóa bảng
Trang 17Câu lệnh DROP TABLE xóa bảng từ cơ sở dữ liệu, xóa dữ liệu và định nghĩa bảng Nếu có những chỉ số hoặc những ràng buộc được định nghĩa trên bảng, chúng cũng được xóa luôn
Câu lệnh dưới đây DROP TABLE xóa bảng BOOK từ cơ sở dữ liệu:
DROP TABLE BOOKS
Những tùy chọn của cột NOT NULL, DEFAULT, và GENERATED
Những cột của bảng được đặc tả trong câu lệnh CREATE TABLE bởi một cột tên
và kiểu dữ liệu Những cột có thể có thêm những mệnh đề giới hạn dữ liệu trong cột
Mặc định, một cột cho phép giá trị null Nếu bạn không muốn cho phép null, miêu
tả mệnh đề NOT NULL cho cột Định rõ giá trị mặc định sử dụng mệnh đề WITH DEFAULT và một giá trị mặc định Câu lệnh dưới CREATE TABLE tạo ra một bảng tên là BOOKS, trong đó cột BOOKID không cho phép null và giá trị mặc định cho BOOKNAME là TBD:
CREATE TABLE BOOKS ( BOOKID INTEGER NOT NULL,
BOOKNAME VARCHAR(100) WITH DEFAULT
Trang 18'TBD',
ISBN CHAR(10) )
Trong bảng BOOKS, BOOKID là một số duy nhất được gán cho mỗi quyển sách Tốt hơn cho ứng dụng phát ra mã nhận dạng, bạn có thể định rõ rằng DB2 phát ra BOOKID sử dụng mệnh đề GENERATED ALWAYS AS IDENTITY:
CREATE TABLE BOOKS ( BOOKID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
BOOKNAME VARCHAR(100) WITH DEFAULT 'TBD',
Trang 19CREATE TABLE AUTHORS (AUTHORID INTEGER NOT NULL
DB2 cung cấp nhiều cách để điều khiển cách dữ liệu được chứa trong cột Những
đặc tính này được gọi là ràng buộc hoặc các luật cái mà người quản lý cơ sở dữ
liệu áp đặt trên cột hoặc tập các cột dữ liệu
DB2 cung cấp ba kiểu ràng buộc: unique (duy nhất), referential integrity (toàn vẹn tham chiếu), và table check (kiểm tra bảng)
Những đoạn dưới đây cung cấp sự miêu tả chi tiết mỗi kiểu ràng buộc