1. Phép tìm kiếm đơn giản
Ví dụ: Tìm số hiệu mặt hàng đã được cung ứng: GET W (SP.P#) kết quả: W P# P1 P2 P3
Chú ý: trong ví dụ trên có 6 giá trị nhưng trùng lặp nên chỉ có 3 giá trị phân biệt được lưu trong vùng làm việc W.
2. Phép tìm kiếm theo điều kiện
Ví dụ: Tìm số hiệu những hãng ở Paris có tình trạng lớn hơn 20: GET W (S.S#) : S.CITY = ‘Paris’ ∧ S.STATUS > 20
kết quả:
W S#
S3
Như đã quy định ở trên, nhắc lại rằng dấu “:” có nghĩa là “sao cho”, biểu thức đi sau dấu hai chấm là biểu thức điều kiện hoặc tân từ; danh sách đích chỉ rõ quan hệ S được chiếu trên thuộc tính S#. Kết quả chứa trong vùng W là một quan hệ chỉ còn một thuộc tính.
Chú ý rằng biểu thức điều kiện (tân từ) là một biểu thức có độ phức tạp bất kỳ được viết theo những quy tắt thông thường với các phép tính so sánh =, ≠, >, >=, <, <= và các phép tính của đại số boolean là ∧ (và) ,∨ (hoặc), - (không).
3. Phép tìm kiếm có sắp xếp
Ví dụ: Tìm số hiệu và tình trạng của những hãng ở Paris và sắp xếp theo thứ tự giảm dần của tình trạng:
GET W (S.S#, S.STATUS) : S.CITY = ‘Paris’ DOWN STATUS kết quả:
W S# STATUS
S3 30
S2 10
Bình thường kết của GET là một quan hệ có thể chưa có thứ tự. Khi người sử dụng cần sắp xếp kết quả theo một cách nào đó thì cần chỉ và đưa vào vùng làm việc
UP <tên thuộc tính> UP <tên thuộc tính>… (tăng dần) hoặc DOWN <tên thuộc tính>… (giảm dần)
trong đó ưu tiên được tính từ trái qua phải.
4. Phép tìm kiếm bộ phận
Ví dụ: Tìm số hiệu của một hãng bất kỳ ở Paris: GET W (1) (S.S#) : S.CITY = ‘Paris’
kết quả:
W S#
S2
W S#
S3
Số 1 trong ký hiệu W (1) biểu thị một bộ phận. Có nghĩa là đưa ra đúng một bộ thỏa điều kiện tìm kiếm, đó là bộ đầu tiên gặp được.
5. Phép tìm kiếm có sử dụng biến vùng
Ví dụ: Tìm kiếm số hiệu của những hãng có cung ứng mặt hàng P2. Có hai cách giải quyết: Cách 1: GET W (SP.S#) : SP.P# = ‘P2’ Cách 2: RANGE SP X GET W (X.S#) : X.P# = ‘P2’
Hai cách thể hiện trên là hoàn toàn tương đương. Trong câu lệnh thứ hai, X là một biến vùng. Các giá trị cho phép của biến này là các bộ của SP. Nói chung biến vùng thường cho phép để viết tắt cho nhanh, gọn. Các trường hợp khác sẽ được trình bày sau.
6. Phép tìm kiếm có sử dụng lượng từ tồn tại (∃)
Ví dụ: Tìm tên những hãng nào cung ứng mặt hàng P2:
GET W (S.SNAME) : ∃ SP(SP.S# = S.S# ∧ SP.P# = ‘P2’) kết quả: W SNAME Smith Jones Blacke
Có thể hình dung câu lệnh GET như sau: Xét lần lượt từng giá trị SNAME xem có thỏa mãn biểu thức điều kiện không. Như vậy giá trị đầu là Smith, S# tương ứng là P1. Có tồn tại một SP với S# = ‘S1’ và P# = ‘P2’ không? Nếu câu trả lời có thì ‘Smith’ là giá trị cần tìm. Công việc tiếp tục như vậy cho đến hết.
7. Phép tìm kiếm có sử dụng nhiều lượng từ tồn tại (∃)
Ví dụ: Tìm tên những hãng nào cung ứng ít nhất là một mặt hàng màu đỏ:
GET W (S.SNAME) : ∃ SP(SP.S# = S.S# ∧
∃ P(P.P# = SP.P# ∧ P.COLOR = ‘Red’))
8. Phép tìm kiếm có sử dụng lượng từ với mọi (∀)
Ví dụ: Tìm tên những hãng không cung ứng mặt hàng P1: GET W(S.SNAME) : ∀SP(SP.S# ≠ S.S# ∨ SP.P# ≠ ‘P1’) kết quả:
W SNAMEBlacke Blacke
9. Phép tìm kiếm có sử dụng cả hai lượng từ với mọi (∀) và tồn tại (∃)
Ví dụ: Tìm số hiệu của những hãng nào cung ứng tất cả các mặt hàng: GET W (SP.S#) : ∀P∃SP(P.P# = SP.P#)
kết quả:
W S#
S1
B. NGÔN NGỮ SQL (Structured query language)I. NÉT CHÍNH CỦA NGÔN NGỮ SQL I. NÉT CHÍNH CỦA NGÔN NGỮ SQL
SQL (trước kia được gọi là SEQUEL) là một ngôn ngữ hỏi hiện nay rất được phổ biến trên thị trường. Câu lệnh đơn giản, gần gũi với người sử dụng. Nó là một ngôn ngữ CSDL quan hệ có tính chuyên sâu, được dùng để định nghĩa, sử dụng và kiểm tra các CSDL quan hệ.